[Intel-gfx] [PATCH] softirq: Kick ksoftirqd if __do_softirq() is incomplete
Chris Wilson
chris at chris-wilson.co.uk
Thu May 21 11:25:32 UTC 2020
When invoking the softirq, a tasklet may be skipped due to contention or
being disabled. The tasklet is then left on the scheduled list, but we
do not wakeup ksoftirqd to retry the execution.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
kernel/softirq.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/kernel/softirq.c b/kernel/softirq.c
index a47c6dd57452..88cec274037d 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -379,9 +379,10 @@ static inline void invoke_softirq(void)
*/
do_softirq_own_stack();
#endif
- } else {
- wakeup_softirqd();
}
+
+ if (local_softirq_pending())
+ wakeup_softirqd();
}
static inline void tick_irq_exit(void)
--
2.27.0.rc0
More information about the Intel-gfx
mailing list