On 2011-03-02 16:26, Gilles Chanteperdrix wrote: > Richard Cochran wrote: >> I am running Xenomai 2.5 git master on a P2020 with kernel 2.6.36. >> >> We have a custom PCIe card that raise a MSI, with a normal (not rtdm) >> driver. It appears that the interrupt comes just once and then is >> stuck. It work under plain Linux, but I cannot rule out a HW timing >> bug either. >> >> The wiki pages >> >> http://www.xenomai.org/index.php/FAQs >> http://www.xenomai.org/index.php/Configuring_x86_kernels >> >> say not to enable MSI on x86, with a link to a very old (2008) >> discussion. I found a newer mail >> >> https://mail.gna.org/public/xenomai-help/2010-01/msg00095.html >> >> claiming that MSI is okay. > > No. This is my fault. I simply had forgotten that MSI were not OK on x86. > >> >> Is there a known problem with MSI and Xenomai? > > There is a known problem with MSI on x86 (explained by the FAQ link). > >> >> If so, where/how can I start to get working on fixing it? >> >> (I don't need the MSI in a rtdm or adeos context.) > > Given that the problem is that the interrupt controller ack/mask > functions (if I recall correctly) need, on x86, to use some Linux > primitives which can not be called from Xenomai domain, I am not sure it > is easy to fix. And the fact that you do not need the MSI in Xenomai > domain does not change anything, since ack/mask routines are called > ahead of the pipeline anyway.
The current situation looks like this: - MSI[-X] usage for plain Linux drivers is fine, we are using it on machines where you can hardly avoid MSI today - MSI[-X] usage for RTDM (ie. RT) drivers is basically fine as long as you avoid enabling/disabling from RT context (also used for quite a while here, no known issues under this restriction) Fixing that enabling/disabling (i.e. mask/unmask) is indeed tricky for classic MSI as we can't rely on direct hardware (too slow). It's easier for MSI-X - as long as the addressed device is not delaying the mask operation in firmware or wherever (seen only with MSI devices so far, but might be possible with MSI-X as well). Note that much of this is arch independent, only the PCI config space access method required for classic MSI may vary (likely positively). Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
