Re: [PATCH HACK] powerpc: quick hack to get a functional eHEA withhardirq preemption

From: Sebastien Dugue
Date: Tue Sep 16 2008 - 08:23:04 EST



Hi Anton,

On Tue, 16 Sep 2008 15:59:47 +0400 Anton Vorontsov <avorontsov@xxxxxxxxxxxxx> wrote:

> On Mon, Sep 15, 2008 at 03:13:32PM +0200, Sebastien Dugue wrote:
> [...]
> > > we are a bit worried about putting this into the mainstream part of non real
> > > time linux.
> >
> > Heck, I sure do not want this to be applied mainstream nor into any tree.
> > The sole purpose of this patch was to trigger some reaction from the people who
> > know the hardware and try to understand where the problem lies.
> >
> > > There interrupts work perfectly fine, and it was a bit of a
> > > challenge to get there for all cases / configurations / machines.
> >
> > Agreed, but the fact that it fails with hardirq preemption leads me to
> > believe (without any more knowledge about the harware) that there might be
> > something amiss with this driver (or the code concerning the XICS)
> > nevertheless.
> >
> > >
> > > Could you try to enable these changes only for RT-Linux via a real-time
> > > kconfig switch?
> >
> > Nope, this is just a quick hack that allows me to have a functional eHEA under
> > the rt kernel. I want to understand what the problem is:
> >
> > - Is the eHEA really delivering level interrupts to the XICS?
> >
> > - Is the XICS loosing interrupts when they are masked?
>
> There is a known bug in the -rt kernels, the bug causes handlers
> to lose edge interrupts.
>
> See this patch:
>
> http://lkml.org/lkml/2008/6/30/372

Yes, I've been following that thread back then and my hack is based on your
patch. So yes, it seems to be the same problem and it lies in the way -rt handles
the fasteoi flow.

But looking at the comments from the XICS code, it seems that its wired for
level only interrupts. Therefore without any more specs, it's still not clear to
me that there's not a bug with the way the xics handles eHEA interrupts.

Are the eHEA interrupts really level interrupts? If so why do they get lost
when masked?

I just found that not masking that particular interrupt in the fasteoi path
makes the thing work!

Thanks,

Sebastien.

>
> > - ...?
>
> --
> Anton Vorontsov
> email: cbouatmailru@xxxxxxxxx
> irc://irc.freenode.net/bd2
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/