Trying to use uprobes and BPF on non-C userspace




Arnaldo Carvalho de Melo
acme@redhat.com

What is this about?



  • User space
  • uprobes
  • !C
  • Calling conventions

Who asked for this?



  • Red Hat Customer
  • Telco
  • Lots of software providers
  • Wanting more metrics

Native metrics



  • prometheus and others
  • Existing metrics
  • But I need some more!
  • Wait for next version?

uprobes



  • Collect some more metrics
  • More flexibility on using existing ones
  • Meta metrics
  • Next version can come with these new ones

uprobes 2



  • Binaries have lots of info
  • DWARF
  • Coding conventions
  • Tooling to query this

DWARF



  • pahole
  • types
  • functions
  • perf

But...



  • What about golang, Rust, zig?
  • Compiled
  • Have DWARF
  • Calling conventions