Hello!

This v3 patch series re-implements RCU Tasks Trace in terms of SRCU-fast,
reducing the size of the Linux-kernel RCU implementation by several
hundred lines of code.  It is deferred from the v6.19 merge window
due to performance issues on arm64, which are in the process of being
addressed:

        https://lore.kernel.org/all/[email protected]/

This series depends on the SRCU series:

https://lore.kernel.org/all/6eb0d40f-9776-412a-9ab4-2d3298ead766@paulmck-laptop

Unlike for SRCU-fast-updown, there are no straightforward workarounds,
hence the deferral.  The patches are as follows:

1.      Re-implement RCU Tasks Trace in terms of SRCU-fast.

2.      context_tracking: Remove
        rcu_task_trace_heavyweight_{enter,exit}().

3.      Clean up after the SRCU-fastification of RCU Tasks Trace.

4.      Move rcu_tasks_trace_srcu_struct out of #ifdef
        CONFIG_TASKS_RCU_GENERIC.

5.      Add noinstr-fast rcu_read_{,un}lock_tasks_trace() APIs.

6.      Update Requirements.rst for RCU Tasks Trace.

7.      Deprecate rcu_read_{,un}lock_trace().

8.      Create an rcu_tasks_trace_expedite_current() function.

9.      Test rcu_tasks_trace_expedite_current().

Changes since v2:

o       SRCU improvments not strictly related to RCU tasks trace have
        been moved out to a separate series.

o       Use the new DEFINE_SRCU_FAST().

https://lore.kernel.org/all/7fa58961-2dce-4e08-8174-1d1cc592210f@paulmck-laptop/

Changes since v1:

o       Consolidate RCU Tasks Trace cleanup patches per Alexei Starovoitov
        feedback.  This explains the decrease from 34 patches in v1 to
        only 21 in this v2 series.

o       While consolidating, consolidate the noinstr-fast patches and the
        DEFINE_SRCU_FAST()/init_srcu_struct_fast() patches.

o       Upgrade comments per Peter Zijlstra feedback.

o       Extract Tiny SRCU bug fix into its own commit per Andrii Nakryiko
        feedback.

o       Switch srcu_expedite_current() from preempt_disable() to
        migrate_disable() for PREEMPT_RT kernels per Zqiang feedback.

o       Apply tags.

https://lore.kernel.org/all/580ea2de-799a-4ddc-bde9-c16f3fb1e6e7@paulmck-laptop/

                                                Thanx, Paul

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

 b/Documentation/RCU/Design/Requirements/Requirements.rst |   12 
 b/Documentation/admin-guide/kernel-parameters.txt        |   15 
 b/include/linux/rcupdate.h                               |   31 
 b/include/linux/rcupdate_trace.h                         |  107 +-
 b/include/linux/sched.h                                  |    1 
 b/init/init_task.c                                       |    3 
 b/kernel/context_tracking.c                              |   20 
 b/kernel/fork.c                                          |    3 
 b/kernel/rcu/Kconfig                                     |   18 
 b/kernel/rcu/rcu.h                                       |    9 
 b/kernel/rcu/rcuscale.c                                  |    7 
 b/kernel/rcu/rcutorture.c                                |    2 
 b/kernel/rcu/tasks.h                                     |  621 ---------------
 b/scripts/checkpatch.pl                                  |    2 
 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE01 |    1 
 b/tools/testing/selftests/rcutorture/configs/rcu/TRACE02 |    1 
 include/linux/rcupdate_trace.h                           |   81 +
 include/linux/sched.h                                    |    5 
 kernel/rcu/Kconfig                                       |   25 
 kernel/rcu/rcutorture.c                                  |    1 
 kernel/rcu/tasks.h                                       |  121 --
 21 files changed, 218 insertions(+), 868 deletions(-)

Reply via email to