Analysis updated 2026-05-18
Debug a Linux performance problem by watching all 11 observability layers at once to see where a symptom originates.
Monitor kernel scheduler behavior, lock contention, and memory pressure simultaneously on a production Linux server.
Study how eBPF programs and x86-64 assembly interact with the Linux kernel as a learning reference.
| kritagya123611/ascent | alexzorzi/inferno-android | ffmpegkit-maintained/ffmpeg | |
|---|---|---|---|
| Stars | 8 | 10 | 6 |
| Language | C | C | C |
| Setup difficulty | hard | hard | easy |
| Complexity | 5/5 | 5/5 | 2/5 |
| Audience | ops devops | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Linux 5.x+, root access for eBPF, NASM assembler, and clang with BPF support on an x86-64 machine.
ASCENT is a Linux system monitoring tool that shows you what is happening inside a running machine at eleven different levels of detail simultaneously, all in a single terminal dashboard. The idea is that most performance problems have a visible symptom at the surface (the CPU looks busy, something feels slow) but the actual cause is hidden several layers deeper. Standard tools only look at one layer at a time. ASCENT keeps all layers visible at once so you can watch a problem cascade from the high-level symptom down to its root cause. The eleven levels are named after physics scale units and range from system-wide resource usage at the top, through process activity, system calls, kernel code paths, CPU hardware counters, scheduler behavior, memory management, and lock contention, down to interrupt causality chains at the bottom. A final layer is reserved for a planned AI-based correlation feature. Nine of the eleven layers are currently working, two (microarchitecture-level CPU data and hypervisor metrics) are scaffolded but not yet collecting data. The architecture splits into two parts. A sensor process written in C runs as root and collects data from Linux's procfs filesystem and from eBPF programs that hook into the kernel at various points. These programs watch things like which system calls are being made, how long they take, which scheduler decisions are happening, and which memory pages are being moved. Hardware performance counters are read directly from the CPU. All collected data is written as fixed-size events into a named pipe. A separate display process reads from that pipe. This display program is written entirely in x86-64 assembly language with no C library dependencies at all. It formats the data and draws the terminal interface using direct Linux system calls for all input and output. The project requires Linux 5.x or later, root access for eBPF programs, and an Intel or AMD x86-64 processor. Build tools needed are NASM (for the assembler code) and clang with BPF support.
Linux performance monitoring dashboard that shows 11 simultaneous levels of system observability, from CPU usage down to kernel lock contention, with a terminal UI written in pure x86-64 assembly.
Mainly C. The stack also includes C, x86-64 Assembly, eBPF.
GPL v2 license: you can use and modify it freely, but if you distribute modified versions you must share the source code under the same license.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.