Skip to content

Commit 01bfb64

Browse files
committed
setup: drop the PAC perf patch
Earlier PACT versions used a patched perf to feed sampling data over shared memory. This version samples PEBS and CHA/uncore counters directly through perf_event_open and no longer needs it, so remove setup/perf/ and rescope the README, modeling scripts, LICENSE, NOTICE, and .gitignore references to it.
1 parent a08fbd0 commit 01bfb64

8 files changed

Lines changed: 17 additions & 169 deletions

File tree

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ src/pact
99
*.txt
1010
run/results/
1111

12-
# perf build tree produced by setup/perf/install-perf.sh
13-
setup/perf/linux-5.15-pact/
14-
1512
# Editor / OS cruft
1613
.DS_Store
1714
*.swp

LICENSE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ licenses; see the NOTICE file for the full list. In particular:
3131
original licenses. See NOTICE for provenance and license of each.
3232

3333
* Linux kernel patches under baselines/ and setup/ (the kernel modules under
34-
setup/kernel/ and the perf patch under setup/perf/) are derivative works of
35-
the Linux kernel and are therefore governed by the GNU General Public
36-
License, version 2 (GPL-2.0), the license of the kernel they patch.
34+
setup/kernel/) are derivative works of the Linux kernel and are therefore
35+
governed by the GNU General Public License, version 2 (GPL-2.0), the license
36+
of the kernel they patch.
3737

3838
* Documentation, figures, and data files are additionally available under
3939
the Creative Commons Attribution 4.0 International License (CC BY 4.0).

NOTICE

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ License: Public Domain or MIT-0 (No Attribution), at your option
2121
------------------------------------------------------------------------------
2222

2323
Linux kernel patches and out-of-tree kernel modules under baselines/ and
24-
setup/ (the kernel modules under setup/kernel/ and the perf patch under
25-
setup/perf/) are derivative works of the Linux kernel and are licensed under
26-
GPL-2.0, matching the kernel they modify. The upstream tiering systems they
27-
reproduce (TPP, Memtis, Colloid, NBT, Nomad, Soar/Alto) are the work of their
28-
respective authors; see each subdirectory's README for provenance.
24+
setup/ (the kernel modules under setup/kernel/) are derivative works of the
25+
Linux kernel and are licensed under GPL-2.0, matching the kernel they modify.
26+
The upstream tiering systems they reproduce (TPP, Memtis, Colloid, NBT, Nomad,
27+
Soar/Alto) are the work of their respective authors; see each subdirectory's
28+
README for provenance.

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ PACT/
6363
├── src/ # the PACT runtime (C source + Makefile)
6464
├── setup/ # host bring-up - do this first
6565
│ ├── kernel/ # build/boot Linux 6.3 + the tierinit & kswapdrst modules
66-
│ ├── env/ # uncore-freq pinning, CXL/NUMA layout, governor, THP/KSM off
67-
│ └── perf/ # build the PAC-patched perf used for PAC sampling
66+
│ └── env/ # uncore-freq pinning, CXL/NUMA layout, governor, THP/KSM off
6867
├── run/ # run PACT on a workload (run-pact.sh, workloads.sh)
6968
├── baselines/ # SOTA systems we compare against (TPP, NBT, Nomad, Colloid, Memtis, Soar/Alto)
7069
└── modeling/ # PAC modeling scripts (Figure 3)
@@ -94,8 +93,9 @@ The artifact targets the same class of machine used in the paper:
9493
[`setup/kernel/`](setup/kernel/)). Baselines use their own kernel versions -
9594
see [`baselines/`](baselines/).
9695
- **Software:** `gcc`, `make`, `libnuma`, `numactl`, `vmtouch`, `gnuplot`
97-
(plotting), and a patched `perf` built by
98-
[`setup/perf/install-perf.sh`](setup/perf/install-perf.sh).
96+
(plotting), and `perf` (the PAC modeling scripts in [`modeling/`](modeling/)
97+
read counters via stock `perf stat`). The PACT runtime samples the PMU
98+
directly through `perf_event_open` and needs no external `perf` binary.
9999
- **Privileges:** kernel install, module loading, and the environment-prep
100100
scripts require root.
101101

@@ -215,7 +215,8 @@ constraints of the current implementation are worth knowing up front:
215215
CXL-like slow tier on a 2-NUMA-node host. More than two tiers, multi-socket
216216
fan-out, and multi-node setups are out of scope for this release.
217217
- **Hardware sampling required.** PAC profiling depends on PEBS plus CHA/uncore
218-
occupancy counters and a PAC-patched `perf`, and the runtime must run as root.
218+
occupancy counters (read directly via `perf_event_open`), and the runtime must
219+
run as root.
219220
- **Attaches to a running, pre-pinned workload.** PACT manages an existing
220221
process by PID; it does not launch or CPU-pin workloads itself (the `run/`
221222
scripts handle that around it).

modeling/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ no need to add `numactl` inside the command.
159159

160160
- `numactl` - `apt install numactl`
161161
- `vmtouch` - `apt install vmtouch` (GAPBS graph preloading)
162-
- `perf` - patched perf built by `setup/perf/install-perf.sh`; override its location with `PERF=/path/to/perf ./run-models.sh` (defaults to `perf` in `$PATH`)
162+
- `perf` - stock `perf` from `linux-tools`; the four counters are read from `perf stat` text output. Point at a specific build with `PERF=/path/to/perf ./run-models.sh` (defaults to `perf` in `$PATH`)
163163
- `gnuplot` - required only for plotting, not for data collection
164164
- Workload binaries installed and paths configured in `run-models.sh`. The
165165
GAPBS runs use the same `kron.sg` graph as `run/` - generate the paper's

modeling/run-models.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ LOCAL_NODE=0 # Tier 1: local DRAM (~90ns)
1515
NUMA_NODE=1 # Tier 2: remote NUMA (~140ns)
1616
CXL_NODE=2 # Tier 3: CXL (~190ns)
1717

18-
# Patched perf binary built by setup/perf/install-perf.sh.
19-
# Override with: PERF=/path/to/perf ./run-models.sh (default: perf in PATH)
18+
# Stock perf is enough — the four counters below are read from perf stat text
19+
# output. Override with: PERF=/path/to/perf ./run-models.sh (default: perf in PATH)
2020
PERF="${PERF:-perf}"
2121

2222
# Four perf counters; all collected in a single perf stat pass

setup/perf/install-perf.sh

Lines changed: 0 additions & 48 deletions
This file was deleted.

setup/perf/pac_perf.patch

Lines changed: 0 additions & 102 deletions
This file was deleted.

0 commit comments

Comments
 (0)