[Devel] [PATCH 0/7] Profiling sleep times (v3)

Arun Sharma asharma at fb.com
Wed Dec 7 12:33:48 PST 2011


On 12/5/11 11:15 PM, Andrey Vagin wrote:

> Arun Sharma said, that the second versions of patches works ok for him.
> (Arun is the first user of this functionality after me.)

Yes - Andrey's patches (v2) have been functional for me when used via:

perf record -agP -e sched:sched_switch --filter "prev_state == 1 || 
prev_state == 2" -e sched:sched_stat_sleep,sched:sched_stat_iowait -- 
sleep 3
mv perf.data{,.old}; perf inject -s -i perf.data.old -o perf.data
perf report --stdio -g graph --sort pid -C command-name

There are two major issues though:

* The above command lines cause us to collect way too much data and perf 
can't keep up on a busy server

Eg:

Warning:
Processed 55182 events and lost 13 chunks!

Check IO/CPU overload!

* Requires root access

I suspect there is a way to stash the delay information available at 
enqueue_sleeper() into the task_struct (or some place else) and make it 
available at the sched:sched_switch tracepoint. This would solve both of 
the problems above, but I don't have a patch yet.

  -Arun




More information about the Devel mailing list