mirror of
https://github.com/xdp-project/bpf-examples.git
synced 2024-05-06 15:54:53 +00:00
Instead of keeping all RTTs since ePPing started, reset the aggregated stats after each time they're reported so the report only shows the RTTs since the last report. To avoid concurrency issues due to user space reading and resetting the map while the BPF programs are updating it, use two aggregation maps, one active and one inactive. Each time user space wishes to report the aggregated RTTs it first switches which map is actively used by the BPF progs, and then reads and resets the now inactive map. As the RTT stats are now periodically reset, change the histogram (aggregated_rtt_stats.bins) to use __u32 instead of __u64 counters as risk of overflowing is low (even if 1 million RTTs/s is added to the same bin, it would take over an hour to overflow, and report frequency is likely higher than that). Signed-off-by: Simon Sundberg <simon.sundberg@kau.se>
Practical BPF examples
This git repository contains a diverse set of practical BPF examples that solve (or demonstrate) a specific use-case using BPF.
It is meant to ease doing rapid prototyping and development, writing C-code BPF programs using libbpf. The goal is to make it easier for developers to get started coding.
Many developers struggle to get a working BPF build environment. The repo enviroment makes it easy to build/compile BPF programs by doing the necessary libbpf setup transparently and detect missing compile dependencies (via the configure script). It is a declared goal to make BPF programming more consumable by detecting and reporting issues (when possible).
Description
Languages
C
93.6%
Shell
4.7%
Makefile
1.6%