[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20170116065124.GA27645@gmail.com>
Date: Mon, 16 Jan 2017 07:51:24 +0100
From: Ingo Molnar <mingo@...nel.org>
To: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
Cc: linux-kernel@...r.kernel.org, lv.zheng@...el.com, bp@...en8.de,
rjw@...ysocki.net, stan.kain@...il.com, waffolz@...mail.com,
emanuel.castelo@...il.com, bpesavento@...inito.it,
fredbezies@...il.com, torvalds@...ux-foundation.org
Subject: Re: [GIT RFC PULL rcu/urgent] Make RCU synchronous grace periods
work throughout boot
* Paul E. McKenney <paulmck@...ux.vnet.ibm.com> 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
Powered by blists - more mailing lists