Messages in this thread Patch in this message | | | From | Christophe Leroy <> | Subject | [PATCH v2] powerpc: handle simultaneous interrupts at once | Date | Thu, 16 Mar 2017 09:55:45 +0100 (CET) |
| |
It often happens to have simultaneous interrupts, for instance when having double Ethernet attachment. With the current implementation, we suffer the cost of kernel entry/exit for each interrupt.
This patch introduces a loop in __do_irq() to handle all interrupts at once before returning.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> --- Changed from v1(RFC): simplified following remark from benh
arch/powerpc/kernel/irq.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index a018f5cae899..ba0cb6c2ee7d 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c @@ -522,7 +522,11 @@ void __do_irq(struct pt_regs *regs) if (unlikely(!irq)) __this_cpu_inc(irq_stat.spurious_irqs); else - generic_handle_irq(irq); + do { + generic_handle_irq(irq); + + irq = ppc_md.get_irq(); + } while (irq); trace_irq_exit(regs); -- 2.12.0
| |