Re: [Patch 2/2] tools/memory-model: Provide exact SRCU semantics

From: Paul E. McKenney
Date: Thu Jan 26 2023 - 14:31:15 EST


On Thu, Jan 26, 2023 at 02:10:10PM -0500, Alan Stern wrote:
> On Thu, Jan 26, 2023 at 09:35:07AM -0800, Paul E. McKenney wrote:
> > On Thu, Jan 26, 2023 at 12:30:14PM +0100, Jonas Oberhauser wrote:
> > > I don't think they're necessarily implemented in a compatible way, so
> > >
> > > r = srcu_lock(s);
> > > srcu_up(s,r);
> > >
> > > might not actually work, but would currently be ok'ed by LKMM.
> >
> > In kernels built with CONFIG_PROVE_LOCKING=y (AKA built with lockdep
> > enabled), lockdep would complain about having an srcu_read_lock() with
> > no matching srcu_read_unlock(). Kernels built without lockdep (that is,
> > kernels actually used in production) would be happy with this.
> >
> > So as Jonas suspects, this should be classified as not actually working.
>
> Lockdep complaints don't actually stop things from working (unless you
> want them to). They're just warnings, right?

True, but they are taken seriously due to lockdep disabling itself after
the first warning. So a warning for this sort of thing could hide some
other deadlock, which tend to strongly motivate fixing issues leading
to lockdep warnings.

Thanx, Paul