User:Sam/DTrace notes
From Gentoo Wiki
< User:Sam
Jump to:navigation
Jump to:search
Set of notes by & for sam to improve DTrace integration.
This work will benefit both DTrace but also other tracing tools like SystemTap and bpftrace.
DTrace itself
- Possibly get gentoo-kernel default config changed (-> gentoo-kernel-bin will Just Work too)
- Useful especially because our users often have interesting setups they want to debug, or need help from us to debug
- Figure out remaining test failures sam had on amd64/glibc
- Report odd build issue w/ -g
Userland
Broader issues
- Figuring out USE name (tracing, systemtap, dtrace)? usdt?
- Find packages with support that isn't wired up
- Write some exemplar meson+autoconf snippets (maybe an autoconf-archive macro?)
- Meson has some systemtap support, what for? does it need to learn dtrace?
- Resolve conflict with dev-debug/systemtap for bug #938302
- Relationship between sysprof vs dtrace/stap? Does it have any probe macro in common?
- How many packages use stap-specific APIs?
State of packages
These packages have systemtap wired up.
Package | Works | Tested | Notes |
---|---|---|---|
app-emulation/libguestfs | ?? | No | Dropped upstream in newer releases: https://github.com/libguestfs/libguestfs/commit/b018b35bd478e2b2d5a4a3957ac0a9e7acfeb34b. |
app-emulation/libvirt | No | No | Almost has DTrace support in theory but unconditionally calls a dtrace2systemtap script |
app-emulation/qemu | ?? | No | |
app-emulation/virtualbox | ?? | No | |
app-emulation/virtualbox-kvm | ?? | No | |
dev-db/mariadb | ?? | No | |
dev-db/mysql (5.x only) | ?? | No | Removed upstream in >=8.0. |
dev-java/openjdk | ?? | No | |
dev-lang/python | Partial | No |
Probes need updating for >=3.11. Links: |
dev-lang/ruby | ?? | No | |
dev-libs/glib | ?? | No | |
dev-util/perf | ?? | No | |
gui-libs/neatvnc | ?? | No | |
gui-apps/waypipe | ?? | No | |
gui-apps/wayvnc | ?? | No | |
net-libs/nodejs | ?? | No | |
net-p2p/bitcoin-core | ?? | No | |
sys-auth/sssd | ?? | No | |
sys-devel/gcc | ?? | No | |
sys-libs/glibc | ?? | No |
Other packages to be wired up
These packages don't have any sort of tracing wired up but upstream support exists (for dtrace or stap).
- app-arch/gzip has some sdt ref
- app-editors/neovim
- app-office/libreoffice?
- dev-db/postgresql
- dev-lang/erlang
- dev-lang/mono
- dev-lang/ghc
- dev-lang/perl
- dev-lang/php
- dev-lang/tcl
- dev-libs/gjs has a TODO in the ebuild
- dev-util/pahole?
- gnome-extra/cjs
- net-dns/bind
- net-libs/grpc?
- net-misc/frr
- net-misc/lldpd
- net-misc/memcached
- net-misc/openvswitch
- net-nds/389-ds-base?
- net-vpn/tor has src/lib/trace/events.h
- sys-apps/systemd has some sdt ref
- sys-auth/elogind has some sdt ref
- sys-cluster/ceph?
- sys-fs/zfs? (has FreeBSD support, but worth a quick look)
- sys-libs/db?
- sci-libs/caffe2? (folly?)
- sys-libs/zlib-ng has some sdt ref
- www-client/firefox (and friends)
- www-servers/apache has some sdt ref
- x11-base/xorg-server and x11-base/xwayland (https://www.x.org/releases/X11R7.6/doc/xorg-server/Xserver-DTrace.html but the meson option seems to exist still)
Upstream work needed
These packages don't have support but there's pending work on it, or need help restoring it.
- dev-libs/libuv lost them but willing to reintroduce (https://github.com/libuv/libuv/issues/2209)
Supports other solutions
These support e.g. lttng and might be open to extra probes.
- dev-libs/pocl
- dev-qt/qtdeclarative and friends
- net-fs/samba
- net-libs/libtirpc
- libcamera
- sys-block/libfabric