From 13da8e986a6e95a087eed765c9fd34c1040afd1a Mon Sep 17 00:00:00 2001 From: smill Date: Tue, 29 Sep 2026 21:21:06 -0400 Subject: [PATCH] Remove Phoronix Test Suite Drops the optional RUN_PTS group, the pts-core phase, and every Phoronix reference from the scripts and docs. The suite is now just PassMark, the bundled llama.cpp, the app workloads, and the quick tools. --- README.md | 24 ++++++------------------ benchmarks.txt | 32 +++++++++----------------------- capture-specs.sh | 2 +- power-report.py | 2 +- run-benchmarks.sh | 19 +++++-------------- 5 files changed, 22 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index 1b023df..fc7593b 100644 --- a/README.md +++ b/README.md @@ -137,9 +137,9 @@ tools/llama/bin/llama-bench \ Override with `LLAMA_MODEL=` (any GGUF), or `LLAMA_NGL=` to offload to GPU. ### App workloads — LibreOffice / GEGL / Inkscape / GIMP (optional) -Stock distro applications are driven over a fixed sample corpus. **No Phoronix -Test Suite is involved** — each is the app's own CLI, timed, named after the -benchmark. Install the ones you want to measure: +Stock distro applications are driven over a fixed sample corpus. Each is the +app's own CLI, timed, named after the benchmark. Install the ones you want to +measure: ```bash sudo dnf install -y libreoffice-writer libreoffice-calc # documents -> PDF sudo dnf install -y gegl04-tools # GEGL operations @@ -153,14 +153,6 @@ bytes. Missing apps are skipped; skip the whole group with `RUN_APPS=0`. GIMP 3 reshaped the Script-Fu API, so the GIMP step picks a version-appropriate script and is best-effort — check `results/gimp-.txt` if a number looks wrong. -### Phoronix Test Suite (optional, short core only) -Already installed (`phoronix-test-suite` 10.8.6). To use it: -```bash -sudo phoronix-test-suite make-download-cache # once, needs internet -``` -Only the short core (`build-linux-kernel`, `c-ray`, `stream`) is used, behind -`RUN_PTS=1`. The long suite is intentionally **not** included. - > `run-benchmarks.sh` finds PassMark at `tools/pt/pt_linux_x64` **or** > `tools/pt/PerformanceTest/PerformanceTest_Linux_x86-64`. Override the location > with `TOOLS=/path` (or set `PT=` directly). @@ -238,7 +230,6 @@ Headless part (`~25-30 min` per pass): | 7 | `fio` 4×30 s | 3-4 min | same SSD, control; runs as your user | | 8 | `stress-ng` 5 min + `turbostat` | ~8 min | thermals/power | | 9 | `systemd-analyze` | <1 min | informational | -| + | PTS short core (`RUN_PTS=1`) | +30-45 min | kernel build, c-ray, stream | Headed part (`~1 min` per pass): @@ -251,7 +242,6 @@ Every step writes its own `results/-.txt/json`. Options (env): ```bash -RUN_PTS=1 ./run-benchmarks.sh before headless # add the 3 short Phoronix tests RUN_APPS=0 ./run-benchmarks.sh before headless # skip the app workloads CORPUS=/path ./run-benchmarks.sh before headless # app corpus cache location GOVERNOR=powersave ./run-benchmarks.sh after headless # pin a governor (see §7) @@ -287,8 +277,8 @@ FIOFILE=/data/fio.bin ./run-benchmarks.sh before headless # fio scratch file 6. Warm up once, then take the **median of 3** runs. Run both parts back to back on the same side. 7. Note ambient/room temperature next to the results. -8. **Back up** `results/` (and `~/.phoronix-test-suite` if used) before - reinstalling or re-imaging — copy them somewhere off the machine. +8. **Back up** `results/` before reinstalling or re-imaging — copy them + somewhere off the machine. --- @@ -345,7 +335,7 @@ env idle PassMark-cpu PassMark-mem 7zip 7zip-1t openssl sysbench-1t sysbench-nt sysbench-mem llama fio-seqread fio-seqwrite fio-randread fio-randwrite thermal-load systemd libreoffice gegl inkscape gimp -glmark2 vkmark pts-core +glmark2 vkmark ``` Example `results/scores-before-headless.csv`: @@ -407,7 +397,6 @@ Before any reinstall or re-image, copy the kit and its results somewhere safe: ```bash cp -a ~/basic-benchmark /path/to/backup/basic-benchmark-$(date +%F) -cp -a ~/.phoronix-test-suite /path/to/backup/pts-backup # if PTS was used ``` After the new build: put the kit back, run `INSTALL_DEPS=1 ./run-benchmarks.sh @@ -447,6 +436,5 @@ before-headed`. **headed** for the display-bound GPU tests. - **PassMark** is the primary cross-platform score. The suite is self-contained and offline: no uploads and no license keys. -- Phoronix is optional and **short only** — no long suite. - `powerlog.py`/`power-report.py` are plain Python 3; the only Python dep is `matplotlib` (installed on demand; see §3). diff --git a/benchmarks.txt b/benchmarks.txt index e0747a0..579beab 100644 --- a/benchmarks.txt +++ b/benchmarks.txt @@ -15,7 +15,7 @@ # This file is the reference for what that script runs, plus extras. # # Primary cross-platform score: PassMark PerformanceTest (cpubenchmark.net). -# Technical depth: Phoronix Test Suite + the quick tools below. +# Technical depth: the quick tools below. ############################################################################ ############################################################################ @@ -36,10 +36,9 @@ 6 fio 4x30s headless script 3-4 min runs as your user 7 stress-ng 5 min + turbostat headless script ~8 min thermals/power 8 systemd-analyze headless script <1 min - glmark2 + vkmark headed script 3-4 min needs desktop session + glmark2 + vkmark headed script ~1 min needs desktop session ---------- headless total ---------- ~25-30 min - ---------- headed total ------------ ~4-5 min - + PTS core: build-linux-kernel, c-ray, stream +30-45 min RUN_PTS=1 + ---------- headed total ------------ ~1 min => ground rule wants MEDIAN OF 3 runs: x3 the above * powerlog.py samples power/temp ~1/s for the WHOLE part -> results/power-.csv + results/phases-.csv @@ -63,16 +62,16 @@ 6. Warm up once, then take the MEDIAN of 3 runs. Throw away the first. 7. Note room/ambient temperature next to thermal results; thermals are noisy. 8. Use the SAME tool versions on both sides (with their (point) releases: - PassMark PT build, PTS version). Record them in env-$TAG.txt. + PassMark PT build). Record them in env-$TAG.txt. 9. BACK UP before any reinstall / reimage: - ~/.phoronix-test-suite/ and ~/basic-benchmark/results/ - copy both somewhere safe (off the machine) before reinstalling. + ~/basic-benchmark/results/ + copy it somewhere safe (off the machine) before reinstalling. == 0. ENV CAPTURE (run first, each side) == export TAG=before # or: after mkdir -p ~/basic-benchmark/results && cd ~/basic-benchmark/results { date; uname -a; lscpu; free -h; lsblk; - phoronix-test-suite version; stress-ng --version; + stress-ng --version; glxinfo -B 2>/dev/null; vulkaninfo --summary 2>/dev/null | head -40; sha256sum ~/basic-benchmark/tools/pt/PerformanceTest/PerformanceTest_Linux_x86-64 2>/dev/null; } > env-$TAG.txt 2>&1 @@ -117,7 +116,6 @@ == 5. MEMORY — BANDWIDTH == sysbench memory --threads=$(nproc) run | tee sysbench-mem-$TAG.txt - # (pts/stream below gives TRIAD/COPY/SCALE/ADD MB/s) # Compare bandwidth between the two builds. == 5b. LLM INFERENCE — token generation on CPU/RAM (bundled llama.cpp) == @@ -128,7 +126,7 @@ | tee llama-$TAG.txt # -ngl 0 forces CPU/RAM (no GPU offload). Record the tg t/s number. -== 5c. APP WORKLOADS (LibreOffice / GEGL / Inkscape / GIMP — no Phoronix) == +== 5c. APP WORKLOADS (LibreOffice / GEGL / Inkscape / GIMP) == # Stock distro apps run over a fixed sample corpus; run-benchmarks.sh fetches # the corpus ONCE into tools/corpus/ (checksum-pinned) and times the app's own # CLI, reporting a rate (items/s, higher is better). Missing apps are skipped. @@ -138,17 +136,6 @@ # Phases / scores are named after the benchmark: libreoffice gegl inkscape gimp. # GIMP 3 reshaped Script-Fu, so the GIMP step is best-effort. -== 6. REAL-WORLD BUILD / RENDER (short Phoronix core) == - # Phoronix Test Suite pins versions/counts and stores results you can diff. - # Installed here: 10.8.6 - sudo phoronix-test-suite make-download-cache # once, before going offline - phoronix-test-suite benchmark \ - pts/build-linux-kernel \ - pts/c-ray \ - pts/stream - # verify names if any differ: - phoronix-test-suite list-available-tests | grep -Ei 'build|c-ray|stream' - == 7. GPU — DISCRETE RX 6700 XT (same card both runs; HEADED part only) == sudo dnf install -y glmark2 vkmark vulkan-tools mesa-demos # Monitors hang off the Cezanne iGPU, so PIN the dGPU or these tests would @@ -162,7 +149,6 @@ # VKMARK_DURATION and VKMARK_BENCH (texture|shading|vertex). glmark2 -b terrain:duration=10 2>&1 | tail -25 | tee glmark2-$TAG.txt vkmark -b texture:duration=10 2>&1 | tail -30 | tee vkmark-$TAG.txt - phoronix-test-suite benchmark pts/vkmark # if available in cache # Confirm which GPU rendered: grep -i 'device\|renderer' glxinfo-$TAG.txt == 8. STORAGE / IO (same drive — mostly a control; watch for regressions) == @@ -225,7 +211,7 @@ # env PassMark 7zip openssl sysbench # Example: # PassMark,24500 - # pts-core,420 <- kernel-build seconds; energy = avg_w * seconds + # libreoffice,3.9 <- docs/s; energy = avg_w * seconds # Metrics reported: avg/p95/peak W, avg/peak °C, energy (kJ) per phase, # and score-per-watt (higher = better; lower energy = better). diff --git a/capture-specs.sh b/capture-specs.sh index a675892..d0c2811 100755 --- a/capture-specs.sh +++ b/capture-specs.sh @@ -53,7 +53,7 @@ disks() { } tool_versions() { for c in 7z openssl fio stress-ng sysbench sensors turbostat cpupower \ - glmark2 vkmark glxinfo vulkaninfo phoronix-test-suite python3 \ + glmark2 vkmark glxinfo vulkaninfo python3 \ libreoffice inkscape gegl gimp; do have "$c" && printf ' %-20s %s\n' "$c" "$("$c" --version 2>&1 | head -1)" done diff --git a/power-report.py b/power-report.py index a53c605..53726a9 100755 --- a/power-report.py +++ b/power-report.py @@ -11,7 +11,7 @@ per-phase power/thermal summary. scores-.csv format (one benchmark per line, name must match a phase): PassMark-cpu,24500 PassMark-mem,2500 - pts-core,420 + libreoffice,3.9 """ import argparse import csv diff --git a/run-benchmarks.sh b/run-benchmarks.sh index 063213f..5433330 100755 --- a/run-benchmarks.sh +++ b/run-benchmarks.sh @@ -24,7 +24,6 @@ # Env options: # INSTALL_DEPS=1 auto-install missing tools via sudo dnf (fresh Fedora) # default is 'ask' (prompts); 0 disables -# RUN_PTS=1 add the 3 short Phoronix tests (needs download cache) # RUN_GPU=0 skip the headed GPU tests in 'all' mode # TOOLS=/path where PassMark lives (default ./tools) # FIOFILE=/path fio scratch file (must be on the target filesystem) @@ -99,7 +98,6 @@ TAG="$TAG_BASE" [[ "$PART" != "all" ]] && TAG="$TAG-$PART" RUN_GPU="${RUN_GPU:-1}" -RUN_PTS="${RUN_PTS:-0}" TOOLS="${TOOLS:-$DIR/tools}" if [[ -z "${PT:-}" ]]; then for cand in "$TOOLS/pt/pt_linux_x64" \ @@ -115,12 +113,12 @@ LLAMA_MODEL="${LLAMA_MODEL:-$LLAMA_DIR/models/MiniCPM5-2B-Q8_0.gguf}" LLAMA_NGL="${LLAMA_NGL:-0}" # 0 = CPU/RAM only (no GPU offload) LLAMA_TG="${LLAMA_TG:-128}" # generated tokens LLAMA_REPS="${LLAMA_REPS:-2}" -# App workloads (no Phoronix Test Suite): stock distro applications run over a +# App workloads: stock distro applications run over a # fixed sample corpus, fetched once and checksum-pinned, then cached under # CORPUS and reused by every run so both sides process identical input bytes. RUN_APPS="${RUN_APPS:-1}" CORPUS="${CORPUS:-$TOOLS/corpus}" -CORPUS_URL="${CORPUS_URL:-http://phoronix-test-suite.com/benchmark-files}" +CORPUS_URL="${CORPUS_URL:-http://phoronix-test-suite.com/benchmark-files}" # sample-file CDN SAMPLER="$DIR/powerlog.py" REPORT="$DIR/power-report.py" PHASES="$RES/phases-$TAG.csv" @@ -258,7 +256,7 @@ parse_passmark() { # $1 = yml, $2 = phase name, $3 = suite ("cpu"|"mem") }' "$yml" } -# --- app workloads: fixed corpora + timing (no Phoronix Test Suite) ----------- +# --- app workloads: fixed corpora + timing ------------------------------------ # Each app benchmark runs the stock command-line tool over a fixed input set and # reports a rate (items/s, higher is better) so the score/W table stays meaningful. fetch_corpus() { # $1=file $2=url $3=sha256 -> ensures $CORPUS/ is present @@ -390,7 +388,7 @@ doctor() { printf 'model: %s\n' "$([ -f "$LLAMA_MODEL" ] && echo "$LLAMA_MODEL ($(du -h "$LLAMA_MODEL" 2>/dev/null | cut -f1))" || echo "MISSING ($LLAMA_MODEL)")" printf 'tools:\n' for t in 7z openssl sysbench fio stress-ng sensors turbostat cpupower \ - glmark2 vkmark glxinfo vulkaninfo phoronix-test-suite nproc; do + glmark2 vkmark glxinfo vulkaninfo nproc; do printf ' %-22s %s\n' "$t" "$(command -v "$t" || echo MISSING)" done printf 'apps:\n' @@ -454,7 +452,6 @@ run_env() { lscpu free -h lsblk - have phoronix-test-suite && phoronix-test-suite version have stress-ng && stress-ng --version have glxinfo && glxinfo -B 2>/dev/null have vulkaninfo && vulkaninfo --summary 2>/dev/null | head -70 @@ -501,7 +498,7 @@ run_llama() { reg_score "llama-tg" "$tg" } -# --- app workloads (stock apps + fixed corpora; no Phoronix Test Suite) ------- +# --- app workloads (stock apps + fixed corpora) ------------------------------- # Phases and score names are the benchmark names: libreoffice gegl inkscape gimp. # Each registers a rate (items/s) so higher stays better for the score/W table. @@ -810,12 +807,6 @@ run_headless() { systemd-analyze | tee "systemd-analyze-$TAG.txt" systemd-analyze blame | head -20 >> "systemd-analyze-$TAG.txt" fi - - if [[ "$RUN_PTS" == "1" ]] && have phoronix-test-suite; then - section "PHORONIX TEST SUITE (core)" - phase "pts-core" - phoronix-test-suite benchmark pts/build-linux-kernel pts/c-ray pts/stream - fi } run_headed() {