On Fri, Aug 02, 2019 at 05:20:38PM +0800 Hillf Danton wrote: > > On Thu, 1 Aug 2019 09:37:49 -0400 Phil Auld wrote: > > > > Enabling WARN_DOUBLE_CLOCK in /sys/kernel/debug/sched_features causes > > warning to fire in update_rq_clock. This seems to be caused by onlining > > a new fair sched group not using the rq lock wrappers. > > > > [472978.683085] rq->clock_update_flags & RQCF_UPDATED > > [472978.683100] WARNING: CPU: 5 PID: 54385 at kernel/sched/core.c:210 > > update_rq_clock+0xec/0x150 > > Another option perhaps only if that wrappers are not mandatory. > > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -212,10 +212,14 @@ void update_rq_clock(struct rq *rq) > #endif > > delta = sched_clock_cpu(cpu_of(rq)) - rq->clock; > - if (delta < 0) > - return; > - rq->clock += delta; > - update_rq_clock_task(rq, delta); > + if (delta >= 0) { > + rq->clock += delta; > + update_rq_clock_task(rq, delta); > + } > + > +#ifdef CONFIG_SCHED_DEBUG > + rq->clock_update_flags &= ~RQCF_UPDATED; > +#endif > } > > > -- >
I think that would silence the warning, but... If we're to clear that flag right there, outside of the lock pinning code, then I think we might as well just remove the flag and all associated comments etc, no? Cheers, Phil --