I am using p2041 with xr17v358 chip for serial interface.when I was running my test application I was showing disabling irq messages. After that I added some debug prints in my isr so I get to know that even though my card is not generating the interrupts it is calling isr continuously I just wanted to know about spurious interrupt. What is Spurious interrupt? How to handle it in linux based system? Spurious interrupt is issue of hardware or software? How to get know source of spurious interrupt?
Asked
Active
Viewed 5,769 times
1
-
It's invisible from userland. Are you confusing with spurious wakeup, a concept of condition variable? – Tatsuyuki Ishi Mar 13 '17 at 13:43
-
@TatsuyukiIshi They could be observed in user space, e.g. by looking to `/proc/interrupts` (`SPU:` line), or in kernel log (`dmesg` output). But I agree, it's too little information, the context of question is missing. – Sam Protsenko Mar 13 '17 at 14:10
-
@Savan, you need to update post and remove your comment here. – 0andriy Mar 13 '17 at 20:26
-
Besides above you have to provide an additional information, such as kernel version you are using, bus type the device is connected to, driver in use, and so on. – 0andriy Mar 13 '17 at 20:27
-
kernel ver - 3.12.37 (Yocto SDK 1.9), bus type: p2041<----> PCIe Switch(PI7C9X2G608GP) <---->xr17v358, driver: xr17v358 given by exar – Savan Mar 14 '17 at 04:32
-
It might not be a spurious interrupt, it might be an interrupt from another device sharing the same IRQ number. – Ian Abbott Mar 14 '17 at 18:00
-
I have removed every other device. In lspci only exar, pci switch and pci bridge are showing. – Savan Mar 15 '17 at 07:07
1 Answers
1
I would like to add information here, spurious interrupts are mentioned in the manual.
from arm tech manual http://www.cl.cam.ac.uk/research/srg/han/ACS-P35/zynq/arm_gic_architecture_specification.pdf
1.4.4 Spurious interrupts
It is possible that an interrupt that the GIC has signaled to a processor is no longer required. If this happens, when
the processor acknowledges the interrupt, the GIC returns a special Interrupt ID that identifies the interrupt as a
spurious interrupt. Example reasons for spurious interrupts are:
• prior to the processor acknowledging an interrupt:
— software changes the priority of the interrupt
— software disables the interrupt
— software changes the processor that the interrupt targets
• for a 1-N interrupt, another target processor has previously acknowledged that interrupt.

czar x
- 438
- 1
- 3
- 9