From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: mingo@elte.hu, laijs@cn.fujitsu.com, dipankar@in.ibm.com,
akpm@linux-foundation.org, mathieu.desnoyers@polymtl.ca,
josh@joshtriplett.org, dvhltc@us.ibm.com, niv@us.ibm.com,
tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org,
Valdis.Kletnieks@vt.edu, dhowells@redhat.com
Subject: [PATCH tip/core/rcu 0/3] rcu: simplify rcu_barrier() interaction with CPU hotplug
Date: Mon, 28 Sep 2009 21:49:55 -0700 [thread overview]
Message-ID: <20090929044955.GA12486@linux.vnet.ibm.com> (raw)
This patchset simplifies the interaction of rcu_barrier() with CPU
hotplug operations. The main point of this patchset is to impose an
invariant: offline CPUs never have any RCU callbacks queued. However,
rcutiny doesn't permit CPU hotplug (yes, I have worked in environments
where the last CPU could be offlined, but Linux is thankfully not one of
them), so the patchset goes as follows:
o Replace the rcu_barrier enum with a pointer to the relevant
call_rcu() function, thus eliminating any confusion about
which .h file this enum should reside in.
o Move the rcu_barrier() code to rcutree, and create a lightweight
variant of rcu_barrier() that is suitable for rcutiny. This
lightweight variant is identical to rcutree's implementation of
synchronize_rcu() and friends.
o Create a list in the rcu_state structure that holds RCU
callbacks that were "orphaned" by CPUs that just went offline.
The CPU_DYING notifier moves all RCU callbacks from the outgoing
CPU to the rcu_state lists, and the CPU_DEAD notifier and
_rcu_barrier() function "adopt" these orphans.
b/kernel/rcupdate.c | 33 +++-------
b/kernel/rcutiny.c | 36 ++++++++++
b/kernel/rcutree.c | 120 ++++++++++++++++++++++++++++++++++++
b/kernel/rcutree.h | 11 +++
b/kernel/rcutree_plugin.h | 34 ++++++++++
b/kernel/rcutree_trace.c | 5 -
kernel/rcupdate.c | 120 ------------------------------------
kernel/rcutree.c | 151 ++++++++++++++++++++++++----------------------
8 files changed, 291 insertions(+), 219 deletions(-)
next reply other threads:[~2009-09-29 4:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-29 4:49 Paul E. McKenney [this message]
2009-09-29 4:50 ` [PATCH tip/core/rcu 1/3] rcu: replace the rcu_barrier enum with pointer to call_rcu*() function Paul E. McKenney
2009-10-01 7:46 ` [tip:core/rcu] rcu: Replace " tip-bot for Paul E. McKenney
2009-10-05 19:10 ` tip-bot for Paul E. McKenney
2009-09-29 4:50 ` [PATCH tip/core/rcu 2/3] rcu: move rcu_barrier() to rcutree, make lightweight rcu_barrier() for rcutiny Paul E. McKenney
2009-10-01 7:46 ` [tip:core/rcu] rcu: Move " tip-bot for Paul E. McKenney
2009-10-05 19:10 ` tip-bot for Paul E. McKenney
2009-09-29 4:50 ` [PATCH tip/core/rcu 3/3] rcu: make hot-unplugged CPU relinquish its own RCU callbacks Paul E. McKenney
2009-10-01 7:46 ` [tip:core/rcu] rcu: Make " tip-bot for Paul E. McKenney
2009-10-05 19:11 ` tip-bot for Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090929044955.GA12486@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=Valdis.Kletnieks@vt.edu \
--cc=akpm@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=dvhltc@us.ibm.com \
--cc=josh@joshtriplett.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mingo@elte.hu \
--cc=niv@us.ibm.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.