From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751311AbdAPGvb (ORCPT ); Mon, 16 Jan 2017 01:51:31 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:33731 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751043AbdAPGva (ORCPT ); Mon, 16 Jan 2017 01:51:30 -0500 Date: Mon, 16 Jan 2017 07:51:24 +0100 From: Ingo Molnar To: "Paul E. McKenney" Cc: linux-kernel@vger.kernel.org, lv.zheng@intel.com, bp@alien8.de, rjw@rjwysocki.net, stan.kain@gmail.com, waffolz@hotmail.com, emanuel.castelo@gmail.com, bpesavento@infinito.it, fredbezies@gmail.com, torvalds@linux-foundation.org Subject: Re: [GIT RFC PULL rcu/urgent] Make RCU synchronous grace periods work throughout boot Message-ID: <20170116065124.GA27645@gmail.com> References: <20170115203026.GA13304@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170115203026.GA13304@linux.vnet.ibm.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Paul E. McKenney wrote: > Hello, Ingo, > > This series contains a pair of commits that permit RCU synchronous grace > periods (synchronize_rcu() and friends) to work correctly throughout boot. > This eliminates the current "dead time" starting when the scheduler spawns > its first taks and ending when the last of RCU's kthreads is spawned > (this last happens during early_initcall() time). Although RCU's > synchronous grace periods have long been documented as not working > during this time, prior to 4.9, the expedited grace periods worked by > accident, and some ACPI code came to rely on this unintentional behavior. > (Note that this unintentional behavior was -not- reliable. For example, > failures from ACPI could occur on !SMP systems and on systems booting > with the rcu_normal kernel boot parameter.) > > Either way, there is a bug that needs fixing, and the 4.9 switch of RCU's > expedited grace periods to workqueues could be considered to have caused > a regression. This series therefore makes RCU's expedited grace periods > operate correctly throughout the boot process. This has been demonstrated > to fix the problems ACPI was encountering, and has the added longer-term > benefit of simplifying RCU's behavior. I am therefore submitting this > RFC pull request for your consideration despite it being rather late in > the 4.10 process. > > Please see the commit log of 52d7e48b86fc ("rcu: Narrow early boot > window of illegal synchronous grace periods") for more information on > the regression and the fix to RCU. > > The following changes since commit a121103c922847ba5010819a3f250f1f7fc84ab8: > > Linux 4.10-rc3 (2017-01-08 14:18:17 -0800) > > are available in the git repository at: > > git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/urgent > > for you to fetch changes up to 52d7e48b86fc108e45a656d8e53e4237993c481d: > > rcu: Narrow early boot window of illegal synchronous grace periods (2017-01-14 21:23:48 -0800) > > ---------------------------------------------------------------- > Paul E. McKenney (2): > rcu: Remove cond_resched() from Tiny synchronize_sched() > rcu: Narrow early boot window of illegal synchronous grace periods > > include/linux/rcupdate.h | 4 ++++ > kernel/rcu/rcu.h | 1 + > kernel/rcu/tiny.c | 4 ---- > kernel/rcu/tiny_plugin.h | 9 +++++++-- > kernel/rcu/tree.c | 33 ++++++++++++++++++------------ > kernel/rcu/tree_exp.h | 52 ++++++++++++++++++++++++++++++++++++++---------- > kernel/rcu/tree_plugin.h | 2 +- > kernel/rcu/update.c | 38 +++++++++++++++++++++++++++-------- > 8 files changed, 104 insertions(+), 39 deletions(-) Pulled into tip:rcu/urgent, thanks a lot Paul! I'll get this to Linus ASAP. Ingo