Re: [RFC PATCH] srcu: Use try-lock lockdep annotation for NMI-safe access.

From: Boqun Feng
Date: Thu Sep 28 2023 - 10:54:21 EST


On Thu, Sep 28, 2023 at 10:09:00AM +0200, Peter Zijlstra wrote:
> On Wed, Sep 27, 2023 at 11:06:09PM -0700, Boqun Feng wrote:
>
> > I think this is a "side-effect" of commit f0f44752f5f6 ("rcu: Annotate
> > SRCU's update-side lockdep dependencies"). In verify_lock_unused(), i.e.
> > the checking for NMI lock usages, the logic is that
>
> I think I'm having a problem with this commit -- that is, by adding
> lockdep you're adding tracepoint, which rely on RCU being active.
>
> The result is that SRCU is now no longer usable from !RCU regions.
>

Interesting

> Was this considered and intended?
>

No, I don't think I have considered this before, I think I may still
miss something here, maybe you or Paul can provide an example for such
a case?

One thing though, before the commit, srcu_read_lock() already has an
rcu_lock_acquire() annotation which eventually calls lock_acquire()
which has a tracepoint in it.

Regards,
Boqun