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, niv@us.ibm.com, tglx@linutronix.de,
	peterz@infradead.org, rostedt@goodmis.org,
	Valdis.Kletnieks@vt.edu, dhowells@redhat.com,
	eric.dumazet@gmail.com, darren@dvhart.com
Subject: [PATCH tip/core/rcu 0/20] second preview of RCU patches for 2.6.38
Date: Fri, 17 Dec 2010 12:54:33 -0800	[thread overview]
Message-ID: <20101217205433.GA10199@linux.vnet.ibm.com> (raw)

Hello!

This patchset contains RCU priority boosting for the tiny RCU
implementations and a number of fixes and cleanups.  The patches
are as follows, with the first 12 being updates from the earlier
posting at https://lkml.org/lkml/2010/11/6/187:

1.	Add rcutorture tests to check for correct priority boosting.
2-6.	RCU priority boosting for the tiny RCU implementations.
	RCU priority boosting for the tree RCU implementations is
	in progress, but not yet ready for prime time.
7.	Fix a few naming holdouts from old Classic RCU.
8.	Move synchronize_sched_expedited() out of sched.c
	(from Lai Jiangshan).
9.	Simplify the RCU callback orphan/adopt code for CPU hotplug
	(from Lai Jiangshan).
10.	Update RCU tracing documentation to reflect patch #9.
11.	Fix a race condition in synchronize_sched_expedited(),
	but Tejun Heo has suggested another approach that might
	be better longer term.
12.	Make synchronize_srcu_expedited() spin for a bit to avoid
	blocking -- again, there may be a better long-term fix.
	That said, this adaptive approach seems to work very well
	in practice.
13.	Improve synchronize_sched_expedited()'s ability to batch
	concurrent requests, as foreshadowed above.
14-15.	Make RCU avoid looking for quiescent states in cases when
	they are not required, thereby improving RCU's energy
	efficiency (from Frederic Weisbecker).
16.	Enlist the rnp->qsmask data to simplify #14 and #15 and
	also handle another case where RCU was unnecessarily asking
	CPUs to go through quiescent states.
17.	Limit tree RCU's leaf-level fanout to reduce lock contention.
	Lock contention is higher at the leaf level that elsewhere
	in the tree of rcu_node structures due to the fact that
	CPUs synchronize at the leaf level to detect grace-period
	events.
18.	Reduce tree RCU's leaf-level lock contention still further
	by making __call_rcu() less aggressive about starting new
	grace periods.  The aggression is a holdover from ancient
	times predating synchronize_rcu_expedited().
19.	Fix a mismatched-parentheses error in __list_for_each_rcu()
	(from Mariusz Kozlowski).
20.	Given that there are no in-tree users, remove the aforementioned
	__list_for_each_rcu().  This is maintained as a separate
	commit in case there is a use out there somewhere making its
	way into mainline.  (Though I would rather keep this API
	out -- list_for_each_entry_rcu() is much better in most cases.)

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

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

							Thanx, Paul

 Documentation/RCU/trace.txt   |   12 -
 b/Documentation/RCU/trace.txt |  132 +++++++++++-
 b/include/linux/init_task.h   |    9 
 b/include/linux/rculist.h     |    2 
 b/include/linux/rcupdate.h    |    1 
 b/include/linux/rcutiny.h     |    8 
 b/include/linux/rcutree.h     |    1 
 b/include/linux/sched.h       |   11 -
 b/init/Kconfig                |   39 +++
 b/kernel/rcutiny.c            |   71 +++++-
 b/kernel/rcutiny_plugin.h     |   15 -
 b/kernel/rcutorture.c         |  270 ++++++++++++++++++++++++-
 b/kernel/rcutree.c            |   81 +------
 b/kernel/rcutree.h            |   16 -
 b/kernel/rcutree_plugin.h     |   71 ++++++
 b/kernel/rcutree_trace.c      |    8 
 b/kernel/sched.c              |   69 ------
 b/kernel/srcu.c               |    8 
 include/linux/rculist.h       |    5 
 include/linux/rcupdate.h      |    3 
 include/linux/rcutiny.h       |    5 
 include/linux/rcutree.h       |    1 
 init/Kconfig                  |   16 +
 kernel/rcutiny.c              |   70 ++----
 kernel/rcutiny_plugin.h       |  444 ++++++++++++++++++++++++++++++++++++++++--
 kernel/rcutree.c              |   95 ++++++--
 kernel/rcutree.h              |   45 ++--
 kernel/rcutree_plugin.h       |  110 +++++++---
 kernel/rcutree_trace.c        |    4 
 29 files changed, 1272 insertions(+), 350 deletions(-)

             reply	other threads:[~2010-12-17 20:54 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-17 20:54 Paul E. McKenney [this message]
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 01/20] rcu: add priority-inversion testing to rcutorture Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 02/20] rcu: move TINY_RCU from softirq to kthread Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 03/20] rcu: priority boosting for TINY_PREEMPT_RCU Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 04/20] rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 05/20] rcu: document TINY_RCU and TINY_PREEMPT_RCU tracing Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 06/20] rcu: Distinguish between boosting and boosted Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 07/20] rcu: get rid of obsolete "classic" names in TREE_RCU tracing Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 08/20] rcu,cleanup: move synchronize_sched_expedited() out of sched.c Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 09/20] rcu,cleanup: simplify the code when cpu is dying Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 10/20] rcu: update documentation/comments for Lai's adoption patch Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 11/20] rcu: fix race condition in synchronize_sched_expedited() Paul E. McKenney
2010-12-18 15:52   ` Tejun Heo
2010-12-18 19:58     ` Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 12/20] rcu: Make synchronize_srcu_expedited() fast if running readers Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 13/20] rcu: increase synchronize_sched_expedited() batching Paul E. McKenney
2010-12-18 16:13   ` Tejun Heo
2010-12-18 20:14     ` Paul E. McKenney
2010-12-19  9:43       ` Tejun Heo
2010-12-19 16:35         ` Paul E. McKenney
2010-12-20 10:33           ` Peter Zijlstra
2010-12-20 13:40             ` Mathieu Desnoyers
2010-12-20 10:31         ` Peter Zijlstra
2010-12-21  7:58           ` Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 14/20] rcu: Stop chasing QS if another CPU did it for us Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 15/20] rcu: Keep gpnum and completed fields synchronized Paul E. McKenney
2010-12-20  2:13   ` Lai Jiangshan
2010-12-20  2:14     ` Frederic Weisbecker
2010-12-20 16:51     ` Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 16/20] rcu: fine-tune grace-period begin/end checks Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 17/20] rcu: limit rcu_node leaf-level fanout Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 18/20] rcu: reduce __call_rcu()-induced contention on rcu_node structures Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 19/20] rculist: fix borked __list_for_each_rcu() macro Paul E. McKenney
2010-12-17 20:54 ` [PATCH RFC tip/core/rcu 20/20] rcu: remove unused " 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=20101217205433.GA10199@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=akpm@linux-foundation.org \
    --cc=darren@dvhart.com \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=eric.dumazet@gmail.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.