2016-03-22 09:37:36

by Reinoud Koornstra

[permalink] [raw]
Subject: making fq_codel default

Hi Everyone,

Everytime I boot I need to set fq_codel for my wireless interface:

sudo tc qdisc add dev wlp4s0 root fq_codel

I also need to sudo sysctl -w net.core.default_qdisc=fq_codel

Is there a good way to have this as the default in the kernel config
instead of pfifo?
Also, are there plans for cake support or do fq_codel in this case mean cake?
Thanks,

Reinoud.


2016-03-22 09:50:30

by Matthias May

[permalink] [raw]
Subject: Re: making fq_codel default

On 22/03/16 10:37, Reinoud Koornstra wrote:
> Hi Everyone,
>
> Everytime I boot I need to set fq_codel for my wireless interface:
>
> sudo tc qdisc add dev wlp4s0 root fq_codel
>
> I also need to sudo sysctl -w net.core.default_qdisc=fq_codel
>
> Is there a good way to have this as the default in the kernel config
> instead of pfifo?
> Also, are there plans for cake support or do fq_codel in this case mean cake?
> Thanks,
>
> Reinoud.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

You might want to take a look at the patches in openwrt.
Specifically this one:
https://dev.openwrt.org/browser/trunk/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch

Best regards
Matthias

2016-03-22 13:24:56

by Dave Taht

[permalink] [raw]
Subject: Re: making fq_codel default

On Tue, Mar 22, 2016 at 3:05 AM, Reinoud Koornstra
<[email protected]> wrote:
> Thanks, that answers my question.

Adding this to /etc/sysctl.conf or /etc/sysctl.d/bufferbloat.conf is
generally what we do

net.core.default_qdisc=fq_codel

A lot of us are running ecn by default and put in ecn on also:

net.ipv4.tcp_ecn=1

> Ok, so currently Cake didn't make it into the 4.4 kernel yet I noticed.
> Are there plans to add this or are there still many issues to be worked out?

The last major test series in late december showed issues with the
then codel implementation, which was presumably fixed, and then also
the new "triple queue isolation" code landed, which is still something
of a head scratcher to test for the problem it's trying to solve
(better per host fairness while still getting ).

It has been my hope to see cake mainlined for about 4 linux kernel
versions now, but the code has sprouted a great deal more
instrumentation that I, personally, would like (like nearly all the
stats below), and additional complexity, that may not be needed, it
still could use some fixes (particularly in GRO peeling), diffserv
modeling still has disputes, and performance analysis and tuning on
the kinds of hardware (arm, mips) it is intended for, especially at a
gbit.

It is being incorporated in a couple openwrt builds, could use more
eyeballs and testers, to firmly escape second system syndrome.
Discussions are held on the cake mailing list.

https://lists.bufferbloat.net/pipermail/cake/2015-December/001755.html

I hope we can resume major testing on it again by the end of april.

> In the mean time I followed some instructions to build the module and
> iproute2 for cake.

Comparison tests on your workloads and your specific devices between
pfifo, fq_codel, and cake are welcomed, but I am pessimistic about any
effects without a bql-like layer underneath it. The consensus
generally is that while some cake-like algos might apply to wifi, the
work needs to happen at the ieee80211 layer rather than the qdisc
layer.

The principal use case for cake for wifi has been in analyzing codel's
behavior in the face of shifting rates on

tc change dev wifi0 root cake bandwidth 10mbit
sleep 2
tc change dev wifi0 root cake bandwidth 50mbit
sleep 2
tc change dev wifi0 root cake bandwidth 20mbit




> sudo tc qdisc add dev wlp4s0 root cake (iwlwifi)
>
> reinoud@router-dev:~/Downloads/linux-4.4.5/net/sched$ sudo tc -s qdisc show
>
> qdisc cake 8002: dev wlp4s0 root refcnt 5 unlimited diffserv4 flows
> rtt 100.0ms raw
> Sent 71025 bytes 516 pkt (dropped 0, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
> memory used: 0b of 15140Kb
> capacity estimate: 0bit
> Tin 0 Tin 1 Tin 2 Tin 3
> thresh 0bit 0bit 0bit 0bit
> target 5.0ms 5.0ms 5.0ms 5.0ms
> interval 100.0ms 100.0ms 100.0ms 100.0ms
> Pk-delay 0us 0us 0us 0us
> Av-delay 0us 0us 0us 0us
> Sp-delay 0us 0us 0us 0us
> pkts 0 0 0 0
> bytes 0 0 0 0
> way-inds 0 0 0 0
> way-miss 0 0 0 0
> way-cols 0 0 0 0
> drops 0 0 0 0
> marks 0 0 0 0
> Sp-flows 0 0 0 0
> Bk-flows 0 0 0 0
> last-len 0 0 0 0
> max-len 0 0 0 0

Groovy. Go pound it flat with some tests and let us know if any of
these statistics are useful to you.

> On Tue, Mar 22, 2016 at 3:43 AM, Matthias May <[email protected]> wrote:
>> On 22/03/16 10:37, Reinoud Koornstra wrote:
>>>
>>> Hi Everyone,
>>>
>>> Everytime I boot I need to set fq_codel for my wireless interface:
>>>
>>> sudo tc qdisc add dev wlp4s0 root fq_codel
>>>
>>> I also need to sudo sysctl -w net.core.default_qdisc=fq_codel
>>>
>>> Is there a good way to have this as the default in the kernel config
>>> instead of pfifo?
>>> Also, are there plans for cake support or do fq_codel in this case mean
>>> cake?
>>> Thanks,
>>>
>>> Reinoud.
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-wireless"
>>> in
>>> the body of a message to [email protected]
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>> You might want to take a look at the patches in openwrt.
>> Specifically this one:
>> https://dev.openwrt.org/browser/trunk/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch
>>
>> Best regards
>> Matthias
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2016-03-22 10:05:43

by Reinoud Koornstra

[permalink] [raw]
Subject: Re: making fq_codel default

Thanks, that answers my question.
Ok, so currently Cake didn't make it into the 4.4 kernel yet I noticed.
Are there plans to add this or are there still many issues to be worked out?
In the mean time I followed some instructions to build the module and
iproute2 for cake.

sudo tc qdisc add dev wlp4s0 root cake (iwlwifi)

reinoud@router-dev:~/Downloads/linux-4.4.5/net/sched$ sudo tc -s qdisc show

qdisc cake 8002: dev wlp4s0 root refcnt 5 unlimited diffserv4 flows
rtt 100.0ms raw
Sent 71025 bytes 516 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
memory used: 0b of 15140Kb
capacity estimate: 0bit
Tin 0 Tin 1 Tin 2 Tin 3
thresh 0bit 0bit 0bit 0bit
target 5.0ms 5.0ms 5.0ms 5.0ms
interval 100.0ms 100.0ms 100.0ms 100.0ms
Pk-delay 0us 0us 0us 0us
Av-delay 0us 0us 0us 0us
Sp-delay 0us 0us 0us 0us
pkts 0 0 0 0
bytes 0 0 0 0
way-inds 0 0 0 0
way-miss 0 0 0 0
way-cols 0 0 0 0
drops 0 0 0 0
marks 0 0 0 0
Sp-flows 0 0 0 0
Bk-flows 0 0 0 0
last-len 0 0 0 0
max-len 0 0 0 0

On Tue, Mar 22, 2016 at 3:43 AM, Matthias May <[email protected]> wrote:
> On 22/03/16 10:37, Reinoud Koornstra wrote:
>>
>> Hi Everyone,
>>
>> Everytime I boot I need to set fq_codel for my wireless interface:
>>
>> sudo tc qdisc add dev wlp4s0 root fq_codel
>>
>> I also need to sudo sysctl -w net.core.default_qdisc=fq_codel
>>
>> Is there a good way to have this as the default in the kernel config
>> instead of pfifo?
>> Also, are there plans for cake support or do fq_codel in this case mean
>> cake?
>> Thanks,
>>
>> Reinoud.
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-wireless"
>> in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
> You might want to take a look at the patches in openwrt.
> Specifically this one:
> https://dev.openwrt.org/browser/trunk/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch
>
> Best regards
> Matthias