[PATCH bpf-next v2 0/2] bpf: Add ability to pin bpf timer to calling CPU

From: David Vernet
Date: Wed Oct 04 2023 - 12:24:30 EST


BPF supports creating high resolution timers using bpf_timer_* helper
functions. Currently, only the BPF_F_TIMER_ABS flag is supported, which
specifies that the timeout should be interpreted as absolute time. It
would also be useful to be able to pin that timer to a core. For
example, if you wanted to make a subset of cores run without timer
interrupts, and only have the timer be invoked on a single core.

This patch set adds support for this with a new BPF_F_TIMER_CPU_PIN
flag. When specified, the HRTIMER_MODE_PINNED flag is passed to
hrtimer_start().

This patch set is based off of commit 93fb2776f43e ("Merge branch
'bpf-xsk-sh-umem'").

---

v1: https://lore.kernel.org/bpf/20231002234708.331192-1-void@xxxxxxxxxxxxx/

v1 -> v2 changes:
- Put declaration of soft_timer_pinned and abs_timer_pinned selftest
maps on same line as abs_timer (Song)

David Vernet (2):
bpf: Add ability to pin bpf timer to calling CPU
bpf/selftests: Test pinning bpf timer to a core

include/uapi/linux/bpf.h | 4 ++
kernel/bpf/helpers.c | 5 +-
tools/include/uapi/linux/bpf.h | 4 ++
.../testing/selftests/bpf/prog_tests/timer.c | 4 ++
tools/testing/selftests/bpf/progs/timer.c | 63 ++++++++++++++++++-
5 files changed, 78 insertions(+), 2 deletions(-)

--
2.41.0