|
Davidlohr Bueso |
71e901 |
From da6ff09943491819e077b94c284bf0a6b751c9b8 Mon Sep 17 00:00:00 2001
|
|
Davidlohr Bueso |
71e901 |
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
Davidlohr Bueso |
71e901 |
Date: Wed, 6 Oct 2021 13:18:49 +0200
|
|
Davidlohr Bueso |
71e901 |
Subject: [PATCH] sched/rt: Annotate the RT balancing logic irqwork as IRQ_WORK_HARD_IRQ
|
|
Davidlohr Bueso |
71e901 |
Git-commit: da6ff09943491819e077b94c284bf0a6b751c9b8
|
|
Davidlohr Bueso |
71e901 |
Patch-mainline: v5.16-rc1
|
|
Davidlohr Bueso |
71e901 |
References: bsc#1189998
|
|
Davidlohr Bueso |
71e901 |
|
|
Davidlohr Bueso |
71e901 |
The push-IPI logic for RT tasks expects to be invoked from hardirq
|
|
Davidlohr Bueso |
71e901 |
context. One reason is that a RT task on the remote CPU would block the
|
|
Davidlohr Bueso |
71e901 |
softirq processing on PREEMPT_RT and so avoid pulling / balancing the RT
|
|
Davidlohr Bueso |
71e901 |
tasks as intended.
|
|
Davidlohr Bueso |
71e901 |
|
|
Davidlohr Bueso |
71e901 |
Annotate root_domain::rto_push_work as IRQ_WORK_HARD_IRQ.
|
|
Davidlohr Bueso |
71e901 |
|
|
Davidlohr Bueso |
71e901 |
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
Davidlohr Bueso |
71e901 |
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
|
|
Davidlohr Bueso |
71e901 |
Link: https://lkml.kernel.org/r/20211006111852.1514359-2-bigeasy@linutronix.de
|
|
Davidlohr Bueso |
71e901 |
Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
|
|
Davidlohr Bueso |
71e901 |
|
|
Davidlohr Bueso |
71e901 |
---
|
|
Davidlohr Bueso |
71e901 |
kernel/sched/topology.c | 2 +-
|
|
Davidlohr Bueso |
71e901 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Davidlohr Bueso |
71e901 |
|
|
Davidlohr Bueso |
71e901 |
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
|
|
Davidlohr Bueso |
71e901 |
index c1729f9a715f..e81246787560 100644
|
|
Davidlohr Bueso |
71e901 |
--- a/kernel/sched/topology.c
|
|
Davidlohr Bueso |
71e901 |
+++ b/kernel/sched/topology.c
|
|
Davidlohr Bueso |
71e901 |
@@ -526,7 +526,7 @@ static int init_rootdomain(struct root_domain *rd)
|
|
Davidlohr Bueso |
71e901 |
#ifdef HAVE_RT_PUSH_IPI
|
|
Davidlohr Bueso |
71e901 |
rd->rto_cpu = -1;
|
|
Davidlohr Bueso |
71e901 |
raw_spin_lock_init(&rd->rto_lock);
|
|
Davidlohr Bueso |
71e901 |
- init_irq_work(&rd->rto_push_work, rto_push_irq_work_func);
|
|
Davidlohr Bueso |
71e901 |
+ rd->rto_push_work = IRQ_WORK_INIT_HARD(rto_push_irq_work_func);
|
|
Davidlohr Bueso |
71e901 |
#endif
|
|
Davidlohr Bueso |
71e901 |
|
|
Davidlohr Bueso |
71e901 |
rd->visit_gen = 0;
|
|
Davidlohr Bueso |
71e901 |
--
|
|
Davidlohr Bueso |
71e901 |
2.26.2
|
|
Davidlohr Bueso |
71e901 |
|