mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
sched_ext: Use IRQ_WORK_INIT_HARD() to initialize sch->disable_irq_work
For built with PREEMPT_RT kernels, the scx_disable_irq_workfn() is
called from per-cpu irq_work kthreads context, this means that
when call the scx_dump_state() in the scx_disable_irq_workfn() to
output current->comm/pid, it always output current irq_work kthread's
comm/pid. this commit therefore use the IRQ_WORK_INIT_HARD() to
initialize sch->disable_irq_work to make scx_disable_irq_workfn() is
called from hardirq context.
Fixes: f4a6c506d1 ("sched_ext: Always bounce scx_disable() through irq_work")
Signed-off-by: Zqiang <qiang.zhang@linux.dev>
Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
1f91d0d582
commit
ab28a0673d
|
|
@ -6589,7 +6589,7 @@ static struct scx_sched *scx_alloc_and_add_sched(struct sched_ext_ops *ops,
|
|||
|
||||
sch->slice_dfl = SCX_SLICE_DFL;
|
||||
atomic_set(&sch->exit_kind, SCX_EXIT_NONE);
|
||||
init_irq_work(&sch->disable_irq_work, scx_disable_irq_workfn);
|
||||
sch->disable_irq_work = IRQ_WORK_INIT_HARD(scx_disable_irq_workfn);
|
||||
kthread_init_work(&sch->disable_work, scx_disable_workfn);
|
||||
timer_setup(&sch->bypass_lb_timer, scx_bypass_lb_timerfn, 0);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user