The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)
Перейти к файлу
Alexei Starovoitov 5ee35abb46 Merge branch 'bpf: Remove recursion check for struct_ops prog'
Martin KaFai Lau says:

====================

From: Martin KaFai Lau <martin.lau@kernel.org>

The struct_ops is sharing the tracing-trampoline's enter/exit
function which tracks prog->active to avoid recursion.  It turns
out the struct_ops bpf prog will hit this prog->active and
unnecessarily skipped running the struct_ops prog.  eg.  The
'.ssthresh' may run in_task() and then interrupted by softirq
that runs the same '.ssthresh'.

The kernel does not call the tcp-cc's ops in a recursive way,
so this set is to remove the recursion check for struct_ops prog.

v3:
- Clear the bpf_chg_cc_inprogress from the newly cloned tcp_sock
  in tcp_create_openreq_child() because the listen sk can
  be cloned without lock being held. (Eric Dumazet)

v2:
- v1 [0] turned into a long discussion on a few cases and also
  whether it needs to follow the bpf_run_ctx chain if there is
  tracing bpf_run_ctx (kprobe/trace/trampoline) running in between.

  It is a good signal that it is not obvious enough to reason
  about it and needs a tradeoff for a more straight forward approach.

  This revision uses one bit out of an existing 1 byte hole
  in the tcp_sock.  It is in Patch 4.

  [0]: https://lore.kernel.org/bpf/20220922225616.3054840-1-kafai@fb.com/T/#md98d40ac5ec295fdadef476c227a3401b2b6b911
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2022-09-29 09:25:48 -07:00
Documentation bpf: Tweak definition of KF_TRUSTED_ARGS 2022-09-21 19:25:26 -07:00
LICENSES
arch bpf: Add __bpf_prog_{enter,exit}_struct_ops for struct_ops trampoline 2022-09-29 09:25:47 -07:00
block block-6.0-2022-08-26 2022-08-26 11:05:54 -07:00
certs
crypto
drivers net: moxa: fix endianness-related issues from 'sparse' 2022-09-06 10:24:42 +02:00
fs Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-09-01 12:58:02 -07:00
include bpf: tcp: Stop bpf_setsockopt(TCP_CONGESTION) in init ops to recur itself 2022-09-29 09:25:47 -07:00
init arm64 fixes for -rc3 2022-08-26 11:32:53 -07:00
io_uring lsm/stable-6.0 PR 20220829 2022-08-31 09:23:16 -07:00
ipc
kernel bpf: Add __bpf_prog_{enter,exit}_struct_ops for struct_ops trampoline 2022-09-29 09:25:47 -07:00
lib This push fixes a boot performance regression due to an unnecessary 2022-08-31 09:47:06 -07:00
mm slab fixes for 6.0-rc4 2022-09-01 09:14:56 -07:00
net bpf: tcp: Stop bpf_setsockopt(TCP_CONGESTION) in init ops to recur itself 2022-09-29 09:25:47 -07:00
samples samples/bpf: Replace blk_account_io_done() with __blk_account_io_done() 2022-09-20 17:25:59 -07:00
scripts Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2022-09-06 23:21:18 +02:00
security KEYS: Move KEY_LOOKUP_ to include/linux/key.h and define KEY_LOOKUP_ALL 2022-09-21 17:32:48 -07:00
sound ALSA: usb-audio: Add quirk for LH Labs Geek Out HD Audio 1V5 2022-08-28 09:42:14 +02:00
tools selftests/bpf: Check -EBUSY for the recurred bpf_setsockopt(TCP_CONGESTION) 2022-09-29 09:25:47 -07:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap .mailmap: update Luca Ceresoli's e-mail address 2022-08-28 14:02:46 -07:00
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS net: pcs: add new PCS driver for altera TSE PCS 2022-09-05 10:16:53 +01:00
Makefile Linux 6.0-rc3 2022-08-28 15:05:29 -07:00
README

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.