Re: [rcu:rcu/dev 70/71] kernel/rcu/sync.c:68:2: warning: 'deprecate_rcu_lockdep_assert' is deprecated (declared at include/linux/rcupdate.h:541)

From: Paul E. McKenney
Date: Mon Sep 14 2015 - 12:29:14 EST


On Mon, Sep 14, 2015 at 05:55:20PM +0200, Oleg Nesterov wrote:
> On 09/12, Paul E. McKenney wrote:
> >
> > I should have noticed this...
>
> Heh, me too :/
>
> Thanks a lot Fengguang!
>
> > The new rcu_lockdep_assert() is RCU_LOCKDEP_WARN(). I am guessing
> > that you would like to also make rcu_sync_lockdep_assert() be
> > RCU_SYNC_LOCKDEP_WARN()?
>
> I am fine either way. Unless you have already fixed this in your tree,
> I'd suggest the trivial fix below.

I got that one, but failed to clean up the indentation. Fixed that
as well.

> But please let me know you want me to make another trivial change which
> turns rcu_sync_lockdep_assert() into
>
> bool rcu_sync_read_lock_held(struct rcu_sync *rsp)
> {
> return gp_ops[rsp->gp_type].held();
> }
>
> and rcu_sync_is_idle() into
>
> static inline bool rcu_sync_is_idle(struct rcu_sync *rsp)
> {
> RCU_LOCKDEP_WARN(!rcu_sync_read_lock_held(rsp),
> "suspicious rcu_sync_is_idle() usage");
> return !rsp->gp_state; /* GP_IDLE */
> }

There does seem to be a strong desire to move away from "assert" to
"WARN", so please do!

Thanx, Paul

> -------------------------------------------------------------------------------
> >From 37fb0c136b979b0ef6a4ade1c7a14c8207533b2d Mon Sep 17 00:00:00 2001
> From: Oleg Nesterov <oleg@xxxxxxxxxx>
> Date: Mon, 14 Sep 2015 10:54:10 -0400
> Subject: [PATCH] rcu_sync: Use RCU_LOCKDEP_WARN() rather than rcu_lockdep_assert()
>
> rcu_lockdep_assert() is deprecated, change rcu_sync_lockdep_assert()
> to use RCU_LOCKDEP_WARN().
>
> Reported-by: Fengguang Wu <fengguang.wu@xxxxxxxxx>
> Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
> ---
> kernel/rcu/sync.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/rcu/sync.c b/kernel/rcu/sync.c
> index 56ae79d..be922c9 100644
> --- a/kernel/rcu/sync.c
> +++ b/kernel/rcu/sync.c
> @@ -65,8 +65,8 @@ enum { CB_IDLE = 0, CB_PENDING, CB_REPLAY };
> #ifdef CONFIG_PROVE_RCU
> void rcu_sync_lockdep_assert(struct rcu_sync *rsp)
> {
> - rcu_lockdep_assert(gp_ops[rsp->gp_type].held(),
> - "suspicious rcu_sync_is_idle() usage");
> + RCU_LOCKDEP_WARN(!gp_ops[rsp->gp_type].held(),
> + "suspicious rcu_sync_is_idle() usage");
> }
> #endif
>
> --
> 2.4.3
>
>

--
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/