[GIT PULL] Urgent fix for expedited SRCU v5.19 boot-speed regression

From: Paul E. McKenney
Date: Thu Jul 21 2022 - 20:28:37 EST


Hello, Linus,

This pull request fixes a severe boot-speed regression for embedded
systems running in virtual environments, which are commonly
used for development and debugging. This regression bloats the
edit/compile/boot/debug cycle, causing considerable pain. Hence the
urgent pull request into v5.19 rather than waiting for the upcoming
merge window.

The following changes since commit a111daf0c53ae91e71fd2bfe7497862d14132e3e:

Linux 5.19-rc3 (2022-06-19 15:06:47 -0500)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git tags/rcu-urgent.2022.07.21a

for you to fetch changes up to 4f2bfd9494a072d58203600de6bedd72680e612a:

srcu: Make expedited RCU grace periods block even less frequently (2022-07-19 11:39:59 -0700)

----------------------------------------------------------------
Urgent RCU pull request for v5.19

This pull request contains a pair of commits that fix 282d8998e997 ("srcu:
Prevent expedited GPs and blocking readers from consuming CPU"), which
was itself a fix to an SRCU expedited grace-period problem that could
prevent kernel live patching (KLP) from completing. That SRCU fix for
KLP introduced large (as in minutes) boot-time delays to embedded Linux
kernels running on qemu/KVM. These delays were due to the emulation of
certain MMIO operations controlling memory layout, which were emulated
with one expedited grace period per access. Common configurations
required thousands of boot-time MMIO accesses, and thus thousands of
boot-time expedited SRCU grace periods.

In these configurations, the occasional sleeps that allowed KLP to proceed
caused excessive boot delays. These commits preserve enough sleeps to
permit KLP to proceed, but few enough that the virtual embedded kernels
still boot reasonably quickly.

This represents a regression introduced in the v5.19 merge window,
and the bug is causing significant inconvenience, hence this pull request.

----------------------------------------------------------------
Neeraj Upadhyay (1):
srcu: Make expedited RCU grace periods block even less frequently

Paul E. McKenney (1):
srcu: Block less aggressively for expedited grace periods

Documentation/admin-guide/kernel-parameters.txt | 18 +++++
kernel/rcu/srcutree.c | 98 +++++++++++++++++++------
2 files changed, 92 insertions(+), 24 deletions(-)