Messages in this thread | | | Date | Wed, 29 Oct 2014 11:07:21 -0700 | From | "Paul E. McKenney" <> | Subject | [GIT PULL rcu/urgent-for-mingo] Regression fixes |
| |
Hello, Ingo,
This pull request contains a couple of fixes for RCU regressions:
1. Complete the work of commit dd56af42bd82 (rcu: Eliminate deadlock between CPU hotplug and expedited grace periods), which was intended to allow synchronize_sched_expedited() to be safely used when holding locks acquired by CPU-hotplug notifiers. This commit makes the put_online_cpus() avoid the deadlock instead of just handling the get_online_cpus().
2. Complete the work of commit 35ce7f29a44a (rcu: Create rcuo kthreads only for onlined CPUs), which was intended to allow RCU to avoid allocating unneeded kthreads on systems where the firmware says that there are more CPUs than are really present. This commit makes rcu_barrier() aware of the mismatch, so that it doesn't hang waiting for non-existent CPUs. (And yes, I do need to force this non-existent-CPU condition into my testing.)
Both of these changes have been tested by the submitters and have been exposed to -next testing. These changes are needed to avoid system hangs, and these system hangs have actually occurred during mainline testing.
These changes are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git urgent-for-mingo
for you to fetch changes up to d7e29933969e5ca7c112ce1368a07911f4485dc2:
rcu: Make rcu_barrier() understand about missing rcuo kthreads (2014-10-28 13:24:13 -0700)
---------------------------------------------------------------- Paul E. McKenney (2): rcu: More on deadlock between CPU hotplug and expedited grace periods rcu: Make rcu_barrier() understand about missing rcuo kthreads
include/trace/events/rcu.h | 18 +++++++++--------- kernel/cpu.c | 14 +++++++++++++- kernel/rcu/tree.c | 15 ++++++++++----- kernel/rcu/tree.h | 1 + kernel/rcu/tree_plugin.h | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 66 insertions(+), 15 deletions(-)
| |