Messages in this thread | | | Date | Mon, 7 Nov 2022 08:16:39 -0800 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH printk v2 33/38] printk: introduce console_list_lock |
| |
On Mon, Nov 07, 2022 at 11:16:56AM +0106, John Ogness wrote: > On 2022-10-27, "Paul E. McKenney" <paulmck@kernel.org> wrote: > > One way to save a line is as follows: > > > > WARN_ON_ONCE(IS_ENABLED(CONFIG_DEBUG_LOCK_ALLOC) && > > debug_lockdep_rcu_enabled() && > > srcu_read_lock_held(&console_srcu)); > > Unfortunately this suggestion does not work because > debug_lockdep_rcu_enabled() only exists if CONFIG_DEBUG_LOCK_ALLOC is > enabled. Would you be interested in having an empty implementation? > Then my check would not need to be concerned about > CONFIG_DEBUG_LOCK_ALLOC at all. It would become: > > WARN_ON_ONCE(debug_lockdep_rcu_enabled() && > srcu_read_lock_held(&console_srcu)); > > The patch below could be used to achieve that.
Looks quite sensible to me! There are probably a few other places where it might be used.
Thanx, Paul
> John > > --------8<------------- > >From 71d9e484d5128cd1e57e5bff5391d91789f444fa Mon Sep 17 00:00:00 2001 > From: John Ogness <john.ogness@linutronix.de> > Date: Mon, 7 Nov 2022 11:06:40 +0106 > Subject: [PATCH] rcu: implement lockdep_rcu_enabled for > !CONFIG_DEBUG_LOCK_ALLOC > > Provide an implementation for debug_lockdep_rcu_enabled() when > CONFIG_DEBUG_LOCK_ALLOC is not enabled. This allows code to check > if rcu lockdep debugging is available without needing an extra > check if CONFIG_DEBUG_LOCK_ALLOC is enabled. > > Signed-off-by: John Ogness <john.ogness@linutronix.de> > --- > include/linux/rcupdate.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > index 08605ce7379d..65178c40ab6f 100644 > --- a/include/linux/rcupdate.h > +++ b/include/linux/rcupdate.h > @@ -340,6 +340,11 @@ static inline int rcu_read_lock_any_held(void) > return !preemptible(); > } > > +static inline int debug_lockdep_rcu_enabled(void) > +{ > + return 0; > +} > + > #endif /* #else #ifdef CONFIG_DEBUG_LOCK_ALLOC */ > > #ifdef CONFIG_PROVE_RCU > -- > 2.30.2
| |