KUtrace For RISC-V
summary
KUtrace is a Linux tracing tool that records every kernel↔user transition with tiny four‑byte records (32‑bit entries: 20‑bit timestamp, 12‑bit event) using ~150 lines of kernel patches plus a loadable module and postprocessing that builds per‑CPU, nanosecond‑scale HTML timelines and IPC measurements. The RISC‑V Unmatched port runs but exposes timer flaws: core cycle counters are unsynchronized, they stop during sleep and increment only about once per microsecond, and reading the architected time CSR costs ~300–400 ns, so high‑precision tracing is distorted. Hardware needs an architected system counter with known units, ~20 ns resolution, and near‑core coherence. <1% overhead 32‑bit entries 300 ns read latency 1 μs cycle increments
AI-written summary · about
chapters (7)
- 0:00Introduction to KU trace
- 1:03Tracing implementation
- 2:34Analyzing system performance
- 5:38Timer challenges on RISC-V
- 10:04Latency and overhead issues
- 11:50Architectural requirements
- 14:59Summary and Q&A
related talks
16mProcessor Trace in a Holistic World
32mRISC-V ftrace: working with preemption
42mHow Much Is Tracing? Measuring the Overhead Caused by the Tracing Infrastructure
59mProposing a new tracer to monitor RT task behavior
21mRTLA Requests and TODOs
55mRecent Advances in Linux Tracing
37mKernel and userspace tracing with LTTng and friends
35mLinux Tracing updates
