From: "Timothy Pearson" <redacted>
To: "linuxppc-dev" <redacted>
Cc: "Ritesh Harjani" <ritesh.list@gmail.com>
Sent: Friday, August 14, 2026 9:56:30 AM
Subject: [BUG] Continuously increasing spurious interrupts inside pSeries guest on PowerNV host
With kernel 6.12 (Debian stable) we see a continuously increasing spurious
interrupt count inside a pSeries guest running on a PowerNV host:
cat /proc/interrupts
CPU0
16: 0 XIVE-IPI 0 Edge IPI-0
17: 0 XIVE-IRQ 4096 Edge RAS_EPOW
21: 2 XIVE-IRQ 4353 Edge hvc_console
23: 0 XIVE-IRQ 4097 Edge RAS_HOTPLUG
24: 0 pSeries-PCI-MSI 0 Edge virtio0-config
25: 50995 pSeries-PCI-MSI 1 Edge virtio0-input.0
26: 45569 pSeries-PCI-MSI 2 Edge virtio0-output.0
27: 0 pSeries-PCI-MSI 16384 Edge virtio1-config
28: 6 pSeries-PCI-MSI 16385 Edge virtio1-input
LOC: 5781 Local timer interrupts for timer event device
BCT: 0 Broadcast timer interrupts for timer event device
LOC: 2 Local timer interrupts for others
SPU: 449927 Spurious interrupts
PMI: 0 Performance monitoring interrupts
MCE: 0 Machine check exceptions
NMI: 0 System Reset interrupts
WDG: 0 Watchdog soft-NMI interrupts
DBL: 0 Doorbell interrupts
The spurious interrupts are apparently from the virtio0-[input|output] devices.
Actually, I don't know where the spurious interrupts are coming from. This is in XIVE mode. Switching to XICS mode via -M pseries,ic-mode=xics greatly reduces the rate of spurious interrupts, but does not eliminate them.
I don't recall this being an issue on the 5.x series kernels, but do not have the ability to test either those or the 7.x series at the moment.
On Fri, Aug 14, 2026 at 09:56:30AM -0500, Timothy Pearson wrote:
With kernel 6.12 (Debian stable) we see a continuously increasing spurious interrupt count inside a pSeries guest running on a PowerNV host:
cat /proc/interrupts
CPU0
16: 0 XIVE-IPI 0 Edge IPI-0
17: 0 XIVE-IRQ 4096 Edge RAS_EPOW
21: 2 XIVE-IRQ 4353 Edge hvc_console
23: 0 XIVE-IRQ 4097 Edge RAS_HOTPLUG
24: 0 pSeries-PCI-MSI 0 Edge virtio0-config
25: 50995 pSeries-PCI-MSI 1 Edge virtio0-input.0
26: 45569 pSeries-PCI-MSI 2 Edge virtio0-output.0
27: 0 pSeries-PCI-MSI 16384 Edge virtio1-config
28: 6 pSeries-PCI-MSI 16385 Edge virtio1-input
LOC: 5781 Local timer interrupts for timer event device
BCT: 0 Broadcast timer interrupts for timer event device
LOC: 2 Local timer interrupts for others
SPU: 449927 Spurious interrupts
PMI: 0 Performance monitoring interrupts
MCE: 0 Machine check exceptions
NMI: 0 System Reset interrupts
WDG: 0 Watchdog soft-NMI interrupts
DBL: 0 Doorbell interrupts
The spurious interrupts are apparently from the virtio0-[input|output] devices.
I am able to replicate this observation with KVM on PowerNV (XIVE):
1. Host and guest with kernel 6.19 (stock fedora kernels): Huge number of spurious interrupts
2. Host and guest with upstream kernel 5.19: A very small number of spurious
interrupts observed.
We'll look into this and post a fix.
Thanks,
Gautam
On Fri, Aug 14, 2026 at 09:56:30AM -0500, Timothy Pearson wrote:
With kernel 6.12 (Debian stable) we see a continuously increasing spurious interrupt count inside a pSeries guest running on a PowerNV host:
cat /proc/interrupts
CPU0
16: 0 XIVE-IPI 0 Edge IPI-0
17: 0 XIVE-IRQ 4096 Edge RAS_EPOW
21: 2 XIVE-IRQ 4353 Edge hvc_console
23: 0 XIVE-IRQ 4097 Edge RAS_HOTPLUG
24: 0 pSeries-PCI-MSI 0 Edge virtio0-config
25: 50995 pSeries-PCI-MSI 1 Edge virtio0-input.0
26: 45569 pSeries-PCI-MSI 2 Edge virtio0-output.0
27: 0 pSeries-PCI-MSI 16384 Edge virtio1-config
28: 6 pSeries-PCI-MSI 16385 Edge virtio1-input
LOC: 5781 Local timer interrupts for timer event device
BCT: 0 Broadcast timer interrupts for timer event device
LOC: 2 Local timer interrupts for others
SPU: 449927 Spurious interrupts
PMI: 0 Performance monitoring interrupts
MCE: 0 Machine check exceptions
NMI: 0 System Reset interrupts
WDG: 0 Watchdog soft-NMI interrupts
DBL: 0 Doorbell interrupts
The spurious interrupts are apparently from the virtio0-[input|output] devices.
I was able to narrow it down to commit ecd10702baae5 ('KVM: PPC: Book3S HV: Handle pending exceptions on guest entry with MSR_EE')
Reverting the changes in this commit reduces the spurious interrupts
observed considerably. I'll try to root cause the issue and send a fix.
Thanks,
Gautam