Messages in this thread | | | Date | Wed, 25 Jan 2012 11:50:53 -0800 | From | Arun Sharma <> | Subject | Re: [PATCH] trace: reset sleep/block start time on task switch |
| |
On 1/25/12 1:20 AM, Frederic Weisbecker wrote:
>>> I'm tempted to revert 1ac9bc69 for now, userspace will simply have to >>> correlate trace_sched_switch() and trace_sched_stat_{sleep,blocked}(), >>> which shouldn't be too hard. >> >> We tried it and it didn't work very well. Especially when used with >> perf record -g. There are too many uninteresting >> trace_sched_switch() events. > > You mean context switches happening when the prev task doesn't need > to block or so? As it happens with preemption for example? > > In this case you can use filters to drop context switches for > which the prev state is not S or D.
We had these filters and still couldn't keep up:
# perf record -agP -e sched:sched_switch --filter "prev_state == 1 || prev_state == 2" -e sched:sched_stat_sleep -- sleep 3 [ perf record: Woken up 107 times to write data ] [ perf record: Captured and wrote 32.629 MB perf.data (~1425585 samples) ] Warning: Processed 104066 events and lost 4 chunks!
Check IO/CPU overload!
-Arun
| |