* Peter Zijlstra <[email protected]> wrote:
> On Wed, 2013-04-10 at 12:06 +0200, Ingo Molnar wrote:
> > * Peter Zijlstra <[email protected]> wrote:
> >
> > > I think Mike once tried something along the lines of keeping a per rq
> > > state that
> > > got cleared at the end of schedule() but that doesn't catch things like
> > > the
> > > migrate handlers I think.
> >
> > We'd need a rq->clock.valid debug flag, which is set by a sched-clock
> > update, and
> > cleared by the end of all scheduler operations, not just schedule().
> >
> > Then sched_clock() could have a pretty efficient assert in it. Are there
> > bugs that
> > such an approach would not catch?
>
> It requires manual iteration of all scheduler operations which is prone
> to 'accidents'.
There's just a handful of high level entry points, right? schedule(), wakeup,
scheduler tick, maybe notifiers - anything else? Documenting/listing those
would
be nice anyway, near the top of kernel/sched/core.c or so.
The other approach would be to periodically clear the flag from the timer tick.
That would catch invalid rq->clock use probabilistically.
> I'd clear at the beginning, but that's more or less the same thing.
>
> We have the .sched.text section but I'm not sure we've been consistent enough
> with that to be useful. But otherwise we'd be able to clear on section
> entry/exit or so.
Hm, I'm not sure that can be made to work sanely.
Thanks,
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/