kernel_samsung_a53x/include/net
Neal Cardwell 63b98926dd tcp: fix excessive TLP and RACK timeouts from HZ rounding
commit 1c2709cfff1dedbb9591e989e2f001484208d914 upstream.

We discovered from packet traces of slow loss recovery on kernels with
the default HZ=250 setting (and min_rtt < 1ms) that after reordering,
when receiving a SACKed sequence range, the RACK reordering timer was
firing after about 16ms rather than the desired value of roughly
min_rtt/4 + 2ms. The problem is largely due to the RACK reorder timer
calculation adding in TCP_TIMEOUT_MIN, which is 2 jiffies. On kernels
with HZ=250, this is 2*4ms = 8ms. The TLP timer calculation has the
exact same issue.

This commit fixes the TLP transmit timer and RACK reordering timer
floor calculation to more closely match the intended 2ms floor even on
kernels with HZ=250. It does this by adding in a new
TCP_TIMEOUT_MIN_US floor of 2000 us and then converting to jiffies,
instead of the current approach of converting to jiffies and then
adding th TCP_TIMEOUT_MIN value of 2 jiffies.

Our testing has verified that on kernels with HZ=1000, as expected,
this does not produce significant changes in behavior, but on kernels
with the default HZ=250 the latency improvement can be large. For
example, our tests show that for HZ=250 kernels at low RTTs this fix
roughly halves the latency for the RACK reorder timer: instead of
mostly firing at 16ms it mostly fires at 8ms.

Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Fixes: bb4d991a28cc ("tcp: adjust tail loss probe timeout")
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20231015174700.2206872-1-ncardwell.sw@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-08 11:26:10 +01:00
..
9p Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bluetooth Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
caif Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
iucv Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netfilter Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netns xfrm: fix a data-race in xfrm_gen_index() 2024-11-08 11:26:09 +01:00
nfc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
phonet Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sctp Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tc_act Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
6lowpan.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
act_api.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
addrconf.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
af_ieee802154.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
af_rxrpc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
af_unix.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
af_vsock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ah.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
arp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
atmclip.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ax25.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ax88796.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bareudp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bond_3ad.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bond_alb.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bond_options.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bonding.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
bpf_sk_storage.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
busy_poll.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
calipso.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cfg80211-wext.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cfg80211.h Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
cfg802154.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
checksum.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cipso_ipv4.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cls_cgroup.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cnss2.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cnss_nl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cnss_prealloc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cnss_utils.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
codel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
codel_impl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
codel_qdisc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
compat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
datalink.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dcbevent.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dcbnl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
devlink.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dropdump.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dsa.h Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
dsfield.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dst.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dst_cache.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dst_metadata.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dst_ops.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
erspan.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
esp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
espintcp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ethoc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
failover.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fib_notifier.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fib_rules.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
firewire.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flow.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flow_dissector.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
flow_offload.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fou.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fq.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fq_impl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
garp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gen_stats.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
genetlink.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
geneve.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gre.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gro_cells.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gtp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gue.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hwbm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
icmp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ieee80211_radiotap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ieee802154_netdev.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
if_inet6.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ife.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ila.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet6_connection_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet6_hashtables.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_common.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_connection_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_ecn.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_frag.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_hashtables.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inet_timewait_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inetpeer.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip6_checksum.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip6_fib.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip6_route.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip6_tunnel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip_fib.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip_tunnels.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ip_vs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipcomp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipconfig.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipv6.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipv6_frag.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipv6_stubs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipx.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
iw_handler.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kcm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
l3mdev.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lag.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lapb.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lib80211.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_c_ac.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_c_ev.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_c_st.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_conn.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_if.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_pdu.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_s_ac.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_s_ev.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_s_st.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
llc_sap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lwtunnel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mac80211.h Backport mac80211 patches from linux-6.1.y 2024-06-15 16:29:20 -03:00
mac802154.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
macsec.h net: macsec: indicate next pn update when offloading 2024-11-08 11:25:46 +01:00
mip6.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mld.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mpls.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mpls_iptunnel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mptcp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mrp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ncm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ncsi.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ndisc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
neighbour.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
net_failover.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
net_namespace.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
net_ratelimit.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netevent.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netlabel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netlink.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netprio_cgroup.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
netrom.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nexthop.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nl802154.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nsh.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
p8022.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
page_pool.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pie.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ping.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pkt_cls.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pkt_sched.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pptp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
protocol.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
psample.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
psnap.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
raw.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rawv6.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
red.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
regulatory.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
request_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rose.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
route.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rpl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rsi_91x.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtnetlink.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtnh.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sch_generic.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
scm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
secure_seq.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
seg6.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
seg6_hmac.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
seg6_local.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
skb_tracer.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
slhc_vj.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
smc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
snmp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sock_reuseport.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Space.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
strparser.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
switchdev.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tcp.h tcp: fix excessive TLP and RACK timeouts from HZ rounding 2024-11-08 11:26:10 +01:00
tcp_states.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
TEST_MAPPING Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
timewait_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tipc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tls.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tls_toe.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
transp_v6.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tso.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tun_proto.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
udp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
udp_tunnel.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
udplite.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
virt_wifi.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vsock_addr.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vxlan.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wext.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wimax.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
x25.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
x25device.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xdp.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xdp_priv.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xdp_sock.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xdp_sock_drv.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xfrm.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xsk_buff_pool.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00