On 01/21/2016 11:08 AM, Peter Zijlstra wrote:
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.

Yep, that's correct. I was planning to re-work it later by handling the shared interrupts, assuming they were not so common, but regarding the examples below, that's wrong.

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.

Ah, I see. Thank you very much for these examples.

Sounds like, I have to handle the shared interrupts sooner than what I was expecting ... :)

  -- Daniel



--
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

Reply via email to