On 2019-09-17 09:06:28 [-0500], Scott Wood wrote:
> Sorry, I missed that you were asking about rcu_read_lock_bh() as well.  I
> did remove the change to rcu_read_lock_bh_held().

Sorry for not being clear here.

> With this patch, local_bh_disable() calls rcu_read_lock() on RT which
> handles this debug stuff.  Doing it twice shouldn't be explicitly harmful,
> but it's redundant, and debug kernels are slow enough as is.

rcu_read_lock() does:
|         __rcu_read_lock();
|         __acquire(RCU);
|         rcu_lock_acquire(&rcu_lock_map);
|         RCU_LOCKDEP_WARN(!rcu_is_watching(),
|                          "rcu_read_lock() used illegally while idle");

__acquire() is removed removed by cpp.
That RCU_LOCKDEP_WARN is doing the same thing as above and redundant.
Am I right to assume that you consider
        rcu_lock_acquire(&rcu_bh_lock_map);

redundant because the only user of that is also checking for
rcu_lock_map?

> -Scott

Sebastian

Reply via email to