Query on handling some special Group0 interrupt in Linux

From: Mukesh Ojha
Date: Wed Nov 09 2022 - 11:21:17 EST


Hi,

I was working on a use case where both el2/el3 are implemented and we have a watchdog interrupt (SPI), which is used for detecting software hangs and cause device reset; If that interrupt's current cpu affinity is on a core, where interrupts are disabled, we won't be able to serve it or if this interrupt comes on a core which has interrupt enabled, calling panic() or with smp_send_stop(), we would not be able
to know the call stack of the other cores which is running with interrupt disabled.

I was thinking of configuring both a watchdog irq(SPI) and IPI_STOP (SGI) or any reserve IPI as an FIQ. And from the watchdog irq handler,
I was thinking of calling panic() which eventually sends IPI_STOP(SGI FIQ) to all the cores. And with this we will able to dump all the core call stack.

I am able to achieve this but wanted to know if this is acceptable to the community to support/allow such use cases like above and enable group0 interrupt from GIC for some special use cases.

-Mukesh