lkml.org 
[lkml]   [2011]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/4] trace: add ability to collect call chain of non-current task.
Hello Arun,
>
> Agreed on remote callchains and maintaining consistency about what the
> tracepoints mean.
>
> As I said on the other thread, post-processing in userspace has the
> issue that we collect more info than we actually need and under load,
> perf record can't keep up.
>
> Attached is an alternative approach that does what you allude to above.

* Your method doesn't work for rt scheduler.
* It doesn't distinguish blocking time and sleeping time.
* This patch does a bit mess between subsystems...

Yes, this method may have the right to life. Could you correct this
patch and send it in lkml as a separate mail?

>
> perf record -agPe sched:sched_switch --filter "delay > 1000000" -- sleep 1

Why do you need the option "-a" ?

>
> allows us to collect a lot less. For some reason, "perf script" shows

> the correct delay field, but the sample period still contains 1 (i.e
> __perf_count() hint is not working for me).

Which kernel do you use? Does it contain "[PATCH] event: don't divide
events if it has field period"? It works fine with my kernel...

>
> -Arun


> +#ifdef CONFIG_SCHEDSTATS
> + __entry->delay = next->se.statistics.block_start ? next->se.statistics.block_start
> + : next->se.statistics.sleep_start ? next->se.statistics.sleep_start : 0;
The previous code is hard to read...
> + __entry->delay = __entry->delay ? now - __entry->delay : 0;
> +#else
> + __entry->delay = 0;
> +#endif
next->se.statistics.{block,sleep}_start should be zeroized here,
otherwise a next sched_switch will report non-zero delay again.
> + )


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