Skip to content

RFC RCU commits queued for 2.6.36/7

Paul E. McKenney lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest30 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/30net: convert to rcu_dereference_index_check()include/net/cls_cgroup.h+2 -10 replies
2/30rcu: define __rcu address space modifier for sparseinclude/linux/compiler.h include/linux/rcupdate.h include/linux/srcu.h +2 more+257 -1450 replies
3/30rculist: avoid __rcu annotationsinclude/linux/rculist.h include/linux/rculist_nulls.h kernel/pid.c+46 -250 replies
4/30cgroups: __rcu annotationsinclude/linux/cgroup.h include/linux/sched.h kernel/cgroup.c+4 -40 replies
5/30credentials: rcu annotationinclude/linux/sched.h+2 -20 replies
6/30keys: __rcu annotationsinclude/linux/cred.h include/linux/key.h+3 -20 replies
7/30nfs: __rcu annotationsinclude/linux/nfs_fs.h include/linux/sunrpc/auth_gss.h+3 -31 reply
8/30net: __rcu annotations for driversdrivers/net/bnx2.h drivers/net/bnx2x.h drivers/net/cnic.h +2 more+5 -50 replies
9/30perf_event: __rcu annotationsinclude/linux/perf_event.h include/linux/sched.h+4 -40 replies
10/30notifiers: __rcu annotationsinclude/linux/notifier.h+5 -50 replies
11/30radix-tree: __rcu annotationsinclude/linux/radix-tree.h lib/radix-tree.c+4 -20 replies
12/30idr: __rcu annotationsinclude/linux/idr.h+2 -20 replies
13/30input: __rcu annotationsdrivers/input/evdev.c include/linux/input.h+2 -20 replies
14/30net/netfilter: __rcu annotationsinclude/net/netfilter/nf_conntrack.h net/ipv4/netfilter/nf_nat_core.c net/netfilter/core.c +5 more+10 -100 replies
15/30kvm: add __rcu annotationsinclude/linux/kvm_host.h+1 -10 replies
16/30kernel: __rcu annotationsinclude/linux/fdtable.h include/linux/fs.h include/linux/genhd.h +3 more+11 -110 replies
17/30net: __rcu annotationsinclude/linux/igmp.h include/linux/netdevice.h include/net/dst.h +26 more+60 -590 replies
18/30kvm: more __rcu annotationsarch/x86/include/asm/kvm_host.h include/linux/kvm_host.h+3 -30 replies
19/30vhost: add __rcu annotationsdrivers/vhost/net.c drivers/vhost/vhost.c drivers/vhost/vhost.h+42 -130 replies
20/30Update documentation to note the passage of INIT_RCU_HEAD()Documentation/DocBook/kernel-locking.tmpl+0 -80 replies
21/30Update call_rcu() usage, add synchronize_rcu()Documentation/DocBook/kernel-locking.tmpl+4 -20 replies
22/30rcu: make CPU stall warning timeout configurablekernel/rcutree.h lib/Kconfig.debug+14 -20 replies
23/30rcu head remove initinclude/linux/rcupdate.h+0 -60 replies
24/30rcu: add shiny new debug assists to Documentation/RCU/checklist.txtDocumentation/RCU/checklist.txt+23 -00 replies
25/30rcutorture: add random preemptionkernel/rcutorture.c+6 -00 replies
26/30rcu: simplify the usage of percpu datakernel/rcutree.c kernel/rcutree.h kernel/rcutree_plugin.h+18 -300 replies
27/30rcu: apply ->rda changes to rcutree_trace.ckernel/rcutree_trace.c+1 -12 replies
28/30rcu: rename __do_rcu_dereference_check() to rcu_lockdep_assert()include/linux/rcupdate.h+9 -50 replies
29/30rcu: add boot parameter to suppress RCU CPU stall warning messageskernel/rcutree.c+8 -32 replies
30/30rcu: improve kerneldoc for rcu_read_lock(), call_rcu(), and synchronize_rcu()include/linux/rcupdate.h kernel/rcutree_plugin.h+14 -100 replies

Reviews trailers per patch

7 of 30 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchDavid HowellsPaul MenageTejun HeoDmitry TorokhovPatrick McHardyJosh TriplettTrond Myklebust
SeriesR-b
1/30
2/30
3/30
4/30A-b
5/30A-b
6/30A-b
7/30A-b
8/30
9/30
10/30
11/30
12/30
13/30A-b
14/30A-b
15/30
16/30
17/30
18/30
19/30
20/30
21/30
22/30
23/30
24/30
25/30
26/30R-b
27/30
28/30
29/30
30/30

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 7 reviewers.

Read the v1 thread

Cover letter [PATCH RFC tip/core/rcu 0/30] RCU commits queued for 2.6.36/7

Hello!

This patchset shows the patches queued for 2.6.36/7. These are not yet ready to move upstream due to dependencies on commits moving up other trees. The patches are as follows:

1-19. These are the remaining patches implementing Arnd's sparse-checking
work. #1 needs to go up the networking tree, but will cause regressions until f5155b33277 ("rcu: add an rcu_dereference_index_check()") reaches mainline. #2 depends on #1, and many of the later patches (#3-#30) depend on #2. Many of #3-#19 will go up non-tip trees.
20. Update Documentation/RCU to remove the now-deprecated rcu_head
initialization macros.
21. Fix long-standing DocBook example showing long-dead three-argument
variant of call_rcu().
22. Make the CPU stall warning timeout configurable at build time
with new RCU_CPU_STALL_TIMEOUT config parameter.
23. Remove the now-deprecated rcu_head initialization macros.
This depends on a couple of patches removing their use that are making their way up other maintainer trees.
24. Document the new debug assists from Arnd, Mathieu, and myself.
25. Add random preemption to rcutorture testing of preemptible
RCU, courtesy of Lai Jiangshan.
26. Remove TREE_RCU's ->rda[] array in favor of the new __percpu
facility, also courtesy of Lai Jiangshan.
27. Fixlet to #26 for RCU tracing.
28. Rename __do_rcu_dereference_check() to rcu_lockdep_assert(),
given that Tetsuo Handa has found outside-of-RCU use for this function.
29. Add a boot parameter to suppress RCU CPU stall warnings.
30. Update kerneldoc or rcu_read_lock(), call_rcu(), and
synchronize_rcu().

For a testing-only git-tree version of this patchset, see:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu.git rcu/testing

By "testing-only" I mean that any of the commits in the rcu/testing branch might be folded, spindled, or otherwise mutilated at any time. ;-)

Thanx, Paul

 Documentation/DocBook/kernel-locking.tmpl   |    6 
 b/Documentation/DocBook/kernel-locking.tmpl |    8 
 b/Documentation/RCU/checklist.txt           |   23 +
 b/arch/x86/include/asm/kvm_host.h           |    2 
 b/drivers/input/evdev.c                     |    2 
 b/drivers/net/bnx2.h                        |    2 
 b/drivers/net/bnx2x.h                       |    2 
 b/drivers/net/cnic.h                        |    2 
 b/drivers/net/macvtap.c                     |    2 
 b/drivers/vhost/net.c                       |   15 -
 b/drivers/vhost/vhost.c                     |   29 +-
 b/drivers/vhost/vhost.h                     |   11 
 b/include/linux/cgroup.h                    |    4 
 b/include/linux/compiler.h                  |    4 
 b/include/linux/cred.h                      |    2 
 b/include/linux/fdtable.h                   |    6 
 b/include/linux/fs.h                        |    2 
 b/include/linux/genhd.h                     |    6 
 b/include/linux/idr.h                       |    4 
 b/include/linux/if_macvlan.h                |    2 
 b/include/linux/igmp.h                      |    4 
 b/include/linux/init_task.h                 |    4 
 b/include/linux/input.h                     |    2 
 b/include/linux/iocontext.h                 |    2 
 b/include/linux/key.h                       |    3 
 b/include/linux/kvm_host.h                  |    2 
 b/include/linux/mm_types.h                  |    2 
 b/include/linux/netdevice.h                 |   12 
 b/include/linux/nfs_fs.h                    |    2 
 b/include/linux/notifier.h                  |   10 
 b/include/linux/perf_event.h                |    6 
 b/include/linux/radix-tree.h                |    4 
 b/include/linux/rculist.h                   |   53 ++--
 b/include/linux/rculist_nulls.h             |   16 -
 b/include/linux/rcupdate.h                  |  352 ++++++++++++++++------------
 b/include/linux/sched.h                     |    2 
 b/include/linux/srcu.h                      |   27 +-
 b/include/linux/sunrpc/auth_gss.h           |    4 
 b/include/net/cls_cgroup.h                  |    3 
 b/include/net/dst.h                         |    2 
 b/include/net/fib_rules.h                   |    2 
 b/include/net/garp.h                        |    2 
 b/include/net/inet_sock.h                   |    2 
 b/include/net/ip6_tunnel.h                  |    2 
 b/include/net/ipip.h                        |    6 
 b/include/net/net_namespace.h               |    2 
 b/include/net/netfilter/nf_conntrack.h      |    2 
 b/include/net/netns/xfrm.h                  |    2 
 b/include/net/sock.h                        |    4 
 b/kernel/cgroup.c                           |    2 
 b/kernel/pid.c                              |    2 
 b/kernel/rcupdate.c                         |    6 
 b/kernel/rcutorture.c                       |    6 
 b/kernel/rcutree.c                          |   42 +--
 b/kernel/rcutree.h                          |    5 
 b/kernel/rcutree_plugin.h                   |    4 
 b/kernel/rcutree_trace.c                    |    2 
 b/kernel/sched.c                            |    2 
 b/lib/Kconfig.debug                         |   13 +
 b/lib/radix-tree.c                          |    2 
 b/net/802/stp.c                             |    4 
 b/net/ipv4/ip_gre.c                         |    2 
 b/net/ipv4/ipip.c                           |   10 
 b/net/ipv4/netfilter/nf_nat_core.c          |    2 
 b/net/ipv4/protocol.c                       |    2 
 b/net/ipv4/route.c                          |    2 
 b/net/ipv4/tcp.c                            |    4 
 b/net/ipv6/ip6_tunnel.c                     |    6 
 b/net/ipv6/protocol.c                       |    2 
 b/net/ipv6/sit.c                            |   10 
 b/net/mac80211/ieee80211_i.h                |   15 -
 b/net/mac80211/sta_info.h                   |    4 
 b/net/netfilter/core.c                      |    2 
 b/net/netfilter/nf_conntrack_ecache.c       |    4 
 b/net/netfilter/nf_conntrack_extend.c       |    2 
 b/net/netfilter/nf_conntrack_proto.c        |    4 
 b/net/netfilter/nf_log.c                    |    2 
 b/net/netfilter/nf_queue.c                  |    2 
 b/net/netlabel/netlabel_domainhash.c        |    4 
 b/net/netlabel/netlabel_unlabeled.c         |    4 
 b/net/netlink/af_netlink.c                  |    2 
 b/net/phonet/af_phonet.c                    |    2 
 b/net/phonet/pn_dev.c                       |    2 
 b/net/socket.c                              |    2 
 include/linux/kvm_host.h                    |    4 
 include/linux/rcupdate.h                    |   36 +-
 include/linux/sched.h                       |    6 
 kernel/rcutree.c                            |   11 
 kernel/rcutree.h                            |    2 
 kernel/rcutree_plugin.h                     |    8 
 lib/Kconfig.debug                           |   11 
 91 files changed, 563 insertions(+), 366 deletions(-)