android_kernel_sony_sdm845/tools
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jesper Dangaard Brouer 2457a8fc00 BACKPORT: bpf: introduce new bpf cpu map type BPF_MAP_TYPE_CPUMAP
The 'cpumap' is primarily used as a backend map for XDP BPF helper
call bpf_redirect_map() and XDP_REDIRECT action, like 'devmap'.

This patch implement the main part of the map.  It is not connected to
the XDP redirect system yet, and no SKB allocation are done yet.

The main concern in this patch is to ensure the datapath can run
without any locking.  This adds complexity to the setup and tear-down
procedure, which assumptions are extra carefully documented in the
code comments.

V2:
 - make sure array isn't larger than NR_CPUS
 - make sure CPUs added is a valid possible CPU

V3: fix nitpicks from Jakub Kicinski <kubakici@wp.pl>

V5:
 - Restrict map allocation to root / CAP_SYS_ADMIN
 - WARN_ON_ONCE if queue is not empty on tear-down
 - Return -EPERM on memlock limit instead of -ENOMEM
 - Error code in __cpu_map_entry_alloc() also handle ptr_ring_cleanup()
 - Moved cpu_map_enqueue() to next patch

V6: all notice by Daniel Borkmann
 - Fix err return code in cpu_map_alloc() introduced in V5
 - Move cpu_possible() check after max_entries boundary check
 - Forbid usage initially in check_map_func_compatibility()

V7:
 - Fix alloc error path spotted by Daniel Borkmann
 - Did stress test adding+removing CPUs from the map concurrently
 - Fixed refcnt issue on cpu_map_entry, kthread started too soon
 - Make sure packets are flushed during tear-down, involved use of
   rcu_barrier() and kthread_run only exit after queue is empty
 - Fix alloc error path in __cpu_map_entry_alloc() for ptr_ring

V8:
 - Nitpicking comments and gramma by Edward Cree
 - Fix missing semi-colon introduced in V7 due to rebasing
 - Move struct bpf_cpu_map_entry members cpu+map_id to tracepoint patch

Change-Id: I872c45022a74f941fb83736dc7f5e1be5f095dad
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>
2026-05-15 17:55:51 +07:00
..
accounting This is the 4.9.219 stable release 2020-04-13 13:00:22 +02:00
arch x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE 2022-03-11 10:03:30 +01:00
build UPSTREAM: bpf: Add strict alignment flag for BPF_PROG_LOAD. 2026-05-15 17:54:40 +07:00
cgroup
firewire
gpio tools: gpio-hammer: Avoid potential overflow in main 2020-10-01 20:40:10 +02:00
hv Tools: hv: kvp: eliminate 'may be used uninitialized' warning 2019-09-10 10:31:02 +01:00
iio tools: iio: iio_utils: fix digit calculation 2022-11-03 23:49:16 +09:00
include BACKPORT: bpf: introduce new bpf cpu map type BPF_MAP_TYPE_CPUMAP 2026-05-15 17:55:51 +07:00
kvm/kvm_stat tweewide: Fix most Shebang lines 2021-06-03 08:23:27 +02:00
laptop
lguest
lib UPSTREAM: bpf: Add sparc support to tools and samples. 2026-05-15 17:54:37 +07:00
net
nfsd
objtool objtool: Don't fail on missing symbol table 2021-02-10 09:09:24 +01:00
pcmcia
perf cgroup: make perf_event controller work on cgroup2 hierarchy 2026-05-15 17:50:32 +07:00
power cpupower: avoid multiple definition with gcc -fno-common 2020-04-02 17:20:31 +02:00
scripts tools: Let O= makes handle a relative path with -C option 2020-04-02 17:20:36 +02:00
spi
testing BACKPORT: bpf: testing: fix devmap tests 2026-05-15 17:54:59 +07:00
thermal/tmon tools/thermal: tmon: fix for segfault 2018-05-30 07:50:43 +02:00
time
usb usb: testusb: Fix for showing the connection speed 2021-10-09 13:25:59 +02:00
virtio ptr_ring: fix up after recent ptr_ring changes 2018-11-10 07:42:50 -08:00
vm tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep" 2022-12-08 11:15:41 +01:00
Makefile