Percpu hashtab traversal measurement study
summary
Study measures per-CPU BPF hash-table traversal cost using profiling and KStats on AMD Rome 256-core and Intel Skylake (~100 cores). With 40k-entry tables dumped every 5s traversal exceeds 0.5s; 70% of time is in map lookup batch and ~87% of that is cache misses during memcpy. On AMD prefetch 10 entries cuts per-entry latency from ~15 µs to ~5 µs (~66%); on Intel prefetch hurts. Switching to BPF iterator saves ~20%; per-queue maps are proposed.
AI-written summary · about
chapters (6)
- 0:00Introduction and motivation
- 3:11Profiling reveals cache misses
- 8:07Per-CPU data structure layout
- 10:12Prefetching experiment results
- 12:19Conclusion and alternatives
- 15:09Q&A discussion
related talks
46mbpftrace internals
12mRethinking File Mapping for Persistent Memory
59mBeyond pprof, Hardware Performance Counters
42mHow shit works: the CPU
21mUsing eBPF Off-CPU Sampling to See What Your DBs are Waiting For
40mTowards a Tool for Access-Affinity Based Structure Reordering in the Linux Kernel
21mPerformance Wins with BPF: Getting Started
16mBPF Based Telemetry, Metrics, and Accounting on Android
