Re: [PATCH 2/2] fusion: Implement generic interrupt misroute handling

From: Jesse Barnes
Date: Tue Aug 05 2008 - 13:39:16 EST


On Tuesday, August 05, 2008 9:36 am James Bottomley wrote:
> On Mon, 2008-08-04 at 14:55 +0100, David Vrabel wrote:
> > Moore, Eric wrote:
> > > Thanks, I will try this out. However I thought I saw lost
> > > interrupts occurring randomly, meaning it was not necessarily the
> > > first config page access. I'm back in the office on 8/11, I will
> > > test it out then and provide feedback.
> >
> > Is this using MSI on a device without per-vector mask bits? If so, then
> > this patch may help.
> >
> > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit
> >;h=ce6fce4295ba727b36fdc73040e444bd1aae64cd
>
> We don't really know what the problem is. MSI interrupts get lost on
> older motherboards (the ones most likely to contain a 1030). Why is
> anybody's guess although the clever money is on the motherboard bridge
> having issues.

David just got us to fix an MSI masking bug recently, which could be related.

The issue is that the PCI & interrupt handling code was disabling MSI during
interrupt handling, which could end up causing missed interrupts. When MSI
is disabled, devices can still generate interrupts, but they'll go out the
interrupt line instead, so unless your IRQ handler is also registered with
that IRQ number, you'll probably lose them.

As of the last PCI upstream merge, we work around this issue by never masking
MSI interrupts unless the device supports the MSI mask bit (as opposed to
just the big hammer enable/disable flag).

Jesse


--
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/