Add eBPF profiling capabilities to Sysprof
Add eBPF Profiling Capabilities to Sysprof
Currently, Sysprof works by recording stack traces from the Linux Perf subsystem using perf_event_open()
. It also can record various system statistics using data from /proc
such as CPU, memory, networking, and disk statistics.
eBPF provides an existing new direction for tooling of this nature by uploading small programs into the kernel to extract the data you want without the parsing overhead. That data can be delivered to an application like Sysprof for recording into the capture files.
This internship would involve creating the tooling within libsysprof
to setup new eBPF programs by compiling, linking, and uploading them into the kernel along with necessary components to get data from the kernel back to Sysprof.
This would then be used to port some collectors such as CPU or memory trackers to use eBPF instead of /proc
files.
Mentors
- Christian Hergert @chergert or
hergertme
on IRC/Matrix or@chergert
atgnome.org
Project length
Long ~350 hours
Description
- Sysprof
- src/libsysprof-capture/
- src/libsysprof/ primarily
Requirements
- Knowledge of C, preferably using GLib/GObject but that can be learned
- Minimal experience performance profiling software
- Minimal experience with the Linux kernel
- Learning how eBPF works and how to integrate that with the kernel can be learned on the job
Communication
chat, email, video chat