[PATCH 00/11] rcu: Detect illegal uses of RCU in idle and fix some v5

From: Frederic Weisbecker
Date: Fri Oct 07 2011 - 12:23:38 EST


Hi Paul,

Here is the rebase. And it's more than just a rebase given the
semantical changes after your patch that tracks idleness. And also
because of the new API naming (with a new pair of tick_nohz_idle_enter()
tick_nohz_idle_exit() with *_norcu suffixes).

I have reused and updated some comments (that you made on earlier
versions of my patchset) that assumed that extended qs = dynticks
idle, as it's not always true anymore. I've tried to bring a new
wording to express what we are dealing with: "RCU-free window in idle"
or "RCU-idle window". I let you update the comments if you think
that's confusing or too scarce.

It has passed several hours of rcutorture with NO_HZ && SMP, and at least
booted fine with all your configs.

Frederic Weisbecker (9):
rcu: Detect illegal rcu dereference in extended quiescent state
rcu: Inform the user about extended quiescent state on PROVE_RCU warning
rcu: Warn when rcu_read_lock() is used in extended quiescent state
rcu: Make srcu_read_lock_held() call common lockdep-enabled function
nohz: Separate out irq exit and idle loop dyntick logic
nohz: Allow rcu extended quiescent state handling seperately from tick stop
x86: Enter rcu extended qs after idle notifier call
x86: Call idle notifier after irq_enter()
rcu: Fix early call to rcu_idle_enter()

Paul E. McKenney (2):
rcu: Remove one layer of abstraction from PROVE_RCU checking
rcu: Warn when srcu_read_lock() is used in an extended quiescent state

arch/arm/kernel/process.c | 4 +-
arch/avr32/kernel/process.c | 4 +-
arch/blackfin/kernel/process.c | 4 +-
arch/microblaze/kernel/process.c | 4 +-
arch/mips/kernel/process.c | 4 +-
arch/openrisc/kernel/idle.c | 4 +-
arch/powerpc/kernel/idle.c | 4 +-
arch/powerpc/platforms/iseries/setup.c | 8 +-
arch/s390/kernel/process.c | 4 +-
arch/sh/kernel/idle.c | 4 +-
arch/sparc/kernel/process_64.c | 4 +-
arch/tile/kernel/process.c | 4 +-
arch/um/kernel/process.c | 4 +-
arch/unicore32/kernel/process.c | 4 +-
arch/x86/kernel/apic/apic.c | 6 +-
arch/x86/kernel/apic/io_apic.c | 2 +-
arch/x86/kernel/cpu/mcheck/therm_throt.c | 2 +-
arch/x86/kernel/cpu/mcheck/threshold.c | 2 +-
arch/x86/kernel/irq.c | 6 +-
arch/x86/kernel/process_32.c | 4 +-
arch/x86/kernel/process_64.c | 10 +++-
include/linux/rcupdate.h | 74 +++++++++++++++--------
include/linux/srcu.h | 38 ++++++++----
include/linux/tick.h | 52 ++++++++++++++--
kernel/lockdep.c | 22 +++++++
kernel/rcupdate.c | 4 +
kernel/rcutiny.c | 1 +
kernel/rcutree.c | 19 +++++-
kernel/softirq.c | 4 +-
kernel/time/tick-sched.c | 96 ++++++++++++++++++-----------
30 files changed, 273 insertions(+), 129 deletions(-)

--
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/