On Thu, 2011-03-03 at 13:30 +0100, Jan Kiszka wrote: > On 2011-03-03 13:25, Wolfgang Grandegger wrote: > > Hi Philippe, > > > > On 03/03/2011 08:32 AM, Philippe Gerum wrote: > >> On Thu, 2011-03-03 at 08:21 +0100, Richard Cochran wrote: > >>> On Wed, Mar 02, 2011 at 07:18:46PM +0100, Jan Kiszka wrote: > >>>> On 2011-03-02 16:26, Gilles Chanteperdrix wrote: > >>>>> Richard Cochran wrote: > >>>>>> 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. > >>> > >>> ... > >>> > >>>> 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) > >>> > >>> Okay, so I understand from this: > >>> > >>> 1. The wiki warning is out of date. > >>> > >>> 2. My own PCIe MSI driver/card *should* work. > >>> (It is not a current known limitation of adeos/xenomai.) > >> > >> The situation is not that clear. Enabling CONFIG_PCI_MSI on some 83xx > >> board did cause a lock up at boot for me, so this may point the finger > >> at the pipeline core for ppc, and not to Xenomai which was barely active > >> at that stage. > > > > Now I remember vaguely that we have seen a similar issue on the mpc8308 > > in autumn last year. Here is what you wrote that time: > > > > On 09/29/2010 04:12 PM, Philippe Gerum wrote: > >> Ok, I have a good news: the issue is spotted; and a bad one: this is no > >> trivial stuff to fix. In short, CONFIG_PCI_MSI causes the PIC code to > >> read PCI config memory on the fly during operations (which is intensely > >> insane but that is how it goes). Of course, it does that via the regular > >> PCI helpers, which are stuffed with normal locking constructs we may > >> _not_ call from any real-time/non-regular context. > >> > >> To sum up, we need to call those helpers to ack/mask interrupts within > >> the I-pipe, but we are not allowed to do this because this is inherently > >> unsafe. > >> > >> Work-around: disable CONFIG_PCI_MSI in your configuration. > >> The real fix would require much more thought, to make the PCI helpers > >> Adeos-aware without inducing high latency. > > As MSIs are edge-triggered, only requiring ack at the interrupt > controller level, could it be that PPC is using the wrong flow handler here?
The pipeline forces mask/ack to prevent adverse effect of deferred delivery to downstream handlers. Some chips require this. > > Jan > -- Philippe. _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
