summaryrefslogtreecommitdiff
path: root/samples/workqueue
diff options
context:
space:
mode:
authorBoqun Feng <boqun@kernel.org>2026-03-19 03:56:21 +0300
committerBoqun Feng <boqun@kernel.org>2026-03-25 18:59:59 +0300
commit7c405fb3279b39244b260b54f1bd6488689ae235 (patch)
tree223cf55ff026faf1cc094561d3d3292230caa00b /samples/workqueue
parent61bbcfb50514a8a94e035a7349697a3790ab4783 (diff)
downloadlinux-7c405fb3279b39244b260b54f1bd6488689ae235.tar.xz
rcu: Use an intermediate irq_work to start process_srcu()
Since commit c27cea4416a3 ("rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast") we switched to SRCU in BPF. However as BPF instrument can happen basically everywhere (including where a scheduler lock is held), call_srcu() now needs to avoid acquiring scheduler lock because otherwise it could cause deadlock [1]. Fix this by following what the previous RCU Tasks Trace did: using an irq_work to delay the queuing of the work to start process_srcu(). [boqun: Apply Joel's feedback] [boqun: Apply Andrea's test feedback] Reported-by: Andrea Righi <arighi@nvidia.com> Closes: https://lore.kernel.org/all/abjzvz_tL_siV17s@gpd4/ Fixes: commit c27cea4416a3 ("rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast") Link: https://lore.kernel.org/rcu/3c4c5a29-24ea-492d-aeee-e0d9605b4183@nvidia.com/ [1] Suggested-by: Zqiang <qiang.zhang@linux.dev> Tested-by: Andrea Righi <arighi@nvidia.com> Tested-by: Paul E. McKenney <paulmck@kernel.org> Tested-by: Joel Fernandes <joelagnelf@nvidia.com> Signed-off-by: Boqun Feng <boqun@kernel.org>
Diffstat (limited to 'samples/workqueue')
0 files changed, 0 insertions, 0 deletions