• Paul E. McKenney's avatar
    rcu: Silence lockdep false positive for expedited grace periods · af859bea
    Paul E. McKenney authored
    In a CONFIG_PREEMPT=y kernel, synchronize_rcu_expedited()
    acquires the ->exp_funnel_mutex in rcu_preempt_state, then invokes
    synchronize_sched_expedited, which acquires the ->exp_funnel_mutex in
    rcu_sched_state.  There can be no deadlock because rcu_preempt_state
    ->exp_funnel_mutex acquisition always precedes that of rcu_sched_state.
    But lockdep does not know that, so it gives false-positive splats.
    
    This commit therefore associates a separate lock_class_key structure
    with the rcu_sched_state structure's ->exp_funnel_mutex, allowing
    lockdep to see the lock ordering, avoiding the false positives.
    Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
    af859bea
tree.h 26.9 KB