noble-updates #2

Open
jacobvktm wants to merge 32 commits from noble-updates into main
Owner

Add a new webgui that works in 24.04

Add a new webgui that works in 24.04
- webui/app.py: Flask app with test profile launching, process management,
  live log streaming (SSE), and sensor monitoring API
- webui/sensors.py: SensorManager integrating stressmon for real-time
  CPU freq/temp/usage/power, memory, fans, GPUs, and drive temps
- webui/templates/: Dashboard, full-screen Monitor page, and base template
- s76-webui.sh: Launcher script (pip installs Flask if needed)
- Replaces curses (test.py) and tkinter (test_gui.py) monitoring with
  browser-based UI that works under COSMIC on Pop!_OS 24.04
- s76-webui.sh: checks for RAPL permissions on startup, uses sudo
  setfacl to grant read access to energy_uj sysfs files (prompts
  for password if needed). Also checks for smartctl and advises
  installation.
- webui/sensors.py: adds _init_cpu_watts() helper that gracefully
  handles CPUWatts failures without crashing the server.
  Removes unused imports.
- s76-webui.sh: sysfs doesn't support ACLs, switch to chmod o+r
  for RAPL energy_uj files. Also export PATH/LD_LIBRARY_PATH
  before starting server so bundled smartctl is found.
- webui/sensors.py: set PATH and LD_LIBRARY_PATH at import time
  so bundled smartctl in bin/ is used by pySMART/DriveTemp.
- s76-webui.sh: prompts to create /etc/sudoers.d/stress-scripts
  allowing passwordless smartctl for NVMe SMART data access
- webui/sensors.py: sets pySMART.SMARTCTL.sudo = True so
  smartctl is invoked via sudo -E (preserving bundled PATH)
  for drive temperature monitoring
- On Arrow Lake (Core Ultra 9 275HX) intel-rapl:0 is 'package-0'
  and intel-rapl:1 is 'psys' (platform/SoC power), not a second CPU.
- _LabeledCPUWatts wrapper reads the RAPL name files and presents
  readable labels while delegating all data access to the underlying
  CPUWatts instance.
CPUWatts now reads actual RAPL domain names (package-0, psys, etc.)
from sysfs instead of hard-coded CPU0/CPU1 labels.  The workaround
wrapper _LabeledCPUWatts in webui/sensors.py is no longer needed.
The pynvml package (deprecated) emits a FutureWarning on import.
nvidia-ml-py provides the same pynvml module directly, so the
deprecated package is unnecessary. Add a pre-flight cleanup in
s76-webui.sh to auto-remove it.
Catch KeyboardInterrupt around app.run() and clean up all running
subprocesses before exit.
- Rebuilt gpu_burn from source with CUDAPATH=/usr/local/cuda-13.0
- Now links against libcublas.so.13 / libcublasLt.so.13
- Replaced libcublas.so.11/libcublasLt.so.11 in lib/ with .13 versions
- Bundled compare.fatbin (replaces compare.ptx from older builds)
- Updated s76-gpu-burn.sh to pass -c flag for compare.fatbin path
Added -include fix-glibc.h to Makefile CFLAGS to prevent glibc from
redirecting sscanf/strtol/strtoll to C23 variants (__isoc23_*) that
require glibc >= 2.38. This ensures the binary runs on Jammy (glibc 2.35).
Recording now writes to log_<timestamp>.csv (with headers + Runtime column)
and log_<timestamp>.txt (summary) on disk, using each sensor's
get_csv_headings()/get_csv_data() methods — same pattern as test.py.

- Auto-starts when a test is launched, auto-stops when all tests complete
- User can manually start/stop via /api/record endpoint
- Recording status shown on Dashboard (REC badge) and Monitor page
- Download button streams CSV from in-memory buffer
- Monitor is promoted to a proper top-level nav tab
Built from https://github.com/ColinIanKing/stress-ng.git at
commit 98cd4c8b77576c. Supports --rapl, --thermalstat, --metamix,
--vecmath, --matrix, --cache, --mcontend, --stream, --iomix,
--softlockup, and other advanced stressors.
This pull request has changes conflicting with the target branch.
  • README.md
  • s76-webui.sh
  • stressmon
  • webui/app.py
  • webui/sensors.py
  • webui/templates/base.html
  • webui/templates/index.html
  • webui/templates/monitor.html
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin noble-updates:noble-updates
git switch noble-updates

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff noble-updates
git switch noble-updates
git rebase main
git switch main
git merge --ff-only noble-updates
git switch noble-updates
git rebase main
git switch main
git merge --no-ff noble-updates
git switch main
git merge --squash noble-updates
git switch main
git merge --ff-only noble-updates
git switch main
git merge noble-updates
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jacobvktm/stress-scripts!2
No description provided.