Hello,
I'm trying to understand how netdev works wrt the queueing.
Here is what I deducted, please correct me if there is something or everything
wrong :)
There is a transmit queue associated to the device which is managed by the
Qdisc discipline manager. Once a skb has been enqueued into the Qdisk queue
(by dev_queue_xmit) it is destined to the device via hard_start_xmit and the
sender shouldn't mess with it.
In the upper layer there is sk_write_queue which is managed by the protocol
implementation and enqueing/dequeuing is made thru skb_queue_*
If the protocol needs to cope with retransmissions, I can use this queue.
Now, some question :)
The (low-speed) device I'm working with has a FIFO managed by the hardware
into which I write frames to be transmitted. Is it ok if I put frames in the
FIFO without restrictions? I mean, from a performances viewpoint, is it good
if the FIFO fills eventually up or is it better to keep it empty or almost
empty and let the device queueing be handled by netdev?
Thank you,
Bye!
--
Daniele Orlandi
|