[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