Searched hist:"56 c0b48b1e443efa5d6f4d60513302c934e55b17" (Results 1 – 2 of 2) sorted by relevance
/linux/arch/powerpc/platforms/powernv/ |
H A D | opal-irqchip.c | diff 56c0b48b1e443efa5d6f4d60513302c934e55b17 Thu May 10 19:20:05 CEST 2018 Nicholas Piggin <npiggin@gmail.com> powerpc/powernv: process all OPAL event interrupts with kopald
Using irq_work for processing OPAL event interrupts is not necessary. irq_work is typically used to schedule work from NMI context, a softirq may be more appropriate. However OPAL events are not particularly performance or latency critical, so they can all be invoked by kopald.
This patch removes the irq_work queueing, and instead wakes up kopald when there is an event to be processed. kopald processes interrupts individually, enabling irqs and calling cond_resched between each one to minimise latencies.
Event handlers themselves should still use threaded handlers, workqueues, etc. as necessary to avoid high interrupts-off latencies within any single interrupt.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|
H A D | powernv.h | diff 56c0b48b1e443efa5d6f4d60513302c934e55b17 Thu May 10 19:20:05 CEST 2018 Nicholas Piggin <npiggin@gmail.com> powerpc/powernv: process all OPAL event interrupts with kopald
Using irq_work for processing OPAL event interrupts is not necessary. irq_work is typically used to schedule work from NMI context, a softirq may be more appropriate. However OPAL events are not particularly performance or latency critical, so they can all be invoked by kopald.
This patch removes the irq_work queueing, and instead wakes up kopald when there is an event to be processed. kopald processes interrupts individually, enabling irqs and calling cond_resched between each one to minimise latencies.
Event handlers themselves should still use threaded handlers, workqueues, etc. as necessary to avoid high interrupts-off latencies within any single interrupt.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|