[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070828.170618.62343274.davem@davemloft.net>
Date: Tue, 28 Aug 2007 17:06:18 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: rick.jones2@...com
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
From: Rick Jones <rick.jones2@...com>
Date: Tue, 28 Aug 2007 16:48:24 -0700
> 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.
The issue is not ACKs or anything of that nature, but socket buffer
accounting.
We can't release the socket until all transmit packets have been
liberated and their size subtracted from the send buffer quota.
Because these packets have their skb->destructor and skb->sk
set to reference that socket and the protocol code that manages
it's send buffer allocations.
In the worst possible case, using UDP as an example, let's say one big
packets fits in the send buffer and this is the one last packet that
gets into the devices TX ring.
It never liberates the packet, and if that is the only application
generating traffic in the system we deadlock.
Devices need to free packets in a deterministic amount of time, no
matter what.
I don't even understand why this needs to be discussed to be honest
with you :-)
-
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