From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757241AbbCCQpf (ORCPT ); Tue, 3 Mar 2015 11:45:35 -0500 Received: from e35.co.us.ibm.com ([32.97.110.153]:48640 "EHLO e35.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756747AbbCCQpe (ORCPT ); Tue, 3 Mar 2015 11:45:34 -0500 Date: Tue, 3 Mar 2015 08:45:28 -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/7] Early-boot RCU callbacks for v4.1 Message-ID: <20150303164528.GA6616@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: 15030316-0013-0000-0000-0000092D2261 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello! This series allows RCU callbacks to be posted very early at boot time, even before rcu_init() is called. 1. Abstract initialization of the default (non-no-CB) callbacks list from the init_callback_list() function into a new init_default_callback_list() function. 2. Initialize rcu_state structures' ->rda pointers to per-CPU rcu_data structures at compile time, so that this linkage is established for early-boot usage. 3. Remove diagnostics that currently splat in the presence of early-boot RCU callbacks. 4. Update no-CBs diagnostics to allow for early-boot RCU callbacks. 5. Make RCU's CPU-hotplug online code avoid initializing non-empty RCU callback lists in order to avoid leaking early-boot callbacks. 6. When a given CPU is determined to be a no-CBs CPU, move any early-boot callbacks to its no-CBs callback list. 7. Move the early-boot callback tests to precede rcu_init()'s initialization code, the better to test all the above. Thanx, Paul ------------------------------------------------------------------------ b/kernel/rcu/tree.c | 52 ++++++++++++++++++++++++++++++++------------- b/kernel/rcu/tree_plugin.h | 27 ++++++++++++----------- 2 files changed, 51 insertions(+), 28 deletions(-)