[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CA+icZUX4ZaKxLaWOCggV3dnv++15C4Ly6z854irg=t1kkDG87g@mail.gmail.com>
Date: Tue, 3 Jan 2017 09:39:54 +0100
From: Sedat Dilek <sedat.dilek@...il.com>
To: Neal Cardwell <ncardwell@...gle.com>
Cc: Netdev <netdev@...r.kernel.org>
Subject: Re: tcp_bbr: Forcing set of BBR congestion control as default
On Tue, Jan 3, 2017 at 12:16 AM, Neal Cardwell <ncardwell@...gle.com> wrote:
> On Mon, Jan 2, 2017 at 2:30 PM, Sedat Dilek <sedat.dilek@...il.com> wrote:
>> OK, this looks now good.
>
> Great. Glad to hear it!
>
>> Does BBR only work with fq-qdisc best?
>
> Yes. BBR is designed to work with pacing. And so far the "fq" qdisc is
> the only qdisc that offers pacing. So BBR currently needs the "fq"
> qdisc. In the future, other qdiscs (or even other layers of the stack)
> may offer pacing, in which case BBR could use those as well.
>
>> What about fq_codel?
>
> The "fq_codel" qdisc does not implement pacing, so it would not be sufficient.
>
Thanks, you helped a lot!
More experimenting and investigating.
[ LINUX-CONFIG ]
I looked at config.gce [1] and set all relevant =y settings in my
linux-config (XXX = most important).
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_BBR=y <--- XXX
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_BBR is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_NET_SCH_HTB=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_SCH_DSMARK=y
CONFIG_NET_SCH_CODEL=y
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_FQ=y <--- XXX
CONFIG_NET_SCH_FIFO=y
[ SYSCTL KUNGFU NOT ENOUGH ]
Just got more curious...
Setting TCP_BBR and FQ_QDISC via sysctl seems not to be enough?
# sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = bbr
# sysctl net.core.default_qdisc
net.core.default_qdisc = fq
I use WLAN on my notebook for my Internet connection (my "router" is
an AndroidAP sing HSPA mobile broadband)...
# LC_ALL=C ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 88:53:2e:ac:c3:12
inet addr:192.168.43.103 Bcast:192.168.43.255 Mask:255.255.255.0
inet6 addr: fe80::8a53:2eff:feac:c312/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:73 errors:0 dropped:0 overruns:0 frame:0
TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24210 (24.2 KB) TX bytes:20783 (20.7 KB)
...and tc shows pfifo_fast set...
# tc qdisc show dev wlan0
qdisc mq 0: dev wlan0 root
qdisc pfifo_fast 0: dev wlan0 parent :4 bands 3 priomap 1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 parent :3 bands 3 priomap 1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 parent :2 bands 3 priomap 1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
qdisc pfifo_fast 0: dev wlan0 parent :1 bands 3 priomap 1 2 2 2 1 2 0
0 1 1 1 1 1 1 1 1
It looks like I have to replace my $iface with FQ_QDISC explicitly?
# tc qdisc replace dev wlan0 root fq
# tc qdisc show dev wlan0
qdisc fq 8001: root refcnt 5 [Unknown qdisc, optlen=80]
What means "Unknown qdisc"?
[ TCP_BBR KCONFIG ]
I looked at TCP_CONG_BBR Kconfig help text and it says...
"It requires the fq ("Fair Queue") pacing packet scheduler."
Again, please add a "select NET_SCH_FQ" line - this is very user-friendly.
A reference to [2], also.
[ DOCS ]
I haven't seen "official" docs in Documentation directory
(Linux-kernel sources).
Do you plan an update :-)?
[ Building as a module ]
When CONFIG_TCP_CONG_BBR=m and running a 'modprobe -v tcp_bbr' I do
not see a string with /path/to/tcp_bbr.ko loaded.
Hope this feedback helps.
- Sedat -
[1] https://raw.githubusercontent.com/google/bbr/master/Documentation/config.gce
[2] https://github.com/google/bbr/blob/master/Documentation/bbr-quick-start.md
Download attachment "config-4.9.0-5-iniza-amd64" of type "application/octet-stream" (138377 bytes)
Powered by blists - more mailing lists