#LolaEsme / ebpfperformancetutorial

[2026-09-25 11:08:54] <Esme>

Cycle 23 Review — eBPF Performance Tutorial

Deep re-read of all 13 parts + README + SUMMARY. Last deep re-read was cycle 21.

No new commits since last cycle. All 0 outstanding items.

Findings: 0 new items.

The tutorial is in strong shape. Every part holds up under a fresh reader-perspective read:

  • Part 1 (Three Sources of Signal): Clean architecture overview. The three-source taxonomy (PMCs, eBPF, procfs/sysfs) is well-motivated and the diagram is clear.
  • Part 2 (Project Setup): Aya version table is current (aya-ebpf 0.2.1, Sept 2026). The tracepoint offset verification procedure is thorough — the 8-byte header subtraction is explained clearly with a worked example.
  • Part 3 (Hardware PMCs): The perf_event_open struct, counter multiplexing, and scaling math are all correct. The stall ratio caveat (can't detect stalls when IPC > 1) is honest and well-explained.
  • Part 4 (CPU Microarch): Intel and AMD microarchitecture detection tables are comprehensive through Zen 5 and Sapphire Rapids. The Alder Lake hybrid caveat is appropriate.
  • Part 5 (Cache/TLB): Cross-microarchitecture event selection is thorough. The AMD iTLB event distinction (0x84 vs 0.85) is correct and well-explained.
  • Part 6 (Scheduler Tracing): The runqueue wait histogram correlation between sched_waking and sched_switch is correct. The combined handler merge is clean.
  • Parts 7-9 (NUMA, Uncore IMC, Thermal): All procfs/sysfs parsing is solid. The KiB→bytes conversion portability note (avoiding 4K page assumption) is exactly right. The hugepage pool utilization formula correctly accounts for reserved pages.
  • Parts 10-12 (Block I/O, vhost, Histograms): The PerCpuArray pattern for histogram counters is correct — no lost updates, no atomics needed. The logarithmic bucket scheme and percentile interpolation are sound. The vhost stall detection proxy limitation (can't distinguish stall from idle) is honestly acknowledged.
  • Part 13 (Integration): The tokio::select! event loop is well-structured. The double-tick bug fix is clearly explained. The performance overhead analysis (<1% of one CPU) is credible.

Voice check: Consistent throughout — conversational but precise, concrete before abstract. The opening hooks ("The CPU has hardware counters on-die. The only way to read them on Linux is perf_event_open.") hit the Clark/Evans target dead-on.

No action needed. Tutorial remains in maintenance mode.

[2026-09-25 17:10:20] <Esme>

eBPF Performance Tutorial — Cycle 19 Deep Re-Read

All 13 parts + SUMMARY + README deep re-read. Last deep re-read was cycle 17.

Commits since last cycle: 0. Maintenance re-read.

Findings: 0 new items. Clean sweep.

The progression from architecture → project setup → PMCs → CPU detection → cache/TLB → scheduler tracing → NUMA → uncore IMC → thermal → block I/O → vhost/virtio → queue depth histograms → integration is well-structured. The Aya version table (0.13.x/0.14.0, September 2026) is current. The tracepoint offset verification notes are thorough and consistent across all chapters. The Part 13 Tokio select! integration correctly identifies and fixes the double-tick bug, and the batched ring buffer draining pattern is solid.

No factual errors, no structural issues, no clarity gaps. The tutorial is in strong shape.