linux/tools/include
Simone Magnani b9fee10a52 bpftool: Probe for ISA v4 instruction set extension
This patch introduces a new probe to check whether the kernel supports
instruction set extensions v4. The v4 extension comprises several new
instructions: BPF_{SDIV,SMOD} (signed div and mod), BPF_{LD,LDX,ST,STX,MOV}
(sign-extended load/store/move), 32-bit BPF_JA (unconditional jump),
target-independent BPF_ALU64 BSWAP (byte-swapping 16/32/64).

These have been introduced in the following commits respectively:

* ec0e2da95f ("bpf: Support new signed div/mod instructions.")
* 1f9a1ea821 ("bpf: Support new sign-extension load insns")
* 8100928c88 ("bpf: Support new sign-extension mov insns")
* 4cd58e9af8 ("bpf: Support new 32bit offset jmp instruction")
* 0845c3db7b ("bpf: Support new unconditional bswap instruction")

Support in bpftool for previous ISA extensions was added in commit
0fd800b245 ("bpftool: Probe for instruction set extensions"). These
probes are useful for userspace BPF projects that want to use newer
instruction set extensions on newer kernels, to reduce the programs'
sizes or their complexity.

LLVM provides the mcpu=v4 option since LLVM commit 8f28e8069c4b ("[BPF]
support for BPF_ST instruction in codegen") [0].

Signed-off-by: Simone Magnani <simone.magnani@isovalent.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Quentin Monnet <qmo@kernel.org>
Link: 8f28e8069c [0]
Link: https://lore.kernel.org/bpf/20241209145439.336362-1-simone.magnani@isovalent.com
History 2024-12-12 17:25:17 +01:00
..
asm RISC-V Patches for the 6.12 Merge Window, Part 1 2024-09-24 10:59:17 -07:00
asm-generic move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
generated selftests: vDSO: don't include generated headers for chacha test 2024-09-13 17:28:36 +02:00
io_uring selftests/net: Extract uring helpers to be reusable 2023-10-19 16:42:03 -06:00
linux bpftool: Probe for ISA v4 instruction set extension 2024-12-12 17:25:17 +01:00
nolibc tools/nolibc: compiler: add macro __nolibc_fallthrough 2024-10-07 21:56:18 +02:00
perf KVM: selftests: aarch64: Update tools copy of arm_pmuv3.h 2023-12-12 09:46:22 +00:00
tools tools include: add dis-asm-compat.h to handle version differences 2022-08-01 15:29:49 -03:00
trace/events tools/lib/lockdep: Remove private kernel headers 2017-06-05 09:28:14 +02:00
uapi - The series "zram: optimal post-processing target selection" from 2024-11-23 09:58:07 -08:00
vdso tools headers: Update the linux/unaligned.h copy with the kernel sources 2024-10-28 12:34:28 -03:00