Re: timers: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected

From: Paul E. McKenney
Date: Fri Jan 15 2016 - 16:18:21 EST


On Fri, Jan 15, 2016 at 11:03:24AM +0100, Thomas Gleixner wrote:
> On Thu, 14 Jan 2016, Paul E. McKenney wrote:
> > > Untested patch below.
> >
> > One small fix to make it build below. Started rcutorture, somewhat
> > pointlessly given that the splat doesn't appear on my setup.
>
> Well, at least it tells us whether the change explodes by itself.

Hmmm...

So this is a strange one. I have been seeing increasing instability
in mainline over the past couple of releases, with the main symptom
being that the kernel decides that awakening RCU's grace-period kthreads
is an optional activity. The usual situation is that the kthread is
blocked for tens of seconds in an wait_event_interruptible_timeout(),
despite having a three-jiffy timeout. Doing periodic wakeups from
the scheduling-clock interrupt seems to clear things up, but such hacks
should not be necessary.

Normally, I have to run for for some hours to have a good chance of seeing
this happen. This change triggered in a 30-minute run. Not only that,
but in a .config scenario that is normally very hard to trigger. This
scenario does involve CPU hotplug, and I am re-running with CPU hotplug
disabled.

That said, I am starting to hear reports of people hitting this without
CPU hotplug operations...

Thanx, Paul