On Tue, 6 Apr 1999, Joel K. Hollingsworth wrote:
> Taking a look at the code in 3c509.c in el3_start_xmit I see:
>
> outw(skb->len, ioaddr + TX_FIFO);
> outw(0x00, ioaddr + TX_FIFO);
> outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2);
>
> This delivers the packet to the nic, but does it also trigger the send?
> I do not see an explicit trigger later on. Could someone please enlighten
> me. Thank you very much for your time.
The packet is transmitted after it has been transferred to the FIFO.
The hardware has already been skb->len, so it knows when that occurs.
The 3c509 requires that the packet be padded to a dword boundary.
It's possible to reduce transmit latency by configuring the hardware to
start transmitting before the entire packet has been transferred.
That is unwise for many Linux environments -- it raises the possibility of a
FIFO underflow unless you block other interrupt sources.
Donald Becker [EMAIL PROTECTED]
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center, Greenbelt, MD. 20771
301-286-0882 http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]