Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

tcp: reduce tcp_comp_sack_slack_ns default value to 10 usec

net.ipv4.tcp_comp_sack_slack_ns current default value is too high.

When a flow has many drops (1 % or more), and small RTT, adding 100 usec
before sending SACK stalls the sender relying on getting SACK
fast enough to keep the pipe busy.

Decrease the default to 10 usec.

This is orthogonal to Congestion Control heuristics to determine
if drops are caused by congestion or not.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Link: https://patch.msgid.link/20251114135141.3810964-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Eric Dumazet and committed by
Jakub Kicinski
ca412f25 5860bb1c

+3 -2
+2 -1
Documentation/networking/ip-sysctl.rst
··· 875 875 timer used by SACK compression. This gives extra time 876 876 for small RTT flows, and reduces system overhead by allowing 877 877 opportunistic reduction of timer interrupts. 878 + Too big values might reduce goodput. 878 879 879 - Default : 100,000 ns (100 us) 880 + Default : 10,000 ns (10 us) 880 881 881 882 tcp_comp_sack_nr - INTEGER 882 883 Max number of SACK that can be compressed.
+1 -1
net/ipv4/tcp_ipv4.c
··· 3593 3593 sizeof(init_net.ipv4.sysctl_tcp_wmem)); 3594 3594 } 3595 3595 net->ipv4.sysctl_tcp_comp_sack_delay_ns = NSEC_PER_MSEC; 3596 - net->ipv4.sysctl_tcp_comp_sack_slack_ns = 100 * NSEC_PER_USEC; 3596 + net->ipv4.sysctl_tcp_comp_sack_slack_ns = 10 * NSEC_PER_USEC; 3597 3597 net->ipv4.sysctl_tcp_comp_sack_nr = 44; 3598 3598 net->ipv4.sysctl_tcp_comp_sack_rtt_percent = 33; 3599 3599 net->ipv4.sysctl_tcp_backlog_ack_defer = 1;