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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux