diff options
| author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2026-08-21 20:38:09 +0200 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@kernel.org> | 2026-10-12 16:50:39 -0700 |
| commit | f8d95888093348be1235815946359f9cbc2f7012 (patch) | |
| tree | f8cbdbe7816aa9ceea2d8fd68da2974e83e665a7 /tools/perf/scripts/python/task-analyzer.py | |
| parent | 18c55d888b0afa3d8156b812e76c3d29a1bb2a2d (diff) | |
srcu: Use IRQ_WORK_INIT_HARD for srcu's irq_work
The irq_work in srcu is used to schedule a delayed work. The work item
is not scheduled directly because it is not always possible wake a
thread directly.
On PREEMPT_RT the default irq_work is initialized with IRQ_WORK_LAZY and
is delayed to the irq_work thread. A system booted with the command line
"trace_event=…" will freeze during boot because the irq_work thread is
not yet deployed (and tracing uses synchronize_srcu() in
tp_rcu_cond_sync()).
The irq_work performs just a wakeup a thread, there is nothing wrong
with doing this from hardirq context on PREEMPT_RT.
Use IRQ_WORK_INIT_HARD for srcu's irq_work.
Fixes: 7c405fb3279b3 ("rcu: Use an intermediate irq_work to start process_srcu()")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions
