linux_dsm_epyc7002/tools/testing/selftests
Neal Cardwell 7d21d54d62 bpf: tcp: bpf_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
Apply the fix from:
 "tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT"
to the BPF implementation of TCP CUBIC congestion control.

Repeating the commit description here for completeness:

Mirja Kuehlewind reported a bug in Linux TCP CUBIC Hystart, where
Hystart HYSTART_DELAY mechanism can exit Slow Start spuriously on an
ACK when the minimum rtt of a connection goes down. From inspection it
is clear from the existing code that this could happen in an example
like the following:

o The first 8 RTT samples in a round trip are 150ms, resulting in a
  curr_rtt of 150ms and a delay_min of 150ms.

o The 9th RTT sample is 100ms. The curr_rtt does not change after the
  first 8 samples, so curr_rtt remains 150ms. But delay_min can be
  lowered at any time, so delay_min falls to 100ms. The code executes
  the HYSTART_DELAY comparison between curr_rtt of 150ms and delay_min
  of 100ms, and the curr_rtt is declared far enough above delay_min to
  force a (spurious) exit of Slow start.

The fix here is simple: allow every RTT sample in a round trip to
lower the curr_rtt.

Fixes: 6de4a9c430 ("bpf: tcp: Add bpf_cubic example")
Reported-by: Mirja Kuehlewind <mirja.kuehlewind@ericsson.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-06-25 16:08:47 -07:00
..
android SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
arm64 .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
bpf bpf: tcp: bpf_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT 2020-06-25 16:08:47 -07:00
breakpoints .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
capabilities .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
cgroup SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
clone3 SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
cpu-hotplug
cpufreq
dmabuf-heaps kselftests: dmabuf-heaps: Fix confused return value on expected error testing 2020-05-08 09:40:58 -06:00
drivers selftests: mlxsw: Add test for control packets 2020-06-01 11:49:23 -07:00
efivarfs .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
exec linux-kselftest-5.8-rc1 2020-06-09 10:03:12 -07:00
filesystems kselftests: introduce new epoll60 testcase for catching lost wakeups 2020-05-07 19:27:21 -07:00
firmware selftests: firmware: Add firmware_request_platform tests 2020-03-20 14:54:04 +01:00
ftrace Tracing updates for 5.8: 2020-06-09 10:06:18 -07:00
futex .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
gpio selftests: add build/cross-build dependency check script 2020-04-23 17:23:20 -06:00
ia64 .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
intel_pstate selftests: add build/cross-build dependency check script 2020-04-23 17:23:20 -06:00
ipc selftests/ipc: Fix test failure seen after initial test run 2020-04-14 10:24:28 -06:00
ir .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
kcmp .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
kexec sefltest/ima: support appended signatures (modsig) 2019-08-29 12:45:30 -04:00
kmod selftests: kmod: test disabling module autoloading 2020-04-10 15:36:22 -07:00
kselftest kselftest/runner: allow to properly deliver signals to tests 2020-04-14 09:49:13 -06:00
kvm KVM: selftests: fix sync_with_host() in smm_test 2020-06-11 12:35:19 -04:00
lib lib: make a test module with set/clear bit 2020-06-04 19:06:25 -07:00
livepatch selftests: Install settings files to fix TIMEOUT failures 2020-02-20 08:56:42 -07:00
lkdtm selftests/lkdtm: Use grep -E instead of egrep 2020-05-08 09:46:17 -06:00
locking
media_tests .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
membarrier .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
memfd selftests: add build/cross-build dependency check script 2020-04-23 17:23:20 -06:00
memory-hotplug
mount .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
mqueue .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
net selftests/net: report etf errors correctly 2020-06-19 20:23:02 -07:00
netfilter selftests: netfilter: add test case for conntrack helper assignment 2020-06-25 00:50:31 +02:00
nsfs tools/testing: Replace zero-length array with flexible-array 2020-05-08 09:42:14 -06:00
ntb NTB: ntb_test: Fix bug when counting remote files 2020-06-05 20:02:09 -04:00
openat2 .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
pid_namespace selftests: add pid namespace ENOMEM regression test 2020-03-25 13:50:34 +01:00
pidfd selftests/pidfd: add pidfd setns tests 2020-05-13 11:41:22 +02:00
powerpc selftests/powerpc: Add a test of counting larx/stcx 2020-05-15 11:58:55 +10:00
prctl .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
proc proc: use human-readable values for hidepid 2020-04-22 10:51:22 -05:00
pstore pstore/platform: Use backend name for console registration 2020-05-30 10:34:02 -07:00
ptp ptp: Add adjust_phase to ptp_clock_caps capability. 2020-05-02 16:31:45 -07:00
ptrace SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
rcutorture Merge branches 'fixes.2020.04.27a', 'kfree_rcu.2020.04.27a', 'rcu-tasks.2020.04.27a', 'stall.2020.04.27a' and 'torture.2020.05.07a' into HEAD 2020-05-07 10:18:32 -07:00
resctrl selftests/resctrl: fix spelling mistake "Errror" -> "Error" 2020-03-13 13:29:22 -06:00
rseq .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
rtc .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
safesetid .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
seccomp selftests/seccomp: allow clock_nanosleep instead of nanosleep 2020-04-14 09:49:51 -06:00
sigaltstack .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
size .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
sparc64 .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
splice .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
static_keys
sync .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
sysctl linux-kselftest-5.8-rc1 2020-06-09 10:03:12 -07:00
tc-testing tc-testing: update geneve options match in tunnel_key unit tests 2020-06-20 17:35:18 -07:00
timens selftests/timens: handle a case when alarm clocks are not supported 2020-05-22 13:29:55 -06:00
timers .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
tmpfs .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
tpm2 Kernel selftests: Add check if TPM devices are supported 2020-05-22 13:19:57 -06:00
uevent
user
vDSO selftests: vdso: Add a selftest for vDSO getcpu() 2020-05-22 11:05:07 -06:00
vm khugepaged: selftests: fix timeout condition in wait_for_scan() 2020-06-10 19:14:17 -07:00
watchdog .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
wireguard wireguard: device: avoid circular netns references 2020-06-23 14:50:34 -07:00
x86 selftests/x86/pkeys: move selftests to arch-neutral directory 2020-06-04 19:06:26 -07:00
zram docs: blockdev: add it to the admin-guide 2019-07-15 11:03:01 -03:00
.gitignore SPDX patches for 5.7-rc1. 2020-04-03 13:12:26 -07:00
gen_kselftest_tar.sh selftests: introduce gen_tar Makefile target 2020-05-19 16:11:46 -06:00
kselftest_deps.sh selftests: add build/cross-build dependency check script 2020-04-23 17:23:20 -06:00
kselftest_harness.h kselftest: add fixture variants 2020-04-28 13:30:44 -07:00
kselftest_install.sh selftests: gen_kselftest_tar.sh: Do not clobber kselftest/ 2019-11-07 14:43:27 -07:00
kselftest_module.h
kselftest.h kselftest: save-and-restore errno to allow for %m formatting 2019-07-30 15:46:48 -06:00
lib.mk linux-kselftest-5.7-rc1 2020-04-01 16:09:12 -07:00
Makefile selftests: introduce gen_tar Makefile target 2020-05-19 16:11:46 -06:00