Open E-Trace Infrastructure: Tooling for Evaluation, Analysis, and Research
2026-06-10 , Poster Island B

Tracing allows capturing timing sensitive behavior that would be obscured by other means of extraction that rely on code running on the HART itself, such as debugging hardware or instrumentation. The ratified specification “Efficient Trace for RISC-V” (E-Trace) defines a highly compressed yet relatively simple RISC-V-specific instruction and data tracing format. In combination with the program binary, E-Traces allow the complete reconstruction of a program’s execution path. We present an open source Rust library and CLI tool that allows both inspection of traces via an intuitive text interface and converting traces to other formats for analysis by downstream tools. While proprietary solutions for consuming E-Traces exist, this is, to our knowledge, the first open source tool suitable for use in production. Our tooling makes E-Trace-based augmentation of CI flows feasible. Based on traces collected during program execution, the CLI tool enables additional checks and metrics (e.g., coverage). Engineers may also use the tool to gain a better understanding of a failure. Use-case-specific checks may be implemented using the library. We also developed a QEMU plugin that enables experimenting with and evaluating such CI and development flows before any hardware investment, significantly lowering the entry barrier. The plugin serves as a configurable trace encoder, controlled solely by plugin arguments, that produces a trace file on the host.

Research Assistant at FZI Forschungszentrum Informatik