diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-08 19:43:33 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-08 19:43:33 +0300 |
| commit | f86699a94bdde7d973ba5d6fa3e7ca4ab2f234fb (patch) | |
| tree | c2e11bfa4fdac965623a8058716c514fce507eba /Magefile.go | |
| parent | c41a38ef55bb80681a6cc0b2161f8e84bfabcf17 (diff) | |
add duration metric, tolerate missing tracepoints, ship el8 build
- Bubbles, treemap, icicle, and the live flamegraph 'b' cycle now include
syscall duration (sum) as a third metric alongside events and bytes.
Statsengine snapshots expose TotalLatencyNs to support this.
- AttachAll takes an optional warn callback. Production passes one so older
kernels that lack newer tracepoints log a warning and keep going instead
of aborting startup.
- Dockerfile.el8 + scripts/build-with-docker-el8.sh + mage buildDockerEl8
produce ior.el8, a static binary built against Rocky Linux 8 glibc for
RHEL/Rocky/Alma 8 hosts.
- README.md documents installing mage and the new el8 target.
Diffstat (limited to 'Magefile.go')
| -rw-r--r-- | Magefile.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Magefile.go b/Magefile.go index dcde50e..540515c 100644 --- a/Magefile.go +++ b/Magefile.go @@ -41,6 +41,7 @@ const ( tracepointsGoPath = "internal/tracepoints/generated_tracepoints.go" typesGoPath = "internal/types/generated_types.go" dockerBuildScript = "scripts/build-with-docker.sh" + dockerBuildScriptEl8 = "scripts/build-with-docker-el8.sh" typesHeaderPath = "internal/c/types.h" VMLINUXPath = "internal/c/vmlinux.h" benchProfilesDir = "bench-profiles" @@ -82,6 +83,15 @@ func BuildDocker() error { return sh.RunV("bash", dockerBuildScript) } +// BuildDockerEl8 builds the ior binary inside a Rocky Linux 8 Docker container +// and writes it as ior.el8 in the repo root, alongside the el9 ior binary +// produced by BuildDocker. Use this when targeting hosts with the older glibc +// shipped on RHEL/Rocky/Alma 8. The container image is built on the first +// run (~15-20 min) and reused thereafter. +func BuildDockerEl8() error { + return sh.RunV("bash", dockerBuildScriptEl8) +} + // BpfBuild builds the embedded BPF object used by the Go binary. func BpfBuild() error { if err := ensureVMLINUX(); err != nil { |
