On Thu, Jan 21, 2016 at 10:50:27AM +0100, Daniel Lezcano wrote:
Actually, the handle passes dev_id in order to let the irqtimings to sort
out a shared interrupt and prevent double sampling. In other words, for
shared interrupts, statistics should be per t-uple(irq , dev_id) but that is
something I did not implemented ATM.
IMO, the handler is at the right place. The prediction code does not take
care of the shared interrupts yet.
That certainly added to the confusion. But if you want per dev_id stats,
the whole alloc framework is 'broken' too, for it allocates the stuff
per irq.
I tried to find a platform with shared interrupts in the ones I have
available around me but I did not find any. Are the shared interrupts
something used nowadays or coming from legacy hardware ? What is the
priority to handle the shared interrupts in the prediction code ?
They're less common (thankfully) than they used to be, but I still have
them:
root@ivb-ep:~# cat /proc/interrupts | grep ","
59: 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 IO-APIC
5-fasteoi i801_smbus, i801_smbus
root@wsm-ep:~# cat /proc/interrupts | grep ","
18: 0 0 0 0 0 0 0 0 0 0 0 0 IO-APIC 18-fasteoi ehci_hcd:usb1, uhci_hcd:usb6
19: 9695230 19577242 13205011 3970578 740376 1138693 0 0 0 0 0 0 IO-APIC 19-fasteoi uhci_hcd:usb5, ata_piix
23: 3 0 0 0 927 0 0 0 0 0 0 0 IO-APIC 23-fasteoi ehci_hcd:usb2, uhci_hcd:usb4
root@snb:~# cat /proc/interrupts | grep ","
19: 11058485 0 0 0 0 0 0 0 IO-APIC 19-fasteoi ata_piix, ata_piix
Also there's a whole host of SOCs that has them.