Messages in this thread | ![/](/images/icornerl.gif) | | From | Frederic Weisbecker <> | Subject | [PATCH 00/11] rcu: Detect illegal uses of RCU in idle and fix some v5 | Date | Fri, 7 Oct 2011 18:21:59 +0200 |
| |
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
| ![\](/images/icornerr.gif) |