Re: [PATCH] trace: reset sleep/block start time on task switch

From: Arun Sharma
Date: Wed Jan 25 2012 - 14:51:16 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/