lkml.org 
[lkml]   [2015]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    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(-)



    \
     
     \ /
      Last update: 2015-07-18 01:41    [W:4.967 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site