The quilt patch titled Subject: irq_work: replace wait loop with rcuwait_wait_event has been removed from the -mm tree. Its filename was irq_work-replace-wait-loop-with-rcuwait_wait_event.patch This patch was dropped because an updated version will be issued ------------------------------------------------------ From: Steven Davis <goldside000@xxxxxxxxxxx> Subject: irq_work: replace wait loop with rcuwait_wait_event Date: Thu, 19 Sep 2024 11:43:26 -0400 The previous implementation of irq_work_sync used a busy-wait loop with cpu_relax() to check the status of IRQ work. This approach, while functional, could lead to inefficiencies in CPU usage. This commit replaces the busy-wait loop with the rcuwait_wait_event mechanism. This change leverages the RCU wait mechanism to handle waiting for IRQ work completion more efficiently, improving CPU responsiveness and reducing unnecessary CPU usage. Link: https://lkml.kernel.org/r/SJ2P223MB10267BCF19A4A37747A52330F7632@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Steven Davis <goldside000@xxxxxxxxxxx> Cc: Ankur Arora <ankur.a.arora@xxxxxxxxxx> Cc: Frederic Weisbecker <frederic@xxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/irq_work.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- a/kernel/irq_work.c~irq_work-replace-wait-loop-with-rcuwait_wait_event +++ a/kernel/irq_work.c @@ -295,8 +295,7 @@ void irq_work_sync(struct irq_work *work return; } - while (irq_work_is_busy(work)) - cpu_relax(); + rcuwait_wait_event(&work->irqwait, !irq_work_is_busy(work), TASK_UNINTERRUPTIBLE); } EXPORT_SYMBOL_GPL(irq_work_sync); _ Patches currently in -mm which might be from goldside000@xxxxxxxxxxx are