[Bloat] Replacing pfifo_fast? (and using sch_fq + hystart fixes)

Dave Taht dave.taht at gmail.com
Mon Mar 24 13:09:55 EDT 2014


As this thread has forked considerably from "AQM STILL not making it
into l2 equipment",
forking it...

On Sun, Mar 23, 2014 at 12:27 PM, Eric Dumazet <eric.dumazet at gmail.com> wrote:
> On Fri, 2014-03-21 at 22:13 +0000, Dave Taht wrote:
>
>> Are you ready to make sch_fq the default in 3.15?
>
>
> sch_fq depends on ktime_get(), so it is a no go if you have
> clocksource using hpet. pfifo_fast doesn't have such issues.

It has long been my hope that conventional distros would start
selecting sch_fq and sch_fq_codel up in safe scenarios.

1) Can an appropriate clocksource be detected from userspace?

if [ have_good_clocksources ]
then
if [ i am a router ]
then
sysctl -w something=fq_codel # or is it an entry in proc?
else
sysctl -w something=sch_fq
fi
fi

How early in boot would this have to be to take effect?

2) In the case of a server machine providing vms, and meeting the
above precondition(s),
what would be a more right qdisc, sch_fq or sch_codel?

3) Containers?

4) The machine in the vm going through the virtual ethernet interface?

(I don't understand to what extent tracking the exit of packets from tcp through
the stack and vm happens - I imagine a TSO is preserved all the way through,
and also imagine that tcp small queues doesn't survive transit through the vm,
but I am known to have a fevered imagination.


> Another issue is TCP CUBIC Hystart 'ACK TRAIN' detection that triggers
> early, since goal of TSO autosizing + FQ/pacing is to get ACK clocking
> every ms. By design, it tends to get ACK trains, way before the cwnd
> might reach BDP.

Fascinating! Push on one thing, break another. As best I recall hystart had a
string of issues like this in it's early deployment.

/me looks forward to one day escaping 3.10-land and observing this for himself

so some sort of bidirectional awareness of the underlying qdisc would be needed
to retune hystart properly.

Is ms resolution the best possible at this point?

>
>
>



-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html



More information about the Bloat mailing list