summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-07 09:47:05 +0300
committerPaul Buetow <paul@buetow.org>2026-05-07 09:47:05 +0300
commited04ccd8e2297458ec97381806a05dea13090f0f (patch)
tree99b707441b6990686bbd2773c177bdc3b8bf3313 /README.md
parentac05beabdbaa90597ed0cfcea781d5ab44d123ba (diff)
update docs and ascii banner
Diffstat (limited to 'README.md')
-rw-r--r--README.md14
1 files changed, 7 insertions, 7 deletions
diff --git a/README.md b/README.md
index f47f405..532d581 100644
--- a/README.md
+++ b/README.md
@@ -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.