Table of Contents
KTAU
(Kernel TAU
) is a
kernel profiling/tracing tool designed to extend profiling capabilities
of TAU
into kernel space. Besides,
KTAU
can be used as a stand-alone kernel
profiling/tracing tool, which allows KTAU
to be
integrated into various frameworks. Considering two framework, 1)
application-base scheme and 2) daemon- base scheme. In application-base
scheme, the application is responsible for accessing and managing the
profile/trace data. In this case, KTAU
provides an
interface that allows an application to access information in
kernel-space through /proc filesystem. In daemon- base scheme,
KTAU
D (KTAU
Daemon) is configured
to periodically export the profiling/tracing data from memory to disk.
For instance, in TAU
framework, an
application is profiled by TAU
instrumentation. At a
certain point, TAU
accesses kernel profile data using
KTAU
API library. Then, TAU
can
output two separate sets of profile data, user-space and kernel-space;
or TAU
can merge two profile data and simultaneously
analyze the overall user/kernel space performance of the application.
In contrast, another framework uses KTAU
D
(KTAU
daemon) to collect kernel profile/trace data
during the execution of an application. This framework does not require
application source code to be instrumented, which is often useful in the
case when the source code is not available.
KTAU
maintains the profiling/tracing data
in per "context-of-execution" fashion. In Linux, both process and
thread are referred to as "task". Each task has a corresponding
"task_struct", which maintains the current runtime state.
KTAU
modifies each task_struct to maintain the
profile/trace data. This allows various schemes of data access with low
perturbation since we often only consider execution of a certain subset
of processes while the rest of processes are scheduled out.