Skip to content

rcu: add lockdep-based diagnostics to rcu_dereference()

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 11 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8rcu: introduce lockdep-based checking to RCU read-side primitivesinclude/linux/rcupdate.h include/linux/srcu.h kernel/rcupdate.c +3 more+253 -311 reply
2/8rcu: add lockdep-enabled variants of rcu_dereference()include/linux/rcupdate.h include/linux/srcu.h+42 -111 reply
3/8rcu: disable lockdep checking in RCU list-traversal primitivesinclude/linux/rculist.h include/linux/rculist_nulls.h+9 -91 reply
4/8net: add checking to rcu_dereference() primitivesnet/core/dev.c net/core/filter.c net/core/sock.c +3 more+20 -201 reply
5/8sched: use lockdep-based checking on rcu_dereference()include/linux/cgroup.h include/linux/cred.h init/main.c +5 more+23 -121 reply
6/8vfs: apply lockdep-based checking to rcu_dereference() usesfs/file.c include/linux/fdtable.h+6 -31 reply
7/8radix-tree: disable RCU lockdep checking in radix treelib/radix-tree.c+12 -121 reply
8/8idr: apply lockdep-based diagnostics to rcu_dereference() useslib/idr.c+4 -41 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH tip/core/rcu 0/8] rcu: add lockdep-based diagnostics to rcu_dereference()

Hello!

This patch series adds lockdep-based checking to the rcu_dereference() primitive in order to flag misuses of RCU. The first three patches put the RCU infrastructure in place, while the last five use this infrastructure in the net, sched, vfs, radix-tree, and idr subsystems. There are very likely additional changes required.

Thanx, Paul

 b/fs/file.c                     |    2 
 b/include/linux/cgroup.h        |    2 
 b/include/linux/cred.h          |    2 
 b/include/linux/fdtable.h       |    8 +-
 b/include/linux/rculist.h       |   14 ++--
 b/include/linux/rculist_nulls.h |    5 -
 b/include/linux/rcupdate.h      |  124 ++++++++++++++++++++++++++++++++++++----
 b/include/linux/srcu.h          |   87 +++++++++++++++++++++++++++-
 b/init/main.c                   |    2 
 b/kernel/exit.c                 |   14 +++-
 b/kernel/fork.c                 |    1 
 b/kernel/notifier.c             |    6 -
 b/kernel/pid.c                  |    2 
 b/kernel/rcupdate.c             |   10 +++
 b/kernel/rcutorture.c           |   12 +++
 b/kernel/sched.c                |    7 --
 b/kernel/srcu.c                 |   50 ++++++++++------
 b/lib/debug_locks.c             |    2 
 b/lib/idr.c                     |    9 +-
 b/lib/radix-tree.c              |   25 +++-----
 b/net/core/dev.c                |    2 
 b/net/core/filter.c             |    6 -
 b/net/core/sock.c               |    2 
 b/net/decnet/dn_route.c         |   14 ++--
 b/net/ipv4/route.c              |   14 ++--
 b/net/packet/af_packet.c        |    3 
 include/linux/rcupdate.h        |   45 ++++++++++----
 include/linux/srcu.h            |    9 ++
 28 files changed, 369 insertions(+), 110 deletions(-)