[Bloat] Burst Loss

Eric Dumazet eric.dumazet at gmail.com
Wed May 11 05:53:16 EDT 2011


Le mercredi 11 mai 2011 à 10:53 +0200, Richard Scheffenegger a écrit :

> Well, the transmit descriptors (header + pointer to the data to be 
> segmented) is in the hand of the hw driver...
> The hw driver could at least check if the current list of transmit 
> descriptors is for different tcp sessions
> (or interspaced non-tcp traffic), and could interleave these descriptors 
> (reorder them, before they are processed
> by hardware - while obviously maintaining relative ordering between the 
> descriptors belonging to the same flow.
> 
> Also, I think this feature could be utilized for pacing to some extent - 
> interspace the (valid) traffic descriptors
> with descriptors that will cause "invalid" packets to be sent (ie. dst mac 
> == src max; should be dropped by the first switch). It's been well known 
> that properly paced traffic is much more resilient than traffic being sent 
> in short bursts of wirespeed trains of packets. (TSO defeats the 
> self-clocking of TCP with ACKs).

In French, we would say "Avoir le beurre et l'argent du beurre" ;)

GSO is for high performance data xmits, usually in LAN.
Dont expect NICS perform the hard/smart work for you.
Of course hardware vendors claim they can do this, but this is mostly
done with vendor specific methods, and you might spend a lot of time
tuning hardware.

If you want AQM, better use a well chosen qdisc setup (depending on the
workload), and disable TSO/GSO. This will work well with all hardware,
and presumably last for longer times (including hardware changes)






More information about the Bloat mailing list