lkml.org 
[lkml]   [2011]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 2/2] tracing, sched: Add a new tracepoint for sleeptime
    From
    Date
    On Tue, 2011-12-20 at 10:09 -0800, Arun Sharma wrote:
    > If CONFIG_SCHEDSTATS is defined, the kernel maintains
    > information about how long the task was sleeping or
    > in the case of iowait, blocking in the kernel before
    > getting woken up.
    >
    > Note: this information is only provided for sched_fair.
    > Other scheduling classes may choose to provide this in
    > the future.
    >
    > Note: the delay includes the time spent on the runqueue
    > as well.
    >
    > Signed-off-by: Arun Sharma <asharma@fb.com>
    > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    > Cc: Steven Rostedt <rostedt@goodmis.org>
    > Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    > Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
    > Cc: Andrew Vagin <avagin@openvz.org>
    > Cc: Frederic Weisbecker <fweisbec@gmail.com>
    > Cc: Ingo Molnar <mingo@elte.hu>
    > Cc: linux-kernel@vger.kernel.org
    > ---
    > include/trace/events/sched.h | 48 ++++++++++++++++++++++++++++++++++++++++++
    > kernel/sched/core.c | 1 +
    > 2 files changed, 49 insertions(+), 0 deletions(-)
    >
    > diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h
    > index 959ff18..5189220 100644
    > --- a/include/trace/events/sched.h
    > +++ b/include/trace/events/sched.h
    > @@ -363,6 +363,54 @@ TRACE_EVENT(sched_stat_runtime,
    > (unsigned long long)__entry->vruntime)
    > );
    >
    > +#ifdef CREATE_TRACE_POINTS

    Why the #ifdef? a static inline is fine to keep in the open. If nothing
    uses it, then it just wont be used or defined.

    -- Steve

    > +static inline u64 trace_get_sleeptime(struct task_struct *tsk)
    > +{
    > +#ifdef CONFIG_SCHEDSTATS
    > + u64 block, sleep;
    > +
    > + block = tsk->se.statistics.block_start;
    > + sleep = tsk->se.statistics.sleep_start;
    > +
    > + return block ? block : sleep ? sleep : 0;
    > +#else
    > + return 0;
    > +#endif
    > +}
    > +#endif
    > +
    > +



    \
     
     \ /
      Last update: 2011-12-20 19:19    [W:3.866 / U:0.528 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site