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]

Reply via email to