Re: [PATCH tip/core/rcu 45/88] rcu: Add memory barriers for NOCB leader wakeup
From: Krister Johansen
Date: Thu Jun 08 2017 - 17:28:24 EST
On Thu, Jun 08, 2017 at 01:55:00PM -0700, Paul E. McKenney wrote:
> On Thu, Jun 08, 2017 at 01:11:48PM -0700, Krister Johansen wrote:
> > May I impose upon you to CC this patch to stable, and tag it as fixing
> > abedf8e241? I ran into this on a production 4.9 branch. When I
> > debugged it, I discovered that it went all the way back to 4.6. The
> > tl;dr is that at least for some environments, the missed wakeup
> > manifests itself as a series of hung-task warnings to console and if I'm
> > unlucky it can also generate a hang that can block interactive logins
> > via ssh.
>
> Interesting! This is the first that I have heard that this was anything
> other than a theoretical bug. To the comment in your second URL, it is
> wise to recall that a seismologist was in fact arrested for failing to
> predict an earthquake. Later acquitted/pardoned/whatever, but arrested
> nonetheless. ;-)
Point taken. I do realize that we all make mistakes, and certainly I do
too. Perhaps I should have said that my survey of current callers of
swake_up() was enough to convince me that I didn't have an immediate
problem elsewhere, but that I'm not familiar enough with the code base
to make that statement with a lot of authority. The concern being that if
the patch came from RT-linux where the barrier was present in
swake_up(), are there other places where swake_up() callers still assume
this is being handled on their behalf?
As part of this, I also pondered whether I should add a comment around
swake_up(), similar to what's already there for waitqueue_active.
I wasn't sure how subtle this is for other consumers, though.
> Silliness aside, does my patch actually fix your problem in practice as
> well as in theory? If so, may I have your Tested-by?
Yes, it absolutely does. Consider it given:
Tested-by: Krister Johansen <kjlx@xxxxxxxxxxxxxxxxxx>
> Impressive investigative effort, by the way!
Thanks!
-K