No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Eric Dumazet 31e1da773a tcp: avoid premature drops in tcp_add_backlog()
[ Upstream commit ec00ed472bdb7d0af840da68c8c11bff9f4d9caa ]

While testing TCP performance with latest trees,
I saw suspect SOCKET_BACKLOG drops.

tcp_add_backlog() computes its limit with :

    limit = (u32)READ_ONCE(sk->sk_rcvbuf) +
            (u32)(READ_ONCE(sk->sk_sndbuf) >> 1);
    limit += 64 * 1024;

This does not take into account that sk->sk_backlog.len
is reset only at the very end of __release_sock().

Both sk->sk_backlog.len and sk->sk_rmem_alloc could reach
sk_rcvbuf in normal conditions.

We should double sk->sk_rcvbuf contribution in the formula
to absorb bubbles in the backlog, which happen more often
for very fast flows.

This change maintains decent protection against abuses.

Fixes: c377411f24 ("net: sk_add_backlog() take rmem_alloc into account")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://lore.kernel.org/r/20240423125620.3309458-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-16 13:28:35 +02:00
arch x86/purgatory: Switch to the position-independent small code model 2024-06-16 13:28:35 +02:00
block block: prevent division by zero in blk_rq_stat_sum() 2024-04-13 12:51:38 +02:00
certs
crypto Revert "crypto: api - Disallow identical driver names" 2024-05-02 16:18:35 +02:00
Documentation ASoC: dt-bindings: rt5645: add cbj sleeve gpio property 2024-06-16 13:28:31 +02:00
drivers wifi: ath10k: populate board data for WCN3990 2024-06-16 13:28:35 +02:00
fs jffs2: prevent xattr node from overflowing the eraseblock 2024-06-16 13:28:33 +02:00
include xfrm: Preserve vlan tags for transport mode software GRO 2024-05-17 11:43:53 +02:00
init init: open /initrd.image with O_LARGEFILE 2024-04-13 12:51:36 +02:00
ipc
kernel ring-buffer: Fix a race between readers and resize checks 2024-06-16 13:28:30 +02:00
lib dyndbg: fix old BUG_ON in >control parser 2024-05-17 11:43:55 +02:00
LICENSES
mm x86/mm/pat: fix VM_PAT handling in COW mappings 2024-04-13 12:51:40 +02:00
net tcp: avoid premature drops in tcp_add_backlog() 2024-06-16 13:28:35 +02:00
samples media: rename VFL_TYPE_GRABBER to _VIDEO 2024-03-26 18:22:22 -04:00
scripts kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1 2024-04-13 12:51:26 +02:00
security smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity() 2024-04-13 12:51:22 +02:00
sound ASoC: da7219-aad: fix usage of device_get_named_child_node() 2024-06-16 13:28:31 +02:00
tools Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems" 2024-05-25 16:17:17 +02:00
usr
virt KVM: async_pf: Cleanup kvm_setup_async_pf() 2024-05-02 16:18:32 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS iio: stx104: Move to addac subdirectory 2023-08-30 16:27:12 +02:00
Makefile Linux 5.4.277 2024-05-25 16:17:18 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.