Debug and Profiling - Status of Opensource Projects
This page aims to provide a overview of riscv support statuses in various debug & profiling related opensource projects. We can use below table for sync up, and get aligned understanding and planning for future work.
Projects classification | Tools | Support status in upstream (2024 June) | Features to be added/enhanced | 2024 2H |
Debugger | gdb | basic support OK. no watchpoint, the gdb simulator supports just a few exts (GC) | RVV reg dump? and dump of FP16/BF16 HW breakpoint and watchpoint | RVV reg dump, and dump of FP16/BF16. HW breakpoint and watchpoint |
lldb | basic support OK, how about advanced features? | ? | ? | |
OpenOCD | RFP WIP | |||
Perf Monitor | perf | yes, with SSCOFPMF suppoted; cycle/insnret CSR mmaped to U; based on SBI PMU | Smcdeleg (RFC sent), CTR (not ratified yet) | |
gprof-ng | no, only support x86 and aarch64 | priority? | ||
simpleperf | yes for most common events | raw events support, depending on Smcdeleg and Json config | ||
Dynamic Binary Instrumentation | valgrind | Basic RV64 GC support in Petr's tree, not yet merged in main tree | First, help to reivew/fix issues to get GC merged. Then, RVV and other extensions | help fix and improve the RV64 GC port |
dynamoRIO | Basic GC support merged. | RVV instrumentation clients | RVV instrumentation clients | |
Compile-time Instrumentation | ASAN | yes | optimization with MTE (spec at early stage) | |
MSAN | ? | |||
TSAN | ? | |||
PGO | yes | |||
SW Tracing | bpftrace | yes for most events tracing, except for HW watchpoint | HW watchpoint? Dependency on debug spec? | |
bcc | yes | |||
bpf JIT | yes, with C/Zba/Zbb based optimization | more JIT optimization (e.g. Zacas, RV32, etc) | ||
ftrace | yes | |||
SystemTAP | ? | |||
Perf CI on opensource projects | LKP, etc | just build check, no function/perf test and profiling | enable function/perf CI in LKP for riscv | enable function/perf CI |
HW tracing | something like Tarmac | no project exists yet |