tracing: Remove obsolete sched_switch tracer
The trace events sched_switch and sched_wakeup do the same thing as the stand alone sched_switch tracer does. It is no longer needed. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
f4d5c029bd
commit
87d80de280
2 changed files with 0 additions and 158 deletions
|
@ -202,10 +202,6 @@ Here is the list of current tracers that may be configured.
|
||||||
to draw a graph of function calls similar to C code
|
to draw a graph of function calls similar to C code
|
||||||
source.
|
source.
|
||||||
|
|
||||||
"sched_switch"
|
|
||||||
|
|
||||||
Traces the context switches and wakeups between tasks.
|
|
||||||
|
|
||||||
"irqsoff"
|
"irqsoff"
|
||||||
|
|
||||||
Traces the areas that disable interrupts and saves
|
Traces the areas that disable interrupts and saves
|
||||||
|
@ -273,39 +269,6 @@ format, the function name that was traced "path_put" and the
|
||||||
parent function that called this function "path_walk". The
|
parent function that called this function "path_walk". The
|
||||||
timestamp is the time at which the function was entered.
|
timestamp is the time at which the function was entered.
|
||||||
|
|
||||||
The sched_switch tracer also includes tracing of task wakeups
|
|
||||||
and context switches.
|
|
||||||
|
|
||||||
ksoftirqd/1-7 [01] 1453.070013: 7:115:R + 2916:115:S
|
|
||||||
ksoftirqd/1-7 [01] 1453.070013: 7:115:R + 10:115:S
|
|
||||||
ksoftirqd/1-7 [01] 1453.070013: 7:115:R ==> 10:115:R
|
|
||||||
events/1-10 [01] 1453.070013: 10:115:S ==> 2916:115:R
|
|
||||||
kondemand/1-2916 [01] 1453.070013: 2916:115:S ==> 7:115:R
|
|
||||||
ksoftirqd/1-7 [01] 1453.070013: 7:115:S ==> 0:140:R
|
|
||||||
|
|
||||||
Wake ups are represented by a "+" and the context switches are
|
|
||||||
shown as "==>". The format is:
|
|
||||||
|
|
||||||
Context switches:
|
|
||||||
|
|
||||||
Previous task Next Task
|
|
||||||
|
|
||||||
<pid>:<prio>:<state> ==> <pid>:<prio>:<state>
|
|
||||||
|
|
||||||
Wake ups:
|
|
||||||
|
|
||||||
Current task Task waking up
|
|
||||||
|
|
||||||
<pid>:<prio>:<state> + <pid>:<prio>:<state>
|
|
||||||
|
|
||||||
The prio is the internal kernel priority, which is the inverse
|
|
||||||
of the priority that is usually displayed by user-space tools.
|
|
||||||
Zero represents the highest priority (99). Prio 100 starts the
|
|
||||||
"nice" priorities with 100 being equal to nice -20 and 139 being
|
|
||||||
nice 19. The prio "140" is reserved for the idle task which is
|
|
||||||
the lowest priority thread (pid 0).
|
|
||||||
|
|
||||||
|
|
||||||
Latency trace format
|
Latency trace format
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
@ -491,79 +454,6 @@ x494] <- /root/a.out[+0x4a8] <- /lib/libc-2.7.so[+0x1e1a6]
|
||||||
latencies, as described in "Latency
|
latencies, as described in "Latency
|
||||||
trace format".
|
trace format".
|
||||||
|
|
||||||
sched_switch
|
|
||||||
------------
|
|
||||||
|
|
||||||
This tracer simply records schedule switches. Here is an example
|
|
||||||
of how to use it.
|
|
||||||
|
|
||||||
# echo sched_switch > current_tracer
|
|
||||||
# echo 1 > tracing_enabled
|
|
||||||
# sleep 1
|
|
||||||
# echo 0 > tracing_enabled
|
|
||||||
# cat trace
|
|
||||||
|
|
||||||
# tracer: sched_switch
|
|
||||||
#
|
|
||||||
# TASK-PID CPU# TIMESTAMP FUNCTION
|
|
||||||
# | | | | |
|
|
||||||
bash-3997 [01] 240.132281: 3997:120:R + 4055:120:R
|
|
||||||
bash-3997 [01] 240.132284: 3997:120:R ==> 4055:120:R
|
|
||||||
sleep-4055 [01] 240.132371: 4055:120:S ==> 3997:120:R
|
|
||||||
bash-3997 [01] 240.132454: 3997:120:R + 4055:120:S
|
|
||||||
bash-3997 [01] 240.132457: 3997:120:R ==> 4055:120:R
|
|
||||||
sleep-4055 [01] 240.132460: 4055:120:D ==> 3997:120:R
|
|
||||||
bash-3997 [01] 240.132463: 3997:120:R + 4055:120:D
|
|
||||||
bash-3997 [01] 240.132465: 3997:120:R ==> 4055:120:R
|
|
||||||
<idle>-0 [00] 240.132589: 0:140:R + 4:115:S
|
|
||||||
<idle>-0 [00] 240.132591: 0:140:R ==> 4:115:R
|
|
||||||
ksoftirqd/0-4 [00] 240.132595: 4:115:S ==> 0:140:R
|
|
||||||
<idle>-0 [00] 240.132598: 0:140:R + 4:115:S
|
|
||||||
<idle>-0 [00] 240.132599: 0:140:R ==> 4:115:R
|
|
||||||
ksoftirqd/0-4 [00] 240.132603: 4:115:S ==> 0:140:R
|
|
||||||
sleep-4055 [01] 240.133058: 4055:120:S ==> 3997:120:R
|
|
||||||
[...]
|
|
||||||
|
|
||||||
|
|
||||||
As we have discussed previously about this format, the header
|
|
||||||
shows the name of the trace and points to the options. The
|
|
||||||
"FUNCTION" is a misnomer since here it represents the wake ups
|
|
||||||
and context switches.
|
|
||||||
|
|
||||||
The sched_switch file only lists the wake ups (represented with
|
|
||||||
'+') and context switches ('==>') with the previous task or
|
|
||||||
current task first followed by the next task or task waking up.
|
|
||||||
The format for both of these is PID:KERNEL-PRIO:TASK-STATE.
|
|
||||||
Remember that the KERNEL-PRIO is the inverse of the actual
|
|
||||||
priority with zero (0) being the highest priority and the nice
|
|
||||||
values starting at 100 (nice -20). Below is a quick chart to map
|
|
||||||
the kernel priority to user land priorities.
|
|
||||||
|
|
||||||
Kernel Space User Space
|
|
||||||
===============================================================
|
|
||||||
0(high) to 98(low) user RT priority 99(high) to 1(low)
|
|
||||||
with SCHED_RR or SCHED_FIFO
|
|
||||||
---------------------------------------------------------------
|
|
||||||
99 sched_priority is not used in scheduling
|
|
||||||
decisions(it must be specified as 0)
|
|
||||||
---------------------------------------------------------------
|
|
||||||
100(high) to 139(low) user nice -20(high) to 19(low)
|
|
||||||
---------------------------------------------------------------
|
|
||||||
140 idle task priority
|
|
||||||
---------------------------------------------------------------
|
|
||||||
|
|
||||||
The task states are:
|
|
||||||
|
|
||||||
R - running : wants to run, may not actually be running
|
|
||||||
S - sleep : process is waiting to be woken up (handles signals)
|
|
||||||
D - disk sleep (uninterruptible sleep) : process must be woken up
|
|
||||||
(ignores signals)
|
|
||||||
T - stopped : process suspended
|
|
||||||
t - traced : process is being traced (with something like gdb)
|
|
||||||
Z - zombie : process waiting to be cleaned up
|
|
||||||
X - unknown
|
|
||||||
|
|
||||||
|
|
||||||
ftrace_enabled
|
ftrace_enabled
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
|
|
@ -247,51 +247,3 @@ void tracing_sched_switch_assign_trace(struct trace_array *tr)
|
||||||
ctx_trace = tr;
|
ctx_trace = tr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void stop_sched_trace(struct trace_array *tr)
|
|
||||||
{
|
|
||||||
tracing_stop_sched_switch_record();
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sched_switch_trace_init(struct trace_array *tr)
|
|
||||||
{
|
|
||||||
ctx_trace = tr;
|
|
||||||
tracing_reset_online_cpus(tr);
|
|
||||||
tracing_start_sched_switch_record();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sched_switch_trace_reset(struct trace_array *tr)
|
|
||||||
{
|
|
||||||
if (sched_ref)
|
|
||||||
stop_sched_trace(tr);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sched_switch_trace_start(struct trace_array *tr)
|
|
||||||
{
|
|
||||||
sched_stopped = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sched_switch_trace_stop(struct trace_array *tr)
|
|
||||||
{
|
|
||||||
sched_stopped = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct tracer sched_switch_trace __read_mostly =
|
|
||||||
{
|
|
||||||
.name = "sched_switch",
|
|
||||||
.init = sched_switch_trace_init,
|
|
||||||
.reset = sched_switch_trace_reset,
|
|
||||||
.start = sched_switch_trace_start,
|
|
||||||
.stop = sched_switch_trace_stop,
|
|
||||||
.wait_pipe = poll_wait_pipe,
|
|
||||||
#ifdef CONFIG_FTRACE_SELFTEST
|
|
||||||
.selftest = trace_selftest_startup_sched_switch,
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
__init static int init_sched_switch_trace(void)
|
|
||||||
{
|
|
||||||
return register_tracer(&sched_switch_trace);
|
|
||||||
}
|
|
||||||
device_initcall(init_sched_switch_trace);
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue