[PATCH tip/core/rcu 0/10] Miscellaneous fixes for 3.20

From: Paul E. McKenney
Date: Wed Jan 07 2015 - 12:20:41 EST


Hello!

This series contains miscellaneous fixes for 3.20:

1. Make rcu_nmi_enter() handle nesting, as there are now some
architectures that use RCU read-side critical sections in
NMI-like constructs that can nest in one another. Algorithm
courtesy of Andy Lutomirski.

2. Remove redundant rcu_is_cpu_rrupt_from_idle() from tiny RCU,
courtesy of Alexander Gordeev.

3. Fix invoke_rcu_callbacks() comment to correctly reflect
required calling environment.

4. Allow 1- and 2-byte smp_load_acquire() and smp_store_release(),
given that the C11 standard requires that compilers support this.

5. Replace smp_read_barrier_depends() with lockless_dereference(),
courtesy of Pranith Kumar.

6. Directly force QS when call_rcu_[bh|sched]() on idle_task for
tiny RCU, courtesy of Lai Jiangshan. Saves more than 1KB.

7. Fix sparse warning from hlist_for_each_entry_continue_rcu_bh(),
courtesy of Ying Xue.

8. Fix hang in CPU hotplug code, courtesy of David Hildenbrand.

9. Fix rcu_barrier() race that could result in too-short wait.

10. Remove obsolete "select IRQ_WORK" from config TREE_RCU, courtesy
of Lai Jiangshan.

Thanx, Paul

------------------------------------------------------------------------

b/include/linux/compiler.h | 2
b/include/linux/rculist.h | 16 +++---
b/include/linux/rcupdate.h | 10 ++--
b/init/Kconfig | 2
b/kernel/cpu.c | 56 +++++++++-------------
b/kernel/rcu/rcu.h | 6 ++
b/kernel/rcu/tiny.c | 111 +++------------------------------------------
b/kernel/rcu/tiny_plugin.h | 2
b/kernel/rcu/tree.c | 75 ++++++++++++++++++++----------
b/kernel/rcu/tree.h | 30 ++----------
b/kernel/rcu/tree_plugin.h | 45 +++++++++++-------
11 files changed, 138 insertions(+), 217 deletions(-)

--
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/