This patch is based on suggestions from paulus and benh. The bugs are all mine. The idea was to implement soft NMI(s) by keeping interrupts enabled in the soft-disabled state, but to use the interrupt controller to gate posting of new interrupts to the processor. This is still work in progress and a preliminary RFC that needs testing.
Nick posted a more comprehensive version for soft NMI at https://patchwork.ozlabs.org/patch/704605/, but it does not work when interrupts are disabled TODOs: 1. Integrate with https://patchwork.ozlabs.org/patch/706983/ 2. Remove the duplicate XIRR between KVM and the paca's irq field. Will do this in a follow on series, since that requires extensive testing Changelog v3: - Try to address kbuild failure - Initialize paca->irq to a sane value Changelog v2: - Rename functions as suggested by Nick - Move irq in paca down for better alignment - Break the patches up further into interrupt disabling and soft nmi patches - Support only PPC_XICS for now Cc: Michael Ellerman <m...@ellerman.id.au> Cc: Benjamin Herrenschmidt <b...@kernel.crashing.org> Cc: Paul Mackerras <pau...@samba.org> Cc: Nicholas Piggin <npig...@gmail.com> Balbir Singh (3): Merge IPI and DEFAULT priorities Keep interrupts enabled even on soft disable Enable soft nmi handler arch/powerpc/include/asm/paca.h | 1 + arch/powerpc/include/asm/xics.h | 8 ++---- arch/powerpc/kernel/exceptions-64s.S | 33 ++++++++++++++++------ arch/powerpc/kernel/irq.c | 55 ++++++++++++++++++++++++++++++++++-- arch/powerpc/kernel/paca.c | 1 + arch/powerpc/kernel/time.c | 27 +++++++++++++++++- 6 files changed, 108 insertions(+), 17 deletions(-) -- 2.9.3