~/talk

Run Fast! Catch Performance Regressions in eBPF with Rust

Talkat LinuxCon @ OSS NA 2023 · 2023-05-10..05-12· [rust, security]
linkedin:epompeii
slides:none on file

Builds an XDP eBPF program in Rust using Aya and moves packet logic into eBPF maps to send Fizz/Buzz/FizzBuzz/Fibonacci messages to user space; a late regression appears when a per-packet Fibonacci check runs and adds significant latency (eBPF can add ~100 ms if abused). Benchmarks use Criterion for microtests and kernel BPF stats (proc fd info runtime_nsecs and run_count) for macro tests, serialize results to JSON with a custom harness, and integrate into CI with Bencher to fail builds on statistical regressions; bug fix hardcodes Fibonacci values under 256 (initial list missed 233) and restores performance.

AI-written summary · about

  1. 0:00Introduction to eBPF
  2. 0:33Understanding eBPF and Rust
  3. 2:34Performance Regression Basics
  4. 3:54eBPF Tooling Ecosystem
  5. 5:20Basic eBPF Program Implementation
  6. 8:30Evolving the App with Maps
  7. 11:09Adding Complexity and Debugging
  8. 13:21Optimizing Performance
  9. 14:42Micro Benchmarking with Criterion
  10. 18:14Macro Benchmarking and Tracing
  11. 24:02Continuous Benchmarking in CI
  12. 27:34Conclusion and Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.