Interference profiling. Precise observability. For Linux.
This repository is a name reservation. A public marker for the place where the
intputility will land once it is ready to be packaged and — if all goes well — submitted as an official Linux package (PPA on Launchpad → Debian → Ubuntu → other distributions).The code that will live here is not born in this directory. It is designed, compared, and hardened in intp-comparison, where seven parallel variants compete, side by side, to become the implementation that earns the
intpname onapt install.
To measure, precisely and cheaply, how one workload interferes with another when they share the same Linux hardware — CPU, last-level cache, memory bandwidth, block I/O, and network. In production. Without assembling a zoo of tools.
# the end goal
sudo apt install intp
intp -p $(pgrep -f my-application) -i 100msintp is the direct heir of the original interference profiler
published by Xavier & De Rose (SBAC-PAD 2022, PUCRS), rewritten to
survive modern kernels and contemporary clouds. In short windows it
collects seven signals that answer the question "who is stealing what
from whom?":
| Metric | What it measures | Source |
|---|---|---|
| netp | NIC physical utilization (TX + RX in bps) | driver counters |
| nets | Kernel network stack service time | softirq / NAPI |
| blk | Block device busy percentage | block layer |
| mbw | Memory bandwidth (LLC ↔ DRAM) | uncore IMC PMU |
| llcmr | LLC miss ratio | perf_event |
| llcocc | LLC occupancy in bytes | Intel RDT / resctrl |
| cpu | CPU utilization (user + sys) | scheduler / cgroup |
Each metric is a window; the set is the fingerprint of interference. The technical deep-dive lives in METRICS-DEEP-DIVE.
Every cloud — public or private — sells the illusion that vCPUs are independent. They are not. Co-located workloads fight over cache, over memory bandwidth, over NIC queues, over I/O queues. The symptom is latency that appears with no obvious cause; the cause is the noisy neighbour nobody can see.
Traditional tools (top, sar, iostat, perf) show what each
thing consumes. intp shows how that consumption translates into
observable interference — the signal that interference-aware
schedulers (such as
IADA)
need in order to decide.
intp is not a replacement for htop. It is the missing sensor
between "this metric is high" and "this is hurting the neighbour".
The sibling repository
intp-comparison is the
test bench. Seven implementations coexist there, each with a different
combination of instrumentation paradigm, cost, portability, and
fidelity:
| Variant | Paradigm | Kernel module | Min. kernel |
|---|---|---|---|
| v0 | Classic SystemTap (original paper) | yes | ≤ 6.6 |
| v0.1 | SystemTap, patched for 6.8+ | yes | 6.8+ |
| v1 | SystemTap native probes | yes | 6.8+ |
| v1.1 | SystemTap + userspace helper | yes | 6.8+ |
| v2 | Pure C: procfs / perf_event / resctrl | no | 4.10+ |
| v3 | eBPF / CO-RE with libbpf | no | 5.8+ |
| v3.1 | bpftrace + Python orchestrator | no | 5.8+ |
Only the kernel-module-free variants (v2 and v3) survive the
upstream packaging bar — official distributions do not accept
out-of-tree modules without a long-term maintenance path. When the
experimental comparison is done, the winning variant lands here and
becomes intp.
The research behind that decision is the Master's dissertation of André Sacilotto Santos, advised by Prof. Cesar De Rose (PPGCC/PUCRS), with defense expected in March 2027.
The journey from "GitHub placeholder" to sudo apt install intp has
well-defined stops. The full breakdown lives in
docs/ROADMAP.md; at a glance:
- Public name reservation — you are here.
- Variant selection —
intp-comparisonconverges on a single kernel-module-free implementation. - Debian packaging —
debian/directory,dh_make, manpages, optional systemd unit, reproducible install tests. - Personal PPA on Launchpad — first public channel for Ubuntu LTS (22.04, 24.04, 26.04).
- Debian sponsorship — Intent To Package (ITP),
mentors.debian.netreview, sponsored upload by a Debian Developer. - Ubuntu universe — automatic sync from Debian.
- Adjacent distributions — Fedora (COPR → official), Arch (AUR → official), Alpine, Nix.
Every step has its own technical gate (quality, tests, distro policy) and its own bureaucratic gate. None of them is trivial. That is why the "if all goes well" is not false modesty — it is honesty about a process that involves more than code.
Until the package is born, the place to watch the work happening is
intp-comparison —
home of the variants, the benchmarks, and the technical documents
(METRICS-DEEP-DIVE,
KERNEL-6.8-CHANGES,
VARIANT-COMPARISON).
Local documentation:
- docs/VISION.md — Why
intp, and why now. - docs/ROADMAP.md — The steps to the official package.
Until the defense happens, please cite the source repository
(intp-comparison) using the metadata in
CITATION.cff.
The dissertation reference will be added after the defense, expected
in March 2027.
Original work:
Xavier, M. G. and De Rose, C. A. F. (2022). IntP: Quantifying Cross-Application Interference via System-Level Instrumentation. SBAC-PAD 2022, Bordeaux, France, pp. 221–230. IEEE. PUCRS. PDF · IEEE
MIT.
The name is reserved. The code is on its way.
