libside: Giving the preprocessor a break with a tracer-agnostic instrumentation API
summary
libside provides a new ABI/API that lets kernel and user-space tracers attach to static and dynamic user-space instrumentation, exposing a type system and macros that describe events as data and pass arguments as an iovec‑like stack array. Instrumentation is conditionally enabled when at least one tracer registers, tracer callbacks are synchronized with an RCU in user space, and planned integration generates bytecode for lttng-ust to interpret instead of per-event compiled probes. Missing pieces: stable extensibility rules, runtime/static validation, and state-dump hooks.
AI-written summary · about
chapters (10)
- 0:00Introduction to libside
- 1:26Motivation for libside
- 3:33Trace points limitations
- 3:54Introducing libside
- 6:45Example of libside usage
- 7:49Future work on extensibility
- 9:15Runtime validation challenges
- 10:20State dump and integration
- 12:45User event integration plans
- 15:58Q&A session
related talks
26mKernel Runtime Security Instrumentation
35mLinux Tracing updates
24mLow-overhead memory allocation tracking
14mIchnaea: A Framework for Precise Tracking of Memory Objects
32mRISC-V ftrace: working with preemption
30mDTrace at 21: Reflections on Fully-grown Software
49mModern strace
46mUsing LLDB, Instruments, and Xcode to understand a codebase
