Re: [PATCH v3 5/5] watchdog: qcom: Register pretimeout interrupt as NMI

From: Konrad Dybcio

Date: Fri Sep 04 2026 - 03:39:05 EST


On 9/3/26 10:58 PM, Mayank Rungta wrote:
> Hi,
>
>>> When a system is completely unresponsive due to an interrupt storm or
>>> deadlocked CPU cores with standard interrupts disabled, a standard
>>> watchdog pretimeout bark interrupt will fail to execute, preventing the
>>> pretimeout governor from capturing CPU backtraces before the hardware
>>> reset bite.
>>
>> [...]
>>
>>> - ret = devm_request_irq(dev, irq, qcom_wdt_isr, 0,
>>> - "wdt_bark", &wdt->wdd);
>>> - if (ret)
>>> - return ret;
>>> + wdt->irq = irq;
>>> + irq_flags = IRQF_PERCPU | IRQF_NOBALANCING |
>>> + IRQF_NO_AUTOEN | IRQF_NO_THREAD;
>>> +
>>> + ret = request_nmi(irq, qcom_wdt_isr, irq_flags,
>>> + "wdt_bark", &wdt->wdd);
>>> + if (ret) {
>>> + /* Fallback to normal interrupt if NMI not supported */
>>> + ret = devm_request_irq(dev, irq, qcom_wdt_isr, 0,
>>> + "wdt_bark", &wdt->wdd);
>>
>> GPT noticed this IRQ is requested but never enabled (NO_AUTOEN)
>
> For the NMI path: request_nmi() requires IRQF_NO_AUTOEN. To balance
> this, enable_nmi(irq) is called immediately upon successful
> registration in the probe function:
>
> For the IRQ fallback: devm_request_irq() passes 0 (not irq_flags). In

Yes, you're right. Both GPT and I were fooled!

Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>

Konrad