linux/kernel/rcu
Frederic Weisbecker 8e5e621566 rcu/exp: Make parallel exp gp kworker per rcu node
When CONFIG_RCU_EXP_KTHREAD=n, the expedited grace period per node
initialization is performed in parallel via workqueues (one work per
node).

However in CONFIG_RCU_EXP_KTHREAD=y, this per node initialization is
performed by a single kworker serializing each node initialization (one
work for all nodes).

The second part is certainly less scalable and efficient beyond a single
leaf node.

To improve this, expand this single kworker into per-node kworkers. This
new layout is eventually intended to remove the workqueues based
implementation since it will essentially now become duplicate code.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
2024-02-14 07:51:36 -08:00
..
Kconfig rcu: Employ jiffies-based backstop to callback time limit 2023-05-11 13:42:39 -07:00
Kconfig.debug rcu: Restrict access to RCU CPU stall notifiers 2023-12-12 02:31:22 +05:30
Makefile rcuperf: Change rcuperf to rcuscale 2020-08-24 18:39:24 -07:00
rcu_segcblist.c rcu: Use rcu_segcblist_segempty() instead of open coding it 2023-10-04 17:33:18 +02:00
rcu_segcblist.h rcu: Throttle callback invocation based on number of ready callbacks 2023-01-03 17:28:34 -08:00
rcu.h rcu/exp: Make parallel exp gp kworker per rcu node 2024-02-14 07:51:36 -08:00
rcuscale.c rcuscale: Move rcu_scale_writer() schedule_timeout_uninterruptible() to _idle() 2023-07-14 15:01:49 -07:00
rcutorture.c Merge branches 'doc.2023.12.13a', 'torture.2023.11.23a', 'fixes.2023.12.13a', 'rcu-tasks.2023.12.12b' and 'srcu.2023.12.13a' into rcu-merge.2023.12.13a 2023-12-14 01:21:31 +05:30
refscale.c refscale: Print out additional module parameters 2023-09-11 23:02:18 +02:00
srcutiny.c rcu: Dump memory object info if callback function is invalid 2023-09-13 22:29:12 +02:00
srcutree.c srcu: Explain why callbacks invocations can't run concurrently 2023-12-12 02:41:17 +05:30
sync.c rcu/sync: Use call_rcu_hurry() instead of call_rcu 2022-11-29 14:04:33 -08:00
tasks.h rcu-tasks: Mark RCU Tasks accesses to current->rcu_tasks_idle_cpu 2023-12-12 02:22:47 +05:30
tiny.c rcu: Dump memory object info if callback function is invalid 2023-09-13 22:29:12 +02:00
tree_exp.h rcu/exp: Make parallel exp gp kworker per rcu node 2024-02-14 07:51:36 -08:00
tree_nocb.h rcu: dynamically allocate the rcu-lazy shrinker 2023-10-04 10:32:24 -07:00
tree_plugin.h rcu/exp: Make parallel exp gp kworker per rcu node 2024-02-14 07:51:36 -08:00
tree_stall.h rcu: Restrict access to RCU CPU stall notifiers 2023-12-12 02:31:22 +05:30
tree.c rcu/exp: Make parallel exp gp kworker per rcu node 2024-02-14 07:51:36 -08:00
tree.h rcu/exp: Make parallel exp gp kworker per rcu node 2024-02-14 07:51:36 -08:00
update.c rcu: Restrict access to RCU CPU stall notifiers 2023-12-12 02:31:22 +05:30