Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754165AbaGKP2j (ORCPT ); Fri, 11 Jul 2014 11:28:39 -0400 Received: from e33.co.us.ibm.com ([32.97.110.151]:36456 "EHLO e33.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751861AbaGKP2i (ORCPT ); Fri, 11 Jul 2014 11:28:38 -0400 Date: Fri, 11 Jul 2014 08:28:32 -0700 From: "Paul E. McKenney" To: Frederic Weisbecker Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, niv@us.ibm.com, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, dvhart@linux.intel.com, oleg@redhat.com, sbw@mit.edu Subject: Re: [PATCH tip/core/rcu 2/2] rcu: Don't offload callbacks unless specifically requested Message-ID: <20140711152832.GM16041@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <20140707224841.GA10101@linux.vnet.ibm.com> <1405085703-14822-1-git-send-email-paulmck@linux.vnet.ibm.com> <1405085703-14822-2-git-send-email-paulmck@linux.vnet.ibm.com> <20140711134736.GC26045@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140711134736.GC26045@localhost.localdomain> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14071115-0928-0000-0000-0000034CA653 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 11, 2014 at 03:47:37PM +0200, Frederic Weisbecker wrote: > On Fri, Jul 11, 2014 at 06:35:03AM -0700, Paul E. McKenney wrote: > > From: "Paul E. McKenney" > > > > Enabling NO_HZ_FULL currently has the side effect of enabling callback > > offloading on all CPUs. This results in lots of additional rcuo kthreads, > > and can also increase context switching and wakeups, even in cases where > > callback offloading is neither needed nor particularly desirable. This > > commit therefore enables callback offloading on a given CPU only if > > specifically requested at build time or boot time, or if that CPU has > > been specifically designated (again, either at build time or boot time) > > as a nohz_full CPU. > > > > Signed-off-by: Paul E. McKenney > > ACK. I thought you might like this one. ;-) Thanx, Paul > > --- > > init/Kconfig | 4 ++-- > > kernel/rcu/tree_plugin.h | 3 +++ > > 2 files changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/init/Kconfig b/init/Kconfig > > index 9d76b99af1b9..9332d33346ac 100644 > > --- a/init/Kconfig > > +++ b/init/Kconfig > > @@ -737,7 +737,7 @@ choice > > > > config RCU_NOCB_CPU_NONE > > bool "No build_forced no-CBs CPUs" > > - depends on RCU_NOCB_CPU && !NO_HZ_FULL > > + depends on RCU_NOCB_CPU && !NO_HZ_FULL_ALL > > help > > This option does not force any of the CPUs to be no-CBs CPUs. > > Only CPUs designated by the rcu_nocbs= boot parameter will be > > @@ -751,7 +751,7 @@ config RCU_NOCB_CPU_NONE > > > > config RCU_NOCB_CPU_ZERO > > bool "CPU 0 is a build_forced no-CBs CPU" > > - depends on RCU_NOCB_CPU && !NO_HZ_FULL > > + depends on RCU_NOCB_CPU && !NO_HZ_FULL_ALL > > help > > This option forces CPU 0 to be a no-CBs CPU, so that its RCU > > callbacks are invoked by a per-CPU kthread whose name begins > > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h > > index b27b86c7bbfa..17eed0856b03 100644 > > --- a/kernel/rcu/tree_plugin.h > > +++ b/kernel/rcu/tree_plugin.h > > @@ -2473,6 +2473,9 @@ static void __init rcu_spawn_nocb_kthreads(struct rcu_state *rsp) > > > > if (rcu_nocb_mask == NULL) > > return; > > +#ifdef CONFIG_NO_HZ_FULL > > + cpumask_or(rcu_nocb_mask, rcu_nocb_mask, tick_nohz_full_mask); > > +#endif /* #ifdef CONFIG_NO_HZ_FULL */ > > if (ls == -1) { > > ls = int_sqrt(nr_cpu_ids); > > rcu_nocb_leader_stride = ls; > > -- > > 1.8.1.5 > > > -- 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/