public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL urgent] Fixes for three more RCU regressions
@ 2013-06-13 17:10 Paul E. McKenney
  0 siblings, 0 replies; only message in thread
From: Paul E. McKenney @ 2013-06-13 17:10 UTC (permalink / raw)
  To: mingo; +Cc: davej, rostedt, torvalds, linux-kernel

Hello, Ingo,

I must confess that this past merge window was not RCU's best showing.
This series contains three more fixes for RCU regressions:

1.	A fix to __DECLARE_TRACE_RCU() that causes it to act as an
	interrupt from idle rather than as a task switch from idle.
	This change is needed due to the recent use of _rcuidle()
	tracepoints that can be invoked from interrupt handlers as well
	as from idle.  Without this fix, invoking _rcuidle() tracepoints
	from interrupt handlers results in splats and (more seriously)
	confusion on RCU's part as to whether a given CPU is idle or not.
	This confusion can in turn result in too-short grace periods and
	therefore random memory corruption.

2.	A fix to a subtle deadlock that could result due to RCU doing
	a wakeup while holding one of its rcu_node structure's locks.
	Although the probability of occurrence is low, it really
	does happen.  The fix, courtesy of Steven Rostedt, uses
	irq_work_queue() to avoid the deadlock.

3.	A fix to a silent deadlock (invisible to lockdep) due to the
	interaction of timeouts posted by RCU debug code enabled by
	CONFIG_PROVE_RCU_DELAY=y, grace-period initialization, and CPU
	hotplug operations.  This will not occur in production kernels,
	but really does occur in randconfig testing.  Diagnosis courtesy
	of Steven Rostedt.

These fixes 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 971394f389992f8462c4e5ae0e3b49a10a9534a3:

  rcu: Fix deadlock with CPU hotplug, RCU GP init, and timer migration (2013-06-10 13:37:12 -0700)

----------------------------------------------------------------
Paul E. McKenney (2):
      trace: Allow idle-safe tracepoints to be called from irq
      rcu: Fix deadlock with CPU hotplug, RCU GP init, and timer migration

Steven Rostedt (1):
      rcu: Don't call wakeup() with rcu_node structure ->lock held

 include/linux/tracepoint.h |  4 ++--
 init/Kconfig               |  1 +
 kernel/rcutree.c           | 21 +++++++++++++++++----
 kernel/rcutree.h           |  2 ++
 4 files changed, 22 insertions(+), 6 deletions(-)


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2013-06-13 17:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-13 17:10 [GIT PULL urgent] Fixes for three more RCU regressions Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox