Messages in this thread | | | Date | Wed, 13 Oct 2021 18:13:06 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH v2 1/4] sched/rt: Annotate the RT balancing logic irqwork as IRQ_WORK_HARD_IRQ |
| |
On Wed, 6 Oct 2021 13:18:49 +0200 Sebastian Andrzej Siewior <bigeasy@linutronix.de> wrote:
> The push-IPI logic for RT tasks expects to be invoked from hardirq > context. One reason is that a RT task on the remote CPU would block the > softirq processing on PREEMPT_RT and so avoid pulling / balancing the RT > tasks as intended. > > Annotate root_domain::rto_push_work as IRQ_WORK_HARD_IRQ. > > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Juri Lelli <juri.lelli@redhat.com> > Cc: Vincent Guittot <vincent.guittot@linaro.org> > Cc: Dietmar Eggemann <dietmar.eggemann@arm.com> > Cc: Steven Rostedt <rostedt@goodmis.org> > Cc: Ben Segall <bsegall@google.com> > Cc: Mel Gorman <mgorman@suse.de> > Cc: Daniel Bristot de Oliveira <bristot@redhat.com> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- > kernel/sched/topology.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c > index 4e8698e62f075..3d0157bd4e144 100644 > --- a/kernel/sched/topology.c > +++ b/kernel/sched/topology.c > @@ -526,7 +526,7 @@ static int init_rootdomain(struct root_domain *rd) > #ifdef HAVE_RT_PUSH_IPI > rd->rto_cpu = -1; > raw_spin_lock_init(&rd->rto_lock); > - init_irq_work(&rd->rto_push_work, rto_push_irq_work_func); > + rd->rto_push_work = IRQ_WORK_INIT_HARD(rto_push_irq_work_func);
Should we not make an "init_irq_work_hard()" helper?
-- Steve
> #endif > > rd->visit_gen = 0;
| |