On Wed, 12 May 2004, Pantelis Antoniou wrote:I see.
I believe that throttling is achieved by netif_stop_queue when no more hardware buffers are available.
But netif_start_queue is only called on the open driver method.
When is the transmition restarted?
By the driver calling netif_wake_queue() whenever there is buffer space availabe. There is no need to first verify that the queue is stopped as this is explicitly verified by netif_wake_queue().
By looking at netif_wake_queue I see that a soft irq is scheduled which will finally call hard_start_xmit.
This brings me to my next question...
I believe that there is some significant latency between the time that the transmit interrupt signalled the buffer-space-is-available condition and the time that the hardware buffers are refilled.
Is there a mechanism that I get retreive packets already pending in the transmit queue so that I can fill the free hardware buffer from within the transmit interrupt handler?
RegardsRegards Henrik
Pantelis
- : 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