From 71a2bf46d9423ebebc804f1347420bcd510cfbf0 Mon Sep 17 00:00:00 2001 From: Eric Naim Date: Wed, 27 Nov 2024 17:58:37 +0800 Subject: [PATCH] feat: Use fq packet scheduler when BBR is enabled BBR relies on pacing that is currently only implemented on fq[1]. While this is not mandatory since [2], research[3][4][5][6] has shown that fq is still preferable to use, not only on BBR but also as a general packet scheduler on host systems. With that in mind, we can adopt using fq as the default globally in our config instead, but since this requires further consideration, let's just set this when BBR is enabled for now. This is not set on the server kernel where using fq_codel seems to be more desirable. [1] https://man7.org/linux/man-pages/man8/tc-fq.8.html [2] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=218af599fa635b107cfe10acf3249c4dfe5e4123 [3] https://research.cec.sc.edu/files/cyberinfra/files/BBR%20-%20Fundamentals%20and%20Updates%202023-08-29.pdf [4] https://groups.google.com/g/bbr-dev/c/4jL4ropdOV8/m/zNQa-cv7AAAJ - See points 3 and last 2 sentences [5] https://groups.google.com/g/bbr-dev/c/4jL4ropdOV8/m/0-bNH-KEBgAJ [6] https://github.com/torvalds/linux/blob/master/net/ipv4/tcp_bbr.c#L55-L57 Signed-off-by: Eric Naim --- linux-cachyos-autofdo/PKGBUILD | 6 +++++- linux-cachyos-bmq/PKGBUILD | 6 +++++- linux-cachyos-bore/PKGBUILD | 6 +++++- linux-cachyos-deckify/PKGBUILD | 6 +++++- linux-cachyos-eevdf/PKGBUILD | 6 +++++- linux-cachyos-hardened/PKGBUILD | 6 +++++- linux-cachyos-lts/PKGBUILD | 6 +++++- linux-cachyos-rt-bore/PKGBUILD | 6 +++++- linux-cachyos/PKGBUILD | 6 +++++- 9 files changed, 45 insertions(+), 9 deletions(-) diff --git a/linux-cachyos-autofdo/PKGBUILD b/linux-cachyos-autofdo/PKGBUILD index e7866b09..bdc5aea3 100644 --- a/linux-cachyos-autofdo/PKGBUILD +++ b/linux-cachyos-autofdo/PKGBUILD @@ -454,7 +454,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos-bmq/PKGBUILD b/linux-cachyos-bmq/PKGBUILD index 39c041c4..991393c2 100644 --- a/linux-cachyos-bmq/PKGBUILD +++ b/linux-cachyos-bmq/PKGBUILD @@ -435,7 +435,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos-bore/PKGBUILD b/linux-cachyos-bore/PKGBUILD index 62839376..cad75543 100644 --- a/linux-cachyos-bore/PKGBUILD +++ b/linux-cachyos-bore/PKGBUILD @@ -446,7 +446,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos-deckify/PKGBUILD b/linux-cachyos-deckify/PKGBUILD index b5bfedb2..02e2bbf7 100644 --- a/linux-cachyos-deckify/PKGBUILD +++ b/linux-cachyos-deckify/PKGBUILD @@ -437,7 +437,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos-eevdf/PKGBUILD b/linux-cachyos-eevdf/PKGBUILD index 4a447336..89eb0c80 100644 --- a/linux-cachyos-eevdf/PKGBUILD +++ b/linux-cachyos-eevdf/PKGBUILD @@ -435,7 +435,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos-hardened/PKGBUILD b/linux-cachyos-hardened/PKGBUILD index f9944a2a..162e8aa8 100644 --- a/linux-cachyos-hardened/PKGBUILD +++ b/linux-cachyos-hardened/PKGBUILD @@ -439,7 +439,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos-lts/PKGBUILD b/linux-cachyos-lts/PKGBUILD index c2c5c1e9..f2e0ed4c 100644 --- a/linux-cachyos-lts/PKGBUILD +++ b/linux-cachyos-lts/PKGBUILD @@ -477,7 +477,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select LRU config diff --git a/linux-cachyos-rt-bore/PKGBUILD b/linux-cachyos-rt-bore/PKGBUILD index ea92cdc5..634d3754 100644 --- a/linux-cachyos-rt-bore/PKGBUILD +++ b/linux-cachyos-rt-bore/PKGBUILD @@ -435,7 +435,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP diff --git a/linux-cachyos/PKGBUILD b/linux-cachyos/PKGBUILD index 9110495c..90fe9338 100644 --- a/linux-cachyos/PKGBUILD +++ b/linux-cachyos/PKGBUILD @@ -434,7 +434,11 @@ prepare() { -d DEFAULT_CUBIC \ -e TCP_CONG_BBR \ -e DEFAULT_BBR \ - --set-str DEFAULT_TCP_CONG bbr + --set-str DEFAULT_TCP_CONG bbr \ + -m NET_SCH_FQ_CODEL \ + -e NET_SCH_FQ \ + -d CONFIG_DEFAULT_FQ_CODEL \ + -e CONFIG_DEFAULT_FQ fi ### Select THP