umber-kernel/tools/include/linux
Adhemerval Zanella 712676ea2b arm64: vDSO: Wire up getrandom() vDSO implementation
Hook up the generic vDSO implementation to the aarch64 vDSO data page.
The _vdso_rng_data required data is placed within the _vdso_data vvar
page, by using a offset larger than the vdso_data.

The vDSO function requires a ChaCha20 implementation that does not write
to the stack, and that can do an entire ChaCha20 permutation.  The one
provided uses NEON on the permute operation, with a fallback to the
syscall for chips that do not support AdvSIMD.

This also passes the vdso_test_chacha test along with
vdso_test_getrandom. The vdso_test_getrandom bench-single result on
Neoverse-N1 shows:

   vdso: 25000000 times in 0.783884250 seconds
   libc: 25000000 times in 8.780275399 seconds
syscall: 25000000 times in 8.786581518 seconds

A small fixup to arch/arm64/include/asm/mman.h was required to avoid
pulling kernel code into the vDSO, similar to what's already done in
arch/arm64/include/asm/rwonce.h.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2024-09-13 17:28:36 +02:00
..
sched
unaligned
align.h tools: move alignment-related macros to new <linux/align.h> 2024-04-01 10:49:28 +01:00
arm-smccc.h
atomic.h
bitfield.h
bitmap.h radix tree test suite: put definition of bitmap_clear() into lib/bitmap.c 2024-07-10 14:24:27 -07:00
bitops.h asm-generic cleanups for 6.10 2024-05-20 15:18:34 -07:00
bits.h tools headers: Synchronize linux/bits.h with the kernel sources 2024-04-26 22:13:10 -03:00
btf_ids.h tools/resolve_btfids: fix build with musl libc 2024-03-28 18:58:29 -07:00
bug.h
build_bug.h
cache.h
compiler-gcc.h
compiler.h arm64: vDSO: Wire up getrandom() vDSO implementation 2024-09-13 17:28:36 +02:00
compiler_types.h
const.h
coresight-pmu.h
ctype.h
debugfs.h
delay.h
err.h
export.h
filter.h selftests/bpf: add fp-leaking precise subprog result tests 2024-04-04 18:31:08 -07:00
find.h
ftrace.h
gfp.h
gfp_types.h
hash.h
hashtable.h
interrupt.h
interval_tree_generic.h
io.h
jhash.h
kallsyms.h
kconfig.h
kern_levels.h
kernel.h memblock tests: fix undefined reference to `panic' 2024-04-04 11:08:33 +03:00
linkage.h selftests: vDSO: fix include order in build of test_vdso_chacha 2024-08-30 15:44:38 +02:00
list.h
list_sort.h
log2.h
math.h
math64.h
mm.h mm/memblock: use PAGE_ALIGN_DOWN to get pgend in free_memmap 2024-06-05 10:22:22 +03:00
module.h
mutex.h
nmi.h
numa.h memblock tests: fix implicit declaration of function 'numa_valid_node' 2024-07-05 11:24:47 +03:00
objtool_types.h
overflow.h
panic.h memblock tests: fix undefined reference to `panic' 2024-04-04 11:08:33 +03:00
pfn.h
poison.h slab: delete useless RED_INACTIVE and RED_ACTIVE 2024-06-24 21:41:41 +02:00
rbtree.h
rbtree_augmented.h tools lib rbtree: pick some improvements from the kernel rbtree code 2024-05-08 08:41:27 -07:00
rcu.h
refcount.h
ring_buffer.h
rwsem.h
seq_file.h
sizes.h
slab.h
spinlock.h
static_call_types.h
string.h
stringify.h
time64.h
types.h
zalloc.h