linux/net/mptcp
Eric Dumazet 81df4fa94e tcp: add a fast path in tcp_delack_timer()
delack timer is not stopped from inet_csk_clear_xmit_timer()
because we do not define INET_CSK_CLEAR_TIMERS.

This is a conscious choice : inet_csk_clear_xmit_timer()
is often called from another cpu. Calling del_timer()
would cause false sharing and lock contention.

This means that very often, tcp_delack_timer() is called
at the timer expiration, while there is no ACK to transmit.

This can be detected very early, avoiding the socket spinlock.

Notes:
- test about tp->compressed_ack is racy,
  but in the unlikely case there is a race, the dedicated
  compressed_ack_timer hrtimer would close it.

- Even if the fast path is not taken, reading
  icsk->icsk_ack.pending and tp->compressed_ack
  before acquiring the socket spinlock reduces
  acquisition time and chances of contention.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241002173042.917928-4-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-10-04 15:34:40 -07:00
..
Kconfig
Makefile
bpf.c
crypto.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
crypto_test.c
ctrl.c mptcp: disable active MPTCP in case of blackhole 2024-09-11 15:57:50 -07:00
diag.c mptcp: correct MPTCP_SUBFLOW_ATTR_SSN_OFFSET reserved size 2024-08-13 19:13:25 -07:00
fastopen.c mptcp: pr_debug: add missing \n at the end 2024-08-27 14:45:16 -07:00
mib.c mptcp: disable active MPTCP in case of blackhole 2024-09-11 15:57:50 -07:00
mib.h mptcp: disable active MPTCP in case of blackhole 2024-09-11 15:57:50 -07:00
mptcp_diag.c
mptcp_pm_gen.c
mptcp_pm_gen.h
options.c mptcp: pr_debug: add missing \n at the end 2024-08-27 14:45:16 -07:00
pm.c mptcp: pm: reduce entries iterations on connect 2024-09-03 15:25:42 -07:00
pm_netlink.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2024-09-12 17:11:24 -07:00
pm_userspace.c mptcp: pm: reduce entries iterations on connect 2024-09-03 15:25:42 -07:00
protocol.c tcp: add a fast path in tcp_delack_timer() 2024-10-04 15:34:40 -07:00
protocol.h mptcp: disable active MPTCP in case of blackhole 2024-09-11 15:57:50 -07:00
sched.c mptcp: pr_debug: add missing \n at the end 2024-08-27 14:45:16 -07:00
sockopt.c mptcp: pr_debug: add missing \n at the end 2024-08-27 14:45:16 -07:00
subflow.c mptcp: disable active MPTCP in case of blackhole 2024-09-11 15:57:50 -07:00
syncookies.c
token.c
token_test.c