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

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

 



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

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux