RE: [PATCH] [broken?] Add MSI support to e1000

From: Nguyen, Tom L
Date: Mon Aug 23 2004 - 15:24:26 EST


On Monday, August 23, 2004 Roland Dreier wrote:
> Tom> I do not see anything wrong with the patch and the kernel MSI
> Tom> support because it works for a short time. Ganesh may provide
> Tom> an answer on the MSI support in e1000 hardware.
>
>Based on the e1000 documentation I have, the only thing required for
>the e1000 to use MSI is to set the MSI enable bit in the PCI header.
>Of course there may be some e1000 erratum involving MSI but I have not
>been able to find any indication that this is the case.
>
>It seems possible that there could be some problem in the core Linux
>interrupt code even though some interrupts work -- for example there
>could be a race condition triggered when a second interrupt is
>delivered while handling the first interrupt. However I couldn't find
>any such bug, although I am not at all an expert about low-level
>interrupt handling/APIC programming.

MSI is an edge trigger, which requires the synchronization handshake
between the hardware device and its software device driver. For the
MSI-X capability structure, the kernel handles the synchronization
by masking and unmasking the MSI maskbits. For the MSI capability
structure, the MSI maskbits is optional. If the e1000 hardware does not
support the MSI maskbits in its MSI capability structure, I guess it
could be a race condition in e1000 hardware, which results an
unpredictable behavior.

Thanks,
Long

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