[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46D4B448.7060508@hp.com>
Date: Tue, 28 Aug 2007 16:48:24 -0700
From: Rick Jones <rick.jones2@...com>
To: David Miller <davem@...emloft.net>
Cc: msb@...gle.com, netdev@...r.kernel.org, grundler@...gle.com,
hadi@...erus.ca, robert.olsson@....uu.se, venza@...wnhat.org
Subject: Re: pktgen terminating condition
David Miller wrote:
> From: Mandeep Singh Baines <msb@...gle.com>
> Date: Tue, 28 Aug 2007 15:47:18 -0700
>
>
>>It seems that some drivers do not immediately free skbs on transmit
>>complete. They will hold the skb until there are more packets to
>>free. One example is the sis900 driver which uses TX_IDLE (tx
>>state-machine idle) instead of TX_OK (tx completed) as a way of
>>coalescing interrupts. I've also seen another driver which does
>>something similar. Not sure how prevalent this technique is.
>>
>>So is this a bug in the drivers or a bug in pktgen?
>
>
> This is a bug since it can stall TCP sockets, and even non-TCP sockets
> will not be freeable until these SKBs are released by the device.
Not to defend any one driver, but could it be that the behaviour of TCP
is such that we've not noticed until now?
Does TCP particularly care for an SKB carrying an ACK? For ones carrying
data there would be an ACK arriving before TCP could "really" free them
right? And that ACK (rx event) could very well come after some other TX
completion, or perhaps trigger cleaning up TXs in the driver at that time?
And a UDP app is as likely as not to be request/response in nature, with the
response behaving at the driver level rather like a TCP ACK in terms of the
above.
Both of those are things I don't think we typically see happen in pktgen right?
> All transmit packets must be released in a finite amount of time by
> the driver without requiring more traffic to induce this release.
Yes, but for what definition of finite?
rick jones
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists