On Thu, Feb 23, 2023 at 5:23 AM Tero Kristo <tero.kristo@xxxxxxxxxxxxxxx> wrote: > > Hi, > > Some background first; on x86 platforms there is a free running TSC > counter which can be used to generate extremely accurate profiling time > stamps. Currently this can be used by BPF programs via hooking into perf > subsystem and reading the value there; however this reduces the accuracy > due to latency + jitter involved with long execution chain, and also the > timebase gets converted into relative from the start of the execution of > the program, instead of getting an absolute system level value. Are you talking about rdtsc or some other counter? Does it need an arch specific setup? > Now, I do have a pretty trivial patch (under internal review atm. at > Intel) that adds an x86 platform specific bpf helper that can directly > read this timestamp counter without relying to perf subsystem hooks. > > Do people have any feedback / insights on this list about addition of > such platform specific BPF helper, basically thumbs up/down for adding > such a thing? Currently I don't think there are any platform specific > helpers in the kernel. Right. That's one of the reasons we don't add new helpers anymore. Please use kfunc instead. You can add it to: arch/x86/net/bpf_jit_comp.c like: __bpf_kfunc u64 bpf_read_rdtsc(void) { asm ("... or to arch specific kernel module. Make sure to add selftests when you submit a patch.