kernel: bump to 4.9.270, 4.14.234, 4.19.192
Backported latest BBR fixes for kernel 4.14 and 4.19. No patch needs to be refreshed. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
parent
b4e859322f
commit
8b3da8c24d
@ -6,13 +6,13 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.9 = .269
|
||||
LINUX_VERSION-4.14 = .233
|
||||
LINUX_VERSION-4.19 = .191
|
||||
LINUX_VERSION-4.9 = .270
|
||||
LINUX_VERSION-4.14 = .234
|
||||
LINUX_VERSION-4.19 = .192
|
||||
|
||||
LINUX_KERNEL_HASH-4.9.269 = 7971ff0995119c446125d5949faab717a2d16e6a9ed0bd8350139a98187fcfde
|
||||
LINUX_KERNEL_HASH-4.14.233 = 46c8dd7281d7b15d32ffbdf75281aeb1dde9da7aa963560dd14ee6cdd09f116b
|
||||
LINUX_KERNEL_HASH-4.19.191 = b526bb70f18ab3fd4bae2bb31dd278f91b13a671b5137dbfb71580b47f3ea9c9
|
||||
LINUX_KERNEL_HASH-4.9.270 = c32b0026b6d7b06fdba6d1712756ddec7d5d64b351f6dcd90b49287aff526532
|
||||
LINUX_KERNEL_HASH-4.14.234 = 2b58cc4ecfef3ebc75783ccef10c71f7beebb26edaf7419f55a96183755a98d7
|
||||
LINUX_KERNEL_HASH-4.19.192 = 074dcda77c7c413dece370b3cf8713997d909a8c06724c910ae23cc9c96f0099
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
From 6b3656a60f2067738d1a423328199720806f0c44 Mon Sep 17 00:00:00 2001
|
||||
From: "Kevin(Yudong) Yang" <yyd@google.com>
|
||||
Date: Thu, 26 Sep 2019 10:30:05 -0400
|
||||
Subject: [PATCH] tcp_bbr: fix quantization code to not raise cwnd if not
|
||||
probing bandwidth
|
||||
|
||||
There was a bug in the previous logic that attempted to ensure gain cycling
|
||||
gets inflight above BDP even for small BDPs. This code correctly raised and
|
||||
lowered target inflight values during the gain cycle. And this code
|
||||
correctly ensured that cwnd was raised when probing bandwidth. However, it
|
||||
did not correspondingly ensure that cwnd was *not* raised in this way when
|
||||
*not* probing for bandwidth. The result was that small-BDP flows that were
|
||||
always cwnd-bound could go for many cycles with a fixed cwnd, and not probe
|
||||
or yield bandwidth at all. This meant that multiple small-BDP flows could
|
||||
fail to converge in their bandwidth allocations.
|
||||
|
||||
Fixes: 3c346b233c68 ("tcp_bbr: fix bw probing to raise in-flight data for very small BDPs")
|
||||
Signed-off-by: Kevin(Yudong) Yang <yyd@google.com>
|
||||
Acked-by: Neal Cardwell <ncardwell@google.com>
|
||||
Acked-by: Yuchung Cheng <ycheng@google.com>
|
||||
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
|
||||
Acked-by: Priyaranjan Jha <priyarjha@google.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ipv4/tcp_bbr.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/net/ipv4/tcp_bbr.c
|
||||
+++ b/net/ipv4/tcp_bbr.c
|
||||
@@ -386,7 +386,7 @@ static u32 bbr_bdp(struct sock *sk, u32
|
||||
* which allows 2 outstanding 2-packet sequences, to try to keep pipe
|
||||
* full even with ACK-every-other-packet delayed ACKs.
|
||||
*/
|
||||
-static u32 bbr_quantization_budget(struct sock *sk, u32 cwnd, int gain)
|
||||
+static u32 bbr_quantization_budget(struct sock *sk, u32 cwnd)
|
||||
{
|
||||
struct bbr *bbr = inet_csk_ca(sk);
|
||||
|
||||
@@ -397,7 +397,7 @@ static u32 bbr_quantization_budget(struc
|
||||
cwnd = (cwnd + 1) & ~1U;
|
||||
|
||||
/* Ensure gain cycling gets inflight above BDP even for small BDPs. */
|
||||
- if (bbr->mode == BBR_PROBE_BW && gain > BBR_UNIT)
|
||||
+ if (bbr->mode == BBR_PROBE_BW && bbr->cycle_idx == 0)
|
||||
cwnd += 2;
|
||||
|
||||
return cwnd;
|
||||
@@ -409,7 +409,7 @@ static u32 bbr_inflight(struct sock *sk,
|
||||
u32 inflight;
|
||||
|
||||
inflight = bbr_bdp(sk, bw, gain);
|
||||
- inflight = bbr_quantization_budget(sk, inflight, gain);
|
||||
+ inflight = bbr_quantization_budget(sk, inflight);
|
||||
|
||||
return inflight;
|
||||
}
|
||||
@@ -496,7 +496,7 @@ static void bbr_set_cwnd(struct sock *sk
|
||||
* due to aggregation (of data and/or ACKs) visible in the ACK stream.
|
||||
*/
|
||||
target_cwnd += bbr_ack_aggregation_cwnd(sk);
|
||||
- target_cwnd = bbr_quantization_budget(sk, target_cwnd, gain);
|
||||
+ target_cwnd = bbr_quantization_budget(sk, target_cwnd);
|
||||
|
||||
/* If we're below target cwnd, slow start cwnd toward target cwnd. */
|
||||
if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */
|
||||
@ -0,0 +1,65 @@
|
||||
From 6b3656a60f2067738d1a423328199720806f0c44 Mon Sep 17 00:00:00 2001
|
||||
From: "Kevin(Yudong) Yang" <yyd@google.com>
|
||||
Date: Thu, 26 Sep 2019 10:30:05 -0400
|
||||
Subject: [PATCH] tcp_bbr: fix quantization code to not raise cwnd if not
|
||||
probing bandwidth
|
||||
|
||||
There was a bug in the previous logic that attempted to ensure gain cycling
|
||||
gets inflight above BDP even for small BDPs. This code correctly raised and
|
||||
lowered target inflight values during the gain cycle. And this code
|
||||
correctly ensured that cwnd was raised when probing bandwidth. However, it
|
||||
did not correspondingly ensure that cwnd was *not* raised in this way when
|
||||
*not* probing for bandwidth. The result was that small-BDP flows that were
|
||||
always cwnd-bound could go for many cycles with a fixed cwnd, and not probe
|
||||
or yield bandwidth at all. This meant that multiple small-BDP flows could
|
||||
fail to converge in their bandwidth allocations.
|
||||
|
||||
Fixes: 3c346b233c68 ("tcp_bbr: fix bw probing to raise in-flight data for very small BDPs")
|
||||
Signed-off-by: Kevin(Yudong) Yang <yyd@google.com>
|
||||
Acked-by: Neal Cardwell <ncardwell@google.com>
|
||||
Acked-by: Yuchung Cheng <ycheng@google.com>
|
||||
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
|
||||
Acked-by: Priyaranjan Jha <priyarjha@google.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ipv4/tcp_bbr.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/net/ipv4/tcp_bbr.c
|
||||
+++ b/net/ipv4/tcp_bbr.c
|
||||
@@ -386,7 +386,7 @@ static u32 bbr_bdp(struct sock *sk, u32
|
||||
* which allows 2 outstanding 2-packet sequences, to try to keep pipe
|
||||
* full even with ACK-every-other-packet delayed ACKs.
|
||||
*/
|
||||
-static u32 bbr_quantization_budget(struct sock *sk, u32 cwnd, int gain)
|
||||
+static u32 bbr_quantization_budget(struct sock *sk, u32 cwnd)
|
||||
{
|
||||
struct bbr *bbr = inet_csk_ca(sk);
|
||||
|
||||
@@ -397,7 +397,7 @@ static u32 bbr_quantization_budget(struc
|
||||
cwnd = (cwnd + 1) & ~1U;
|
||||
|
||||
/* Ensure gain cycling gets inflight above BDP even for small BDPs. */
|
||||
- if (bbr->mode == BBR_PROBE_BW && gain > BBR_UNIT)
|
||||
+ if (bbr->mode == BBR_PROBE_BW && bbr->cycle_idx == 0)
|
||||
cwnd += 2;
|
||||
|
||||
return cwnd;
|
||||
@@ -409,7 +409,7 @@ static u32 bbr_inflight(struct sock *sk,
|
||||
u32 inflight;
|
||||
|
||||
inflight = bbr_bdp(sk, bw, gain);
|
||||
- inflight = bbr_quantization_budget(sk, inflight, gain);
|
||||
+ inflight = bbr_quantization_budget(sk, inflight);
|
||||
|
||||
return inflight;
|
||||
}
|
||||
@@ -496,7 +496,7 @@ static void bbr_set_cwnd(struct sock *sk
|
||||
* due to aggregation (of data and/or ACKs) visible in the ACK stream.
|
||||
*/
|
||||
target_cwnd += bbr_ack_aggregation_cwnd(sk);
|
||||
- target_cwnd = bbr_quantization_budget(sk, target_cwnd, gain);
|
||||
+ target_cwnd = bbr_quantization_budget(sk, target_cwnd);
|
||||
|
||||
/* If we're below target cwnd, slow start cwnd toward target cwnd. */
|
||||
if (bbr_full_bw_reached(sk)) /* only cut cwnd if we filled the pipe */
|
||||
Loading…
Reference in New Issue
Block a user