Re: softlockups in multi_cpu_stop

From: Jason Low
Date: Sat Mar 07 2015 - 01:45:57 EST


On Fri, 2015-03-06 at 20:44 -0800, Davidlohr Bueso wrote:
> On Fri, 2015-03-06 at 20:31 -0800, Jason Low wrote:
> > On Fri, 2015-03-06 at 13:12 -0800, Jason Low wrote:
> >
> > Just in case, here's the updated patch which addresses Linus's comments
> > and with a changelog.
> >
> > Note: The changelog says that it fixes (locking/rwsem: Avoid deceiving
> > lock spinners), though I still haven't seen full confirmation that it
> > addresses all of the lockup reports.
> >
> > ------
> > Subject: [PATCH] rwsem: Avoid spinning when owner is not running
> >
> > Fixes tip commmit b3fd4f03ca0b (locking/rwsem: Avoid deceiving lock spinners).
> >
> > When doing optimistic spinning in rwsem, threads should stop spinning when
> > the lock owner is not running. While a thread is spinning on owner, if
> > the owner reschedules, owner->on_cpu returns false and we stop spinning.
> >
> > However, commit b3fd4f03ca0b essentially caused the check to get ignored
> > because when we break out of the spin loop due to !on_cpu, we continue
> > spinning if sem->owner != NULL.
>
> I would mention the actual effects of the bug, either just a "lockup"
> and/or a fragment of the trace.

Right, we should mention about the lockup in the changelog.

> > Cc: Ming Lei <ming.lei@xxxxxxxxxxxxx>
> > Cc: Davidlohr Bueso <dave@xxxxxxxxxxxx>
>
> Acked-by: Davidlohr Bueso <dave@xxxxxxxxxxxx>

Thanks!

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/