summaryrefslogtreecommitdiff
path: root/internal/c
AgeCommit message (Collapse)Author
2026-05-06add Dockerfile and Rocky Linux 9 build docsPaul Buetow
Introduces a Docker-based build path so ior can be compiled on any Linux host without a native Rocky 9 toolchain setup: - Dockerfile: Rocky 9 minimal image with Go (version from ARG, default from go.mod), static libelf/libzstd built from source, libbpfgo at v0.9.2-libbpf-1.5.1, and mage; CMD runs mage generate + mage all against the repo root mounted as a volume. - scripts/build-with-docker.sh: reads GO_VERSION from go.mod, passes it as --build-arg to docker build, mounts tracefs and BTF into the container, writes the binary to the repo root. - Magefile.go: adds BuildDocker target that wraps the script. - README.md: simplified to the two build paths (Docker + native) with links to docs/; removed GOTOOLCHAIN=auto throughout. - docs/build-rocky-linux-9.md: full manual Rocky 9 steps, libbpfgo toolchain setup/rollback, compile-once-run-everywhere explanation, and timing semantics. - docs/tui-reference.md: complete TUI hotkey reference, recording mode details, and the .ior.zst vs Parquet trade-off table. - AGENTS.md: removed GOTOOLCHAIN=auto from all build commands. - internal/c/generated_tracepoints.c: regenerated against the host kernel. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-02fix BPF tracepoint context type for RHEL 9 stock kernelPaul Buetow
The BPF handler generator emitted struct trace_event_raw_sys_enter/ trace_event_raw_sys_exit (the BTF-blessed aliases). RHEL 9 carries an rt-tree backport that adds preempt_lazy_count to struct trace_entry, which widens those aliases by 8 bytes and shifts args/ret. The actual tracepoint context the kernel hands the program is still syscall_trace_enter / syscall_trace_exit, where the offsets did not move. Programs typed against the wider alias read past max_ctx_offset and the verifier rejects the attach with EACCES. Switching the generator to emit syscall_trace_enter/exit lines up with the real context on RHEL 9 (and is identical on every other distro, since the two structs only diverge there). Same fix bcc shipped in iovisor/bcc#4920 and inspektor-gadget did in inspektor-gadget#2546. Field accesses (ctx->args[N], ctx->ret) are unchanged. Verified end-to-end on Rocky Linux 9.7 stock 5.14.0-611.5.1.el9_7 (no kernel-ml needed) and Fedora 6.19. README rewritten accordingly: drops the elrepo kernel-ml step and the trailing 'permission denied' troubleshooting paragraph; adds a historical note explaining why the old workaround existed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-03-18cleanupPaul Buetow
2026-02-25Fix initial TUI sizing and align two-row sparklinesPaul Buetow
2026-02-24flamegraph: improve interactive zoom and serve svg over embedded httpPaul Buetow
2026-02-23Add baseline pidfd_getfd tracepoint supportPaul Buetow
2026-02-23Add getcwd tracing support and stabilize comm propagation testPaul Buetow
2026-02-23Fix integration trace expectations and fd/open event handlingPaul Buetow
2026-02-22Add copy_file_range support and tracepoint attach testsPaul Buetow
2026-02-22Implement mmap/msync syscall support with unit and integration coveragePaul Buetow
2026-02-22Implement sync_file_range coverage and document mage world bootstrapPaul Buetow
2026-02-21Enable name_to_handle_at and io_uring fd attributionPaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019c7fec-eec9-706a-8338-3ce674802680 Co-authored-by: Amp <amp@ampcode.com>
2026-02-21Migrate make targets to magePaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019c7f4e-cc5f-76f1-aaf0-dd7cbaabbb18 Co-authored-by: Amp <amp@ampcode.com>
2026-02-21rewrite from Raku to Golang initialPaul Buetow
2025-10-09fix unit tests, initial hard exclude of not working yet syscallsPaul Buetow
2025-10-09initial handle by open_at syscallsPaul Buetow
2025-10-08add classificationsPaul Buetow
2025-10-08classify more tracepointsPaul Buetow
2025-07-14more on classificationPaul Buetow
2025-07-12initial classificationPaul Buetow
2025-04-11add Bytes()Paul Buetow
2025-04-11add tp trackerPaul Buetow
2025-04-11add dup3 syscallPaul Buetow
2025-04-11abort tracepoint generation when there is a diff due to verificationPaul Buetow
2025-03-30add syslogPaul Buetow
2025-03-28initial iordata implementationPaul Buetow
2025-03-28a bunch of new syscallsPaul Buetow
2025-03-28creat opens a new filePaul Buetow
2025-03-28sorting the tracepointsPaul Buetow
2025-03-28add readv family of I/O syscallsPaul Buetow
2025-03-27implement dup2Paul Buetow
2025-03-27implemented dupPaul Buetow
2025-03-26sort the inputsPaul Buetow
2025-03-26reformat outputPaul Buetow
2025-03-26implement syncPaul Buetow
2025-03-26initial io_ async tracepointsPaul Buetow
2025-03-26some tracepoints were not opening new fdsPaul Buetow
2025-03-25more on thisPaul Buetow
2025-03-25more in thisPaul Buetow
2025-03-24more on thisPaul Buetow
2025-03-24ignore ior process itselfPaul Buetow
2025-03-24test target worksPaul Buetow
2025-03-22initial golang impl of fcntlPaul Buetow
2025-03-22fix fcntlPaul Buetow
2025-03-22generating fcntl boilerplatePaul Buetow
2025-03-19fix pathname tracingPaul Buetow
2025-03-17add commentPaul Buetow
2025-03-16correctly trace flags for open and openat syscallsPaul Buetow
2025-03-16commentsPaul Buetow
2025-03-16refactorPaul Buetow