public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: mingo@elte.hu
Cc: davej@redhat.com, rostedt@goodmis.org,
	torvalds@linux-foundation.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL urgent] Fixes for three more RCU regressions
Date: Thu, 13 Jun 2013 10:10:19 -0700	[thread overview]
Message-ID: <20130613171019.GA17912@linux.vnet.ibm.com> (raw)

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(-)


                 reply	other threads:[~2013-06-13 17:11 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130613171019.GA17912@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox