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