bpf: Add ability to pin bpf timer to calling CPU
authorDavid Vernet <void@manifault.com>
Wed, 4 Oct 2023 16:23:38 +0000 (11:23 -0500)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 9 Oct 2023 14:28:49 +0000 (16:28 +0200)
commitd6247ecb6c1e17d7a33317090627f5bfe563cbb2
tree44ab30986641d6e821620f08a2edf24fbbcf4aac
parent84cb9cbd911a3e06c1ff31572706ba0ee3499b19
bpf: Add ability to pin bpf timer to calling CPU

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 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(). A subsequent patch will update selftests to validate.

Signed-off-by: David Vernet <void@manifault.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Song Liu <song@kernel.org>
Acked-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/bpf/20231004162339.200702-2-void@manifault.com
include/uapi/linux/bpf.h
kernel/bpf/helpers.c
tools/include/uapi/linux/bpf.h