// SPDX-License-Identifier: LGPL-2.1 OR BSD-2-Clause /* Copyright (c) 2026 Meta Platforms, Inc. and affiliates. */ #include #include #include u32 bench_alloc_size; u32 bench_nallocs; long bench_hits; long bench_duration_ns; SEC("syscall") int bench_malloc(void) { void __arena *mem; u64 start_ns; u32 i; start_ns = bpf_ktime_get_ns(); for (i = zero; i < bench_nallocs && can_loop; i++) { mem = arena_malloc(bench_alloc_size); if (!mem) return -ENOMEM; } __sync_add_and_fetch(&bench_duration_ns, bpf_ktime_get_ns() - start_ns); __sync_add_and_fetch(&bench_hits, i); return 0; } SEC("syscall") int bench_calloc(void) { void __arena *mem; u64 start_ns; u32 i; start_ns = bpf_ktime_get_ns(); for (i = zero; i < bench_nallocs && can_loop; i++) { mem = arena_calloc(1, bench_alloc_size); if (!mem) return -ENOMEM; } __sync_add_and_fetch(&bench_duration_ns, bpf_ktime_get_ns() - start_ns); __sync_add_and_fetch(&bench_hits, i); return 0; }