lkml.org 
[lkml]   [2022]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v4 00/14] Implement call_rcu_lazy() and miscellaneous fixes
    Date
    Refresh tested on real ChromeOS userspace and hardware, passes boot time tests
    and rcuscale tests.

    Fixes on top of v3:
    - Fix boot issues due to a race in the lazy RCU logic which caused a missed
    wakeup of the RCU GP thread, causing synchronize_rcu() to stall.
    - Fixed trace_rcu_callback tracepoint

    I tested power previously [1], I am in the process of testing power again but I
    wanted share my latest code as others who are testing power as well could use
    the above fixes.

    [1] https://lore.kernel.org/all/20220713213237.1596225-1-joel@joelfernandes.org/

    Joel Fernandes (Google) (13):
    rcu: Introduce call_rcu_lazy() API implementation
    rcuscale: Add laziness and kfree tests
    fs: Move call_rcu() to call_rcu_lazy() in some paths
    rcutorture: Add test code for call_rcu_lazy()
    debug: Toggle lazy at runtime and change flush jiffies
    cred: Move call_rcu() to call_rcu_lazy()
    security: Move call_rcu() to call_rcu_lazy()
    net/core: Move call_rcu() to call_rcu_lazy()
    kernel: Move various core kernel usages to call_rcu_lazy()
    lib: Move call_rcu() to call_rcu_lazy()
    i915: Move call_rcu() to call_rcu_lazy()
    fork: Move thread_stack_free_rcu to call_rcu_lazy
    rcu/tree: Move trace_rcu_callback() before bypassing

    Vineeth Pillai (1):
    rcu: shrinker for lazy rcu

    drivers/gpu/drm/i915/gem/i915_gem_object.c | 2 +-
    fs/dcache.c | 4 +-
    fs/eventpoll.c | 2 +-
    fs/file_table.c | 2 +-
    fs/inode.c | 2 +-
    include/linux/rcu_segcblist.h | 1 +
    include/linux/rcupdate.h | 6 +
    include/linux/sched/sysctl.h | 3 +
    kernel/cred.c | 2 +-
    kernel/exit.c | 2 +-
    kernel/fork.c | 6 +-
    kernel/pid.c | 2 +-
    kernel/rcu/Kconfig | 8 +
    kernel/rcu/rcu.h | 12 +
    kernel/rcu/rcu_segcblist.c | 15 +-
    kernel/rcu/rcu_segcblist.h | 20 +-
    kernel/rcu/rcuscale.c | 74 ++++-
    kernel/rcu/rcutorture.c | 60 +++-
    kernel/rcu/tree.c | 139 ++++++----
    kernel/rcu/tree.h | 10 +-
    kernel/rcu/tree_nocb.h | 260 +++++++++++++++---
    kernel/sysctl.c | 17 ++
    kernel/time/posix-timers.c | 2 +-
    lib/radix-tree.c | 2 +-
    lib/xarray.c | 2 +-
    net/core/dst.c | 2 +-
    security/security.c | 2 +-
    security/selinux/avc.c | 4 +-
    .../selftests/rcutorture/configs/rcu/CFLIST | 1 +
    .../selftests/rcutorture/configs/rcu/TREE11 | 18 ++
    .../rcutorture/configs/rcu/TREE11.boot | 8 +
    31 files changed, 567 insertions(+), 123 deletions(-)
    create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE11
    create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE11.boot

    --
    2.37.2.609.g9ff673ca1a-goog

    \
     
     \ /
      Last update: 2022-08-19 22:51    [W:4.266 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site