Messages in this thread | | | Date | Mon, 03 Jul 2023 14:55:57 -0700 | From | John Fastabend <> | Subject | RE: [PATCH 0/2] x86/BPF: Add new BPF helper call bpf_rdtsc |
| |
Tero Kristo wrote: > Hello, > > This patch series adds a new x86 arch specific BPF helper, bpf_rdtsc() > which can be used for reading the hardware time stamp counter (TSC.) > Currently the same counter is directly accessible from userspace > (using RDTSC instruction), and kernel space using various rdtsc_*() > APIs, however eBPF lacks the support. > > The main usage for the TSC counter is for various profiling and timing > purposes, getting accurate cycle counter values. The counter can be > currently read from BPF programs by using the existing perf subsystem > services (bpf_perf_event_read()), however its usage is cumbersome at > best. Additionally, the perf subsystem provides relative value only > for the counter, but absolute values are desired by some use cases > like Wult [1]. The absolute value of TSC can be read with BPF programs > currently via some kprobe / bpf_core_read() magic (see [2], [3], [4] for > example), but this relies on accessing kernel internals and is not > stable API, and is pretty cumbersome. Thus, this patch proposes a new > arch x86 specific BPF helper to avoid the above issues. > > -Tero > > [1] https://github.com/intel/wult > [2] https://github.com/intel/wult/blob/c92237c95b898498faf41e6644983102d1fe5156/helpers/wult-tdt-helper/tdt-bpf.c#L102 > [3] https://github.com/intel/wult/blob/c92237c95b898498faf41e6644983102d1fe5156/helpers/wult-tdt-helper/tdt-bpf.c#L133 > [4] https://github.com/intel/wult/blob/c92237c95b898498faf41e6644983102d1fe5156/helpers/wult-tdt-helper/tdt-bpf.c#L488 > > >
Makes a lot of sense to me.
Acked-by: John Fastabend <john.fastabend@gmail.com>
| |