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,
edumazet@google.com, darren@dvhart.com, fweisbec@gmail.com,
sbw@mit.edu, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: [PATCH tip/core/rcu 2/8] rcu: Make __note_new_gpnum() check for ends of prior grace periods
Date: Fri, 12 Apr 2013 16:32:31 -0700 [thread overview]
Message-ID: <1365809557-22575-2-git-send-email-paulmck@linux.vnet.ibm.com> (raw)
In-Reply-To: <1365809557-22575-1-git-send-email-paulmck@linux.vnet.ibm.com>
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
The current implementation can detect the beginning of a new grace period
before noting the end of a previous grace period. Although the current
implementation correctly handles this sort of nonsense, it would be
good to reduce RCU's state space by making such nonsense unnecessary,
which is now possible thanks to the fact that RCU's callback groups are
now numbered.
This commit therefore makes __note_new_gpnum() invoke
__rcu_process_gp_end() in order to note the ends of prior grace
periods before noting the beginnings of new grace periods.
Of course, this now means that note_new_gpnum() notes both the
beginnings and ends of grace periods, and could therefore be
used in place of rcu_process_gp_end(). But that is a job for
later commits.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
kernel/rcutree.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 8ebc3ff..a57bac3 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1299,6 +1299,9 @@ __rcu_process_gp_end(struct rcu_state *rsp, struct rcu_node *rnp, struct rcu_dat
*/
static void __note_new_gpnum(struct rcu_state *rsp, struct rcu_node *rnp, struct rcu_data *rdp)
{
+ /* Handle the ends of any preceding grace periods first. */
+ __rcu_process_gp_end(rsp, rnp, rdp);
+
if (rdp->gpnum != rnp->gpnum) {
/*
* If the current grace period is waiting for this CPU,
--
1.8.1.5
next prev parent reply other threads:[~2013-04-12 23:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-12 23:32 [PATCH tip/core/rcu 0/8] RCU callback-numbering simplifications for 3.11 Paul E. McKenney
2013-04-12 23:32 ` [PATCH tip/core/rcu 1/8] rcu: Move code to apply callback-numbering simplifications Paul E. McKenney
2013-04-12 23:32 ` Paul E. McKenney [this message]
2013-04-12 23:32 ` [PATCH tip/core/rcu 3/8] rcu: Rename note_new_gpnum() to note_gp_changes() Paul E. McKenney
2013-04-12 23:32 ` [PATCH tip/core/rcu 4/8] rcu: Switch callers from rcu_process_gp_end() " Paul E. McKenney
2013-04-12 23:32 ` [PATCH tip/core/rcu 5/8] rcu: Merge __rcu_process_gp_end() into __note_gp_changes() Paul E. McKenney
2013-04-12 23:32 ` [PATCH tip/core/rcu 6/8] rcu: Eliminate check_for_new_grace_period() wrapper function Paul E. McKenney
2013-04-12 23:32 ` [PATCH tip/core/rcu 7/8] rcu: Inline trivial wrapper function rcu_start_gp_per_cpu() Paul E. McKenney
2013-04-12 23:32 ` [PATCH tip/core/rcu 8/8] rcu: Move redundant call to note_gp_changes() into called function Paul E. McKenney
2013-04-13 18:37 ` [PATCH tip/core/rcu 0/8] RCU callback-numbering simplifications for 3.11 Josh Triplett
2013-05-20 14:37 [PATCH tip/core/rcu 0/8] v2 " Paul E. McKenney
2013-05-20 14:38 ` [PATCH tip/core/rcu 1/8] rcu: Move code to apply callback-numbering simplifications Paul E. McKenney
2013-05-20 14:38 ` [PATCH tip/core/rcu 2/8] rcu: Make __note_new_gpnum() check for ends of prior grace periods 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=1365809557-22575-2-git-send-email-paulmck@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=edumazet@google.com \
--cc=fweisbec@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=sbw@mit.edu \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome