[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150717232901.GA22511@linux.vnet.ibm.com>
Date: Fri, 17 Jul 2015 16:29:01 -0700
From: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To: linux-kernel@...r.kernel.org
Cc: mingo@...nel.org, jiangshanlai@...il.com, dipankar@...ibm.com,
akpm@...ux-foundation.org, mathieu.desnoyers@...icios.com,
josh@...htriplett.org, tglx@...utronix.de, peterz@...radead.org,
rostedt@...dmis.org, dhowells@...hat.com, edumazet@...gle.com,
dvhart@...ux.intel.com, fweisbec@...il.com, oleg@...hat.com,
bobby.prani@...il.com
Subject: [PATCH tip/core/rcu 0/19] Expedited grace period changes for 4.3
Hello!
This series contains a series of optimizations for RCU's expedited
grace periods that reduce the jitter they induce in other CPUs. There
is more work to be done here, but this should introduce a good and
sufficient level of instability for 4.3. :-/
1. Stop disabling CPU hotplug in synchronize_rcu_expedited().
Longer term, synchronize_sched_expedited() will get the
same treatment.
2. Remove CONFIG_RCU_CPU_STALL_INFO, so that kernels are always
built as if CONFIG_RCU_CPU_STALL_INFO=y. A bit off-topic,
but remains in this series due to conflicts.
3. Switch synchronize_sched_expedited() to stop_one_cpu(), courtesy
of Peter Zijlstra.
4. Simplify synchronize_sched_expedited() counter handling.
5. Get rid of synchronize_sched_expedited()'s polling loop in
favor of tree-based funnel locking.
6. Make expedited GP CPU stoppage asynchronous, courtesy of Peter
Zijlstra. This repairs a performance regression in #3.
7. Abstract sequence counting from synchronize_sched_expedited().
8. Make synchronize_rcu_expedited() use sequence-counter scheme.
9. Abstract funnel locking from synchronize_sched_expedited().
10. Fix synchronize_sched_expedited() type error for variable "s".
11. Use funnel locking for synchronize_rcu_expedited()'s polling loop.
12. Apply rcu_seq operations to _rcu_barrier().
13. Consolidate last open-coded expedited memory barrier.
14. Extend expedited funnel locking to rcu_data structure, allowing
full parallel handling of expedited grace periods.
15. Add stall warnings to synchronize_sched_expedited().
16. Document new expedited stall warnings.
17. Pull out wait_event*() condition into helper function.
18. Rename RCU_GP_DONE_FQS to RCU_GP_DOING_FQS.
19. Add fastpath bypassing funnel locking to speed up the common
case where only one expedited grace period happens at a time
across the full system.
Thanx, Paul
------------------------------------------------------------------------
b/Documentation/RCU/stallwarn.txt | 29
b/Documentation/RCU/trace.txt | 36
b/include/trace/events/rcu.h | 1
b/kernel/rcu/tree.c | 625 +++++-----
b/kernel/rcu/tree.h | 39
b/kernel/rcu/tree_plugin.h | 123 -
b/kernel/rcu/tree_trace.c | 29
b/lib/Kconfig.debug | 14
b/tools/testing/selftests/rcutorture/configs/rcu/TREE01 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE02 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE02-T | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE03 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE04 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE05 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE06 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE07 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE08 | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE08-T | 1
b/tools/testing/selftests/rcutorture/configs/rcu/TREE09 | 1
b/tools/testing/selftests/rcutorture/doc/TREE_RCU-kconfig.txt | 1
20 files changed, 425 insertions(+), 483 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists