ply: add dynamic tracing package using BPF #15527
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
ply is a light-weight dynamic tracer for Linux that leverages the kernel's BPF VM in concert with kprobes/tracepoints to attach probes to arbitrary points in the kernel.
Most tracers that generate BPF bytecode are based on the LLVM-based BCC toolchain; ply on the other hand has no external dependencies outside libc, making it suitable for use on constrained embedded systems.
Currently ply supports x86_64, aarch64, arm, riscv64, riscv32, powerpc, mips(el), and mips64(el) architectures.
Further documentation, examples and implementation details may be found at: https://github.com/iovisor/ply.
Testing: Repeatedly build and run-tested in the past against
openwrt/master
, usingqemu/x86_64
,qemu/armvirt[32|64]
,malta/mips32be
, and most recently withmalta/mips64el
, with kernels ranging from 5.15 to 6.6.CC: @zhaojh329 This is the package I've been using for a few years. Comments or improvements welcome!
This is intended to complement
packages/devel/perf
in the main repo.