diff options
author | 2023-03-07 12:04:40 +0000 | |
---|---|---|
committer | 2023-03-07 15:35:53 -0800 | |
commit | 720d93b60aec22abcb2a5b6d8de472f3a50694b1 (patch) | |
tree | 0d9224322daf284d462b8043b8ac069a97c83aed /scripts/generate_rust_analyzer.py | |
parent | libbpf: Refactor parse_usdt_arg() to re-use code (diff) | |
download | linux-rng-720d93b60aec22abcb2a5b6d8de472f3a50694b1.tar.xz linux-rng-720d93b60aec22abcb2a5b6d8de472f3a50694b1.zip |
libbpf: USDT arm arg parsing support
Parsing of USDT arguments is architecture-specific; on arm it is
relatively easy since registers used are r[0-10], fp, ip, sp, lr,
pc. Format is slightly different compared to aarch64; forms are
- "size @ [ reg, #offset ]" for dereferences, for example
"-8 @ [ sp, #76 ]" ; " -4 @ [ sp ]"
- "size @ reg" for register values; for example
"-4@r0"
- "size @ #value" for raw values; for example
"-8@#1"
Add support for parsing USDT arguments for ARM architecture.
To test the above changes QEMU's virt[1] board with cortex-a15
CPU was used. libbpf-bootstrap's usdt example[2] was modified to attach
to a test program with DTRACE_PROBE1/2/3/4... probes to test different
combinations.
[1] https://www.qemu.org/docs/master/system/arm/virt.html
[2] https://github.com/libbpf/libbpf-bootstrap/blob/master/examples/c/usdt.bpf.c
Signed-off-by: Puranjay Mohan <puranjay12@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20230307120440.25941-3-puranjay12@gmail.com
Diffstat (limited to 'scripts/generate_rust_analyzer.py')
0 files changed, 0 insertions, 0 deletions