David S. Miller wrote:
Generic networking device queues drop when the overflow.
Whatever dev->tx_queue_len is set to, the device driver needs
to be prepared to be able to queue successfully.
Most people run into problems when they run stupid UDP applications
that send a stream of tinygrams (<~64 bytes). The solutions are to
either fix the UDP app or restrict it's socket send buffer size.
Is this close to how it works?
So, assume we configure a 10MB socket send queue on our UDP socket...
Select says its writable up to at least 5MB.
We write 5MB of 64byte packets "righ now".
Did we just drop a large number of packets?
I would expect that the packets, up to 10MB, are buffered in some
list/fifo in the socket code, and that as the underlying device queue
empties itself, the socket will feed it more packets.
The device queue, in turn, is emptied as the driver is able to fill it's
TxDescriptors, and the hardware empties the TxDescriptors.
Obviously, I'm confused somewhere....
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
|