]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Add bpf_ktime_get_coarse_ns helper
authorDmitrii Banshchikov <me@ubique.spb.ru>
Tue, 17 Nov 2020 18:45:49 +0000 (18:45 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 18 Nov 2020 22:25:32 +0000 (23:25 +0100)
commitdea2a63c2287a6ba9044273a6eceb1c7e9ff207d
treebc4413bce59ff96530fb58525010f22cbb1ff5b3
parent33c5d7e5f8cb4269861767137a01f43af19d2744
bpf: Add bpf_ktime_get_coarse_ns helper

The helper uses CLOCK_MONOTONIC_COARSE source of time that is less
accurate but more performant.

We have a BPF CGROUP_SKB firewall that supports event logging through
bpf_perf_event_output(). Each event has a timestamp and currently we use
bpf_ktime_get_ns() for it. Use of bpf_ktime_get_coarse_ns() saves ~15-20
ns in time required for event logging.

bpf_ktime_get_ns():
EgressLogByRemoteEndpoint                              113.82ns    8.79M

bpf_ktime_get_coarse_ns():
EgressLogByRemoteEndpoint                               95.40ns   10.48M

Signed-off-by: Dmitrii Banshchikov <me@ubique.spb.ru>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20201117184549.257280-1-me@ubique.spb.ru
include/linux/bpf.h
include/uapi/linux/bpf.h
kernel/bpf/core.c
kernel/bpf/helpers.c
kernel/trace/bpf_trace.c
tools/include/uapi/linux/bpf.h