Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1284369

[PATCH tip/core/rcu 06/13] rcu: Avoid tick_nohz_active checks on NOCBs CPUs

From "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Newsgroups linux.kernel
Subject [PATCH tip/core/rcu 06/13] rcu: Avoid tick_nohz_active checks on NOCBs CPUs
Date 2015-12-05 01:20 +0100
Message-ID <qC8JY-1nw-11@gated-at.bofh.it> (permalink)
References <qC8qC-10I-21@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Currently, rcu_prepare_for_idle() checks for tick_nohz_active, even on
individual NOCBs CPUs, unless all CPUs are marked as NOCBs CPUs at build
time.  This check is pointless on NOCBs CPUs because they never have any
callbacks posted, given that all of their callbacks are handed off to the
corresponding rcuo kthread.  There is a check for individually designated
NOCBs CPUs, but it pointelessly follows the check for tick_nohz_active.

This commit therefore moves the check for individually designated NOCBs
CPUs up with the check for CONFIG_RCU_NOCB_CPU_ALL.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
 kernel/rcu/tree_plugin.h | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 42df93721e6f..8e9d4a4d0326 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -1513,7 +1513,8 @@ static void rcu_prepare_for_idle(void)
 	struct rcu_state *rsp;
 	int tne;
 
-	if (IS_ENABLED(CONFIG_RCU_NOCB_CPU_ALL))
+	if (IS_ENABLED(CONFIG_RCU_NOCB_CPU_ALL) ||
+	    rcu_is_nocb_cpu(smp_processor_id()))
 		return;
 
 	/* Handle nohz enablement switches conservatively. */
@@ -1527,10 +1528,6 @@ static void rcu_prepare_for_idle(void)
 	if (!tne)
 		return;
 
-	/* If this is a no-CBs CPU, no callbacks, just return. */
-	if (rcu_is_nocb_cpu(smp_processor_id()))
-		return;
-
 	/*
 	 * If a non-lazy callback arrived at a CPU having only lazy
 	 * callbacks, invoke RCU core for the side-effect of recalculating
-- 
2.5.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH tip/core/rcu 0/10] Expedited-grace-period changes for 4.5 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:00 +0100
  [PATCH tip/core/rcu 09/13] rcu: Make cpu_needs_another_gp() be bool "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:10 +0100
  [PATCH tip/core/rcu 04/13] rcu: Remove lock-acquisition loop from rcu_read_unlock_special() "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:10 +0100
  [PATCH tip/core/rcu 01/13] rcu: Move lock_class_key to local scope "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 02/13] kernel: Make rcu/tree_trace.c explicitly non-modular "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 03/13] rcu: Simplify rcu_sched_qs() control flow "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 06/13] rcu: Avoid tick_nohz_active checks on NOCBs CPUs "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 07/13] rcu: Stop disabling interrupts in scheduler fastpaths "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 05/13] rcu: Fix obsolete rcu_bootup_announce_oddness() comment "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 12/13] rcu: Move wakeup out from under rnp->lock "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 11/13] rcu: Fix comment for rcu_dereference_raw_notrace "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 13/13] rcu: Make rcu_gp_init() be bool rather than int "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 08/13] rcu: Eliminate unused rcu_init_one() argument "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  [PATCH tip/core/rcu 10/13] rcu: Don't redundantly disable irqs in rcu_irq_{enter,exit}() "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-05 01:20 +0100
  Re: [PATCH tip/core/rcu 0/10] Expedited-grace-period changes for 4.5 Josh Triplett <josh@joshtriplett.org> - 2015-12-05 02:10 +0100
    Re: [PATCH tip/core/rcu 0/10] Expedited-grace-period changes for 4.5 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-12-06 03:30 +0100

csiph-web