mirror of https://gitee.com/openkylin/linux.git
function-graph: add option for include sleep times
Impact: give user a choice to show times spent while sleeping The user may want to see the time a function spent sleeping. This patch adds the trace option "sleep-time" to allow that. The "sleep-time" option is default on. echo sleep-time > /debug/tracing/trace_options produces: ------------------------------------------ 2) avahi-d-3428 => <idle>-0 ------------------------------------------ 2) | finish_task_switch() { 2) 0.621 us | _spin_unlock_irq(); 2) 2.202 us | } 2) ! 1002.197 us | } 2) ! 1003.521 us | } where as, echo nosleep-time > /debug/tracing/trace_options produces: 0) <idle>-0 => yum-upd-3416 ------------------------------------------ 0) | finish_task_switch() { 0) 0.643 us | _spin_unlock_irq(); 0) 2.342 us | } 0) + 41.302 us | } 0) + 42.453 us | } Signed-off-by: Steven Rostedt <srostedt@redhat.com>
This commit is contained in:
parent
8aef2d2856
commit
be6f164a02
|
@ -2599,6 +2599,13 @@ ftrace_graph_probe_sched_switch(struct rq *__rq, struct task_struct *prev,
|
|||
unsigned long long timestamp;
|
||||
int index;
|
||||
|
||||
/*
|
||||
* Does the user want to count the time a function was asleep.
|
||||
* If so, do not update the time stamps.
|
||||
*/
|
||||
if (trace_flags & TRACE_ITER_SLEEP_TIME)
|
||||
return;
|
||||
|
||||
timestamp = trace_clock_local();
|
||||
|
||||
prev->ftrace_timestamp = timestamp;
|
||||
|
|
|
@ -255,7 +255,7 @@ static DECLARE_WAIT_QUEUE_HEAD(trace_wait);
|
|||
|
||||
/* trace_flags holds trace_options default values */
|
||||
unsigned long trace_flags = TRACE_ITER_PRINT_PARENT | TRACE_ITER_PRINTK |
|
||||
TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO;
|
||||
TRACE_ITER_ANNOTATE | TRACE_ITER_CONTEXT_INFO | TRACE_ITER_SLEEP_TIME;
|
||||
|
||||
/**
|
||||
* trace_wake_up - wake up tasks waiting for trace input
|
||||
|
@ -316,6 +316,7 @@ static const char *trace_options[] = {
|
|||
"context-info",
|
||||
"latency-format",
|
||||
"global-clock",
|
||||
"sleep-time",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
|
|
@ -683,6 +683,7 @@ enum trace_iterator_flags {
|
|||
TRACE_ITER_CONTEXT_INFO = 0x20000, /* Print pid/cpu/time */
|
||||
TRACE_ITER_LATENCY_FMT = 0x40000,
|
||||
TRACE_ITER_GLOBAL_CLK = 0x80000,
|
||||
TRACE_ITER_SLEEP_TIME = 0x100000,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue