[PATCH tip/core/rcu 0/5] Fix for cond_resched performance regression

From: Paul E. McKenney
Date: Fri Jun 20 2014 - 14:33:04 EST


Hello!

This series contains changes to address the performance regressions
introduced by commit ac1bea85781e (Make cond_resched() report RCU
quiescent states), which was in turn fixing a problem where tasks looping
in the kernel could delay RCU grace periods. The changes in this series
are as follows:

1. Reduce the overhead of checking added to cond_resched() and friends.

2. Add a new cond_resched_rcu_qs() to provide RCU quiescent states
even if cond_resched() should stop doing so.

3. Add a new RCU_COND_RESCHED_QS to prevent cond_resched() from
reporting RCU quiescent states.

4. Prevent rcutorture testing from reporting spurious RCU CPU stall
warnings, and also to test RCU_COND_RESCHED_QS.

5. Provides a boot/sysfs rcutree.jiffies_till_cond_resched_qs
parameter to replace the magic "7".

Thanx, Paul

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

b/Documentation/kernel-parameters.txt | 7 +
b/fs/file.c | 2
b/include/linux/rcupdate.h | 35 -----
b/include/linux/rcutiny.h | 17 ++
b/include/linux/rcutree.h | 44 ++++++
b/init/Kconfig | 26 +++
b/kernel/rcu/rcutorture.c | 4
b/kernel/rcu/tree.c | 111 +++++++++++++---
b/kernel/rcu/tree.h | 6
b/kernel/rcu/tree_plugin.h | 4
b/kernel/rcu/update.c | 18 --
b/mm/mlock.c | 2
b/tools/testing/selftests/rcutorture/configs/rcu/TREE01 | 1
13 files changed, 201 insertions(+), 76 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/