[lkml]   [2010]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[PATCH tip/core/rcu 0/18] v5 add lockdep-based diagnostics to rcu_dereference()

    This patch series adds lockdep-based checking to the rcu_dereference()
    primitive in order to flag misuses of RCU. The first four patches put
    the RCU infrastructure in place, the next eight use this infrastructure
    in the net, sched, vfs, radix-tree, idr, and security subsystems, and the
    last patch documents how to use the new lockdep-checked rcu_dereference()
    primitives. The remaining five patches are other changes that also need
    to be applied.

    The new (and default-disabled) CONFIG_PROVE_RCU makes this safe to include
    in tip/core/rcu -- unlike v2, your system won't complain about RCU misuse
    unless you ask it to. There are still several situations that trigger
    on systems I have access to (and I have email out on a couple of them),
    some of the remaining will be triggered only by hardware I don't have
    access to and kernel features I am unfamiliar with. So this is ready
    for some more-general testing.

    Changes since v4 (

    o Apply review comments from Peter Ziljstra.

    o Another documentation update.

    o Fixes that avoid overflowing signed integers.

    o Rebased Thomas Gleixner's raw-spinlock patch on this series.
    (Thomas's original at

    Changes since v3 (

    o Fix a few more issues identified by the checking.

    o Add a documentation update.

    o Accelerate RCU grace periods when the current CPU is the last
    non-dyntick-idle CPU in the system, which is important for
    some multi-core battery-powered devices.

    Changes since v2 (

    o Removed references to the check condition for the non-lockdep
    version of rcu_dereference_check(), thus preventing numerous
    build errors.

    o Create a CONFIG_PROVE_RCU (default disabled) so that developers
    who want to use lockdep only to debug locks aren't bothered
    by RCU-specific lockdep complaints that will no doubt persist
    for a little bit while some of the more obscure uses of RCU
    are reverse-engineered.

    o Fix a few more issues identified by the checking.

    o Add documentation in Documentation/RCU/lockdep.txt.

    Changes since v1 (

    o Made SRCU have per-srcu_struct lockdep maps to prevent lockdep
    from conflating independent uses of SRCU, and updated the
    rcu_dereference() checking in rcutorture to match.

    o Fix a few issues identified by the checking.

    o Disable checking within RCU list macros, RCU radix trees, and

     \ /
      Last update: 2010-02-17 21:31    [W:0.021 / U:11.608 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site