Re: [PATCH] trace: add ability to set a target task for events (v2)

From: Peter Zijlstra
Date: Wed Jul 11 2012 - 10:33:58 EST


On Wed, 2012-07-11 at 16:31 +0200, Frederic Weisbecker wrote:
> On Wed, Jul 11, 2012 at 06:14:58PM +0400, Andrew Vagin wrote:
> > A few events are interesting not only for a current task.
> > For example, sched_stat_* are interesting for a task, which
> > wake up. For this reason, it will be good, if such events will
> > be delivered to a target task too.
> >
> > Now a target task can be set by using __perf_task().
> >
> > The original idea and a draft patch belongs to Peter Zijlstra.
> >
> > I need this events for profiling sleep times. sched_switch is used for
> > getting callchains and sched_stat_* is used for getting time periods.
> > This events are combined in user space, then it can be analized by
> > perf tools.
>
> We've talked about that numerous times. But I still don't really
> understand why you're not using sched switch events and compute
> the difference between schedule in and schedule out.
>
> I think you said that's because you got too much events with sched
> switch. Are you loosing events? Otherwise I don't see why it's
> a problem.
>
> Also the sched_stat_sleep event produce an event which period equals the
> time slept. Internally, perf split this into as many events as that period
> because the requested period for trace events is 1 by default. We probably
> should allow to send events with a higher number than the one requested. This
> this produce sometimes a huge pile of events, and that even often result in
> tons of lost events. We definetly need to fix that.
>
> In the meantime you'll certainly get saner results by just recording
> sched switch events.

Not really, there's an arbitrary large delay between wakeup and getting
scheduled back in, which is unrelated to the cause that you went to
sleep.

The wants the time between going to sleep and getting woken up,
sched_switch simply doesn't give you that.
--
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/