mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3 RFC 0/9] Implement RCU Tasks Trace in terms of SRCU
@ 2025-11-02 23:06 Paul E. McKenney
  2025-11-02 23:06 ` [PATCH 1/9] rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast Paul E. McKenney
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Paul E. McKenney @ 2025-11-02 23:06 UTC (permalink / raw)
  To: rcu; +Cc: linux-kernel, kernel-team, rostedt

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/aQU7l-qMKJTx4znJ@arm.com/

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(-)

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-11-03  7:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-02 23:06 [PATCH v3 RFC 0/9] Implement RCU Tasks Trace in terms of SRCU Paul E. McKenney
2025-11-02 23:06 ` [PATCH 1/9] rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast Paul E. McKenney
2025-11-02 23:06 ` [PATCH 2/9] context_tracking: Remove rcu_task_trace_heavyweight_{enter,exit}() Paul E. McKenney
2025-11-02 23:06 ` [PATCH 3/9] rcu: Clean up after the SRCU-fastification of RCU Tasks Trace Paul E. McKenney
2025-11-02 23:06 ` [PATCH 4/9] rcu: Move rcu_tasks_trace_srcu_struct out of #ifdef CONFIG_TASKS_RCU_GENERIC Paul E. McKenney
2025-11-02 23:06 ` [PATCH 5/9] rcu: Add noinstr-fast rcu_read_{,un}lock_tasks_trace() APIs Paul E. McKenney
2025-11-02 23:06 ` [PATCH 6/9] rcu: Update Requirements.rst for RCU Tasks Trace Paul E. McKenney
2025-11-02 23:06 ` [PATCH 7/9] checkpatch: Deprecate rcu_read_{,un}lock_trace() Paul E. McKenney
2025-11-02 23:06 ` [PATCH 8/9] srcu: Create an rcu_tasks_trace_expedite_current() function Paul E. McKenney
2025-11-02 23:06 ` [PATCH 9/9] rcutorture: Test rcu_tasks_trace_expedite_current() Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®