All of lore.kernel.org
 help / color / mirror / Atom feed
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(-)

             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.