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@xxxxxxxxxxxxxxxxxx> --- 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx