Re: [PATCH] time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint

From: Paul E. McKenney
Date: Fri Jun 21 2019 - 13:41:11 EST


On Fri, Jun 21, 2019 at 06:34:14AM -0700, Paul E. McKenney wrote:
> On Fri, Jun 21, 2019 at 02:29:27PM +0200, Peter Zijlstra wrote:
> > On Fri, Jun 21, 2019 at 05:16:30AM -0700, Paul E. McKenney wrote:
> > > A pair of full hangs at boot (TASKS03 and TREE04), no console output
> > > whatsoever. Not sure how these changes could cause that, but suspicion
> > > falls on sched_tick_offload_init(). Though even that is a bit strange
> > > because if so, why didn't TREE01 and TREE07 also hang? Again, looking
> > > into it.
> >
> > Pesky details ;-)
>
> And backing out to the earlier patch removes the hangs, though statistical
> insignificance and all that.

And purists might argue that four failures out of four attempts does not
constitute true statistical significance, but too bad. If I interpose
a twork pointer in sched_tick_offload_init()'s initialization, it seems
to work fine, give or take lack of statistical significance. This is
surprising, so I am rerunning with added parentheses in the atomic_set()
expression.

Thanx, Paul "I hate initialization" McKenney

> Ah, in answer to your earlier question, if you want it in v5.3, you
> will need to take it (but I do humbly request that you wait until it
> actually works). If you don't take it, I won't be submitting it earlier
> than v5.4. Either way, your choice!
>
> Thanx, Paul