Hi there;
I noticed that the kernel builds on the branched fedora32 kernels do not have CONFIG_TCP_CONG_BBR set ; meaning no shiny.
--
root@kuriiti network-scripts]# sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic [root@kuriiti network-scripts]# uname -a Linux kuriiti.example.com 5.6.0-0.rc5.git0.2.fc32.x86_64 #1 SMP Tue Mar 10 19:09:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux [root@kuriiti network-scripts]#
--
Apologies if this has been discussed previously, but this I believe is an omission.
I noticed that the kernel builds on the branched fedora32 kernels do not have CONFIG_TCP_CONG_BBR set ; meaning no shiny.
The kernel module is built: $ modinfo tcp_bbr filename: /lib/modules/5.6.0-0.rc5.git0.2.fc32.x86_64/kernel/net/ipv4/tcp_bbr.ko.xz description: TCP BBR (Bottleneck Bandwidth and RTT)
root@kuriiti network-scripts]# sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic
If you manually load the module it's there:
# sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic # modprobe tcp_bbr # sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic bbr
I'm not sure the "official" way to use different congestion control algorithms but I'm guessing it's something you can use NetworkManager to specify and autoload them.
Peter
Thanks ; I guess a decision was made to build it as a module vs included in baseline at some point. I hadn't even thought of checking modules.
On Tue, 17 Mar 2020 at 22:56, Peter Robinson pbrobinson@gmail.com wrote:
I noticed that the kernel builds on the branched fedora32 kernels do not have CONFIG_TCP_CONG_BBR set ; meaning no shiny.
The kernel module is built: $ modinfo tcp_bbr filename: /lib/modules/5.6.0-0.rc5.git0.2.fc32.x86_64/kernel/net/ipv4/tcp_bbr.ko.xz description: TCP BBR (Bottleneck Bandwidth and RTT)
root@kuriiti network-scripts]# sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic
If you manually load the module it's there:
# sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic # modprobe tcp_bbr # sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic bbr
I'm not sure the "official" way to use different congestion control algorithms but I'm guessing it's something you can use NetworkManager to specify and autoload them.
Peter
On Tue, Mar 17, 2020 at 6:31 AM Joel Wirāmu Pauling jwp@redhat.com wrote:
Thanks ; I guess a decision was made to build it as a module vs included in baseline at some point. I hadn't even thought of checking modules.
This is not something that has changed, git history
on configs/fedora/generic/CONFIG_TCP_CONG_BBR show last change was the general config reworking in 2017. Even this did not change the way it was set, only how our config files are generated. Curious if something else has changed in how userspace tries to load the modules.
Justin
On Tue, 17 Mar 2020 at 22:56, Peter Robinson pbrobinson@gmail.com wrote:
I noticed that the kernel builds on the branched fedora32 kernels do
not
have CONFIG_TCP_CONG_BBR set ; meaning no shiny.
The kernel module is built: $ modinfo tcp_bbr filename: /lib/modules/5.6.0-0.rc5.git0.2.fc32.x86_64/kernel/net/ipv4/tcp_bbr.ko.xz description: TCP BBR (Bottleneck Bandwidth and RTT)
root@kuriiti network-scripts]# sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic
If you manually load the module it's there:
# sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic # modprobe tcp_bbr # sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic bbr
I'm not sure the "official" way to use different congestion control algorithms but I'm guessing it's something you can use NetworkManager to specify and autoload them.
Peter
-- Joel Wirāmu Pauling Senior Solutions Architect Mobile: (+64) 223608671 Email: jwp@redhat.com jpauling@redhat.com _______________________________________________ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
At one point there were some requirements on needing fq as the default scheduler algorithm; IIRC when BBR code got merged in mainline in 4.14 that requirement was dropped. I haven't been playing in the network space much in the last 2 years so stopped paying too much attention.
Generally in the past load workflow is to have the scheduler set as a sysctl config file with a high(low) order preference so it gets applied early in boot. I haven't noticed any issues with this and modprobe bringing the module up on the two fc32 nodes I am using. But I did have issues back when I was doing extensive testing in 2017 of the BBR with self compiled kernels to do with ramdisk inclusion/rescue modes etc - which is one of the reasons I started to always compile it in.
-Joel
On Wed, 18 Mar 2020 at 03:38, Justin Forbes jforbes@redhat.com wrote:
On Tue, Mar 17, 2020 at 6:31 AM Joel Wirāmu Pauling jwp@redhat.com wrote:
Thanks ; I guess a decision was made to build it as a module vs included in baseline at some point. I hadn't even thought of checking modules.
This is not something that has changed, git history
on configs/fedora/generic/CONFIG_TCP_CONG_BBR show last change was the general config reworking in 2017. Even this did not change the way it was set, only how our config files are generated. Curious if something else has changed in how userspace tries to load the modules.
Justin
On Tue, 17 Mar 2020 at 22:56, Peter Robinson pbrobinson@gmail.com wrote:
I noticed that the kernel builds on the branched fedora32 kernels do
not
have CONFIG_TCP_CONG_BBR set ; meaning no shiny.
The kernel module is built: $ modinfo tcp_bbr filename:
/lib/modules/5.6.0-0.rc5.git0.2.fc32.x86_64/kernel/net/ipv4/tcp_bbr.ko.xz
description: TCP BBR (Bottleneck Bandwidth and RTT)
root@kuriiti network-scripts]# sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic
If you manually load the module it's there:
# sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic # modprobe tcp_bbr # sysctl -a | grep tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = reno cubic bbr
I'm not sure the "official" way to use different congestion control algorithms but I'm guessing it's something you can use NetworkManager to specify and autoload them.
Peter
-- Joel Wirāmu Pauling Senior Solutions Architect Mobile: (+64) 223608671 Email: jwp@redhat.com jpauling@redhat.com _______________________________________________ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
kernel@lists.fedoraproject.org