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