diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-07 09:47:05 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-07 09:47:05 +0300 |
| commit | ed04ccd8e2297458ec97381806a05dea13090f0f (patch) | |
| tree | 99b707441b6990686bbd2773c177bdc3b8bf3313 /README.md | |
| parent | ac05beabdbaa90597ed0cfcea781d5ab44d123ba (diff) | |
update docs and ascii banner
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -2,23 +2,23 @@ <img src=assets/ior-small.png /> -I/O Riot NG is an experiments with BPF. This program traces for synchronous I/O syscalls and then analyses the time taken for each of those syscalls. This is especially useful for drawing FlameGraphs like these: +I/O Riot NG is an experiment with BPF. It traces synchronous I/O syscalls and analyses how long each one took. Useful for drawing FlameGraphs like these: <img src=assets/screenshot-flames.png /> -Maybe this is a spiritual successor of one of my previous projects, I/O Riot https://codeberg.org/snonux/ioriot, the latter was based on SystemTap and C. The NG is based on Go, C and BPF (via libbpfgo). +A spiritual successor to one of my previous projects, I/O Riot (https://codeberg.org/snonux/ioriot), which was based on SystemTap and C. The NG is based on Go, C, and BPF (via libbpfgo). -This works only on Linux! +Linux only. ## Demo A short guided tour with animated GIFs of every major surface lives in [`docs/tutorial/tutorial.md`](./docs/tutorial/tutorial.md). Two teasers: -**Startup — the PID picker:** `sudo ./ior` opens a searchable process list. Navigate with arrow keys, filter by typing, and press `Enter` to start tracing. The dashboard appears immediately after. +**Startup, the PID picker:** `sudo ./ior` opens a searchable process list. Navigate with arrow keys, filter by typing, press `Enter` to start tracing. The dashboard appears right after. <img src=docs/tutorial/assets/01-launch.gif width=720 alt="Cold start: PID picker, then the dashboard appears" /> -**Live flamegraph tab:** Once tracing, tab `1` shows a live flamegraph that rebuilds in real time as I/O events arrive. Bars grow and shift with the workload — this is the default landing tab. +**Live flamegraph tab:** Once tracing, tab `1` shows a live flamegraph that rebuilds in real time as I/O events arrive. Bars grow and shift with the workload. This is the default landing tab. <img src=docs/tutorial/assets/13-tui-flamegraph.gif width=720 alt="Live in-TUI flamegraph rebuilding from real workload" /> @@ -33,7 +33,7 @@ The demo is fully reproducible: `mage installDemoTools` once, then `sudo -v && m ## Build Builds a fully static `ior` binary inside a Rocky Linux 9 container and writes -it to the repo root — no local Go, clang, or libbpfgo setup required: +it to the repo root. No local Go, clang, or libbpfgo setup required: ```shell mage buildDocker @@ -55,7 +55,7 @@ For contributors who need a native build (Fedora / Rocky Linux 9), see Build on one machine, then `scp ior other-host:/usr/local/bin/` and run it anywhere. The binary is fully statically linked and uses libbpf CO-RE (Compile-Once, Run-Everywhere) to adapt field offsets to the target kernel's -BTF at load time — no recompile per host or kernel version needed. +BTF at load time. No recompile per host or kernel version needed. See [docs/build-rocky-linux-9.md](./docs/build-rocky-linux-9.md) for the full explanation. |
