Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753823AbbBTFI7 (ORCPT ); Fri, 20 Feb 2015 00:08:59 -0500 Received: from e31.co.us.ibm.com ([32.97.110.149]:48753 "EHLO e31.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751332AbbBTFI4 (ORCPT ); Fri, 20 Feb 2015 00:08:56 -0500 Date: Thu, 19 Feb 2015 21:08:50 -0800 From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org Cc: mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, dvhart@linux.intel.com, fweisbec@gmail.com, oleg@redhat.com, bobby.prani@gmail.com Subject: [PATCH tip/core/rcu 0/4] Programmatic nestable expedited grace periods Message-ID: <20150220050850.GA32639@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15022005-8236-0000-0000-000009973041 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2020 Lines: 50 Hello! This series, possibly for v3.21, contains changes that allow in-kernel code to specify that all subsequent synchronous grace-period primitives (synchronize_rcu() and friends) be expedited. New rcu_expedite_gp() and rcu_unexpedite_gp() primitives enable and disable expediting, and these may be nested. Note that the rcu_expedited boot/sysfs variable, if non-zero, causes expediting to happen regardless of calls to rcu_expedite_gp(). Because one of the use cases for these primitives is to expedite grace periods during the in-kernel portion of boot, a new Kconfig parameter named CONFIG_RCU_EXPEDITE_BOOT causes the kernel to act as if rcu_expedite_gp() was called very early in boot. At the end of boot (presumably just before init is spawned), a call to rcu_end_inkernel_boot() will provide the matching rcu_unexpedite_gp() if required. The patches in this series are as follows: 1. Add rcu_expedite_gp() and rcu_unexpedite_gp() functions. 2. Add rcutorture tests for rcu_expedite_gp() and rcu_unexpedite_gp(). 3. Change open-coded access to the rcu_expedited variable to instead use a new rcu_gp_is_expedited() function. 4. Add the CONFIG_RCU_EXPEDITE_BOOT Kconfig parameter and the rcu_end_inkernel_boot() function. This passes light rcutorture testing. Thanx, Paul ------------------------------------------------------------------------ b/include/linux/rcupdate.h | 21 ++++++++++++++++ b/init/Kconfig | 13 +++++++++ b/kernel/rcu/rcutorture.c | 24 ++++++++++++++++++ b/kernel/rcu/srcu.c | 2 - b/kernel/rcu/tree.c | 9 +++--- b/kernel/rcu/tree_plugin.h | 2 - b/kernel/rcu/update.c | 59 ++++++++++++++++++++++++++++++++++++++++++++- 7 files changed, 123 insertions(+), 7 deletions(-) -- 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/