Count each processor package once, never read a sleeping card, and give no reading for a reset counter (hq ADR 0255)
mesh/merge-gate fail: builds asus-zephyrus-g14, i3status-rust, power → ace, g14, novox, shanks; no bus step; a manifest the change touches fails the module…
mesh/repo-check fail: its merge-check.sh failed: long-running resources without health: 68
mesh/delivery-group group feat/the-bar-takes-blocks delivering: 1 of 4 delivered
mesh/delivery superseded: a newer head of the same pull request

Intel shows some packages twice (MSR and MMIO), an AMD card's sensors wake it, and a
counter reset after resume read as thousands of watts. The loop's cadence and the bar
script's staleness are now tested, and the sampler running on every machine is said.
This commit is contained in:
jochen
2026-10-08 14:34:45 +02:00
parent f2ab795926
commit 8bd17abd4e
4 changed files with 147 additions and 13 deletions
+9 -2
View File
@@ -57,8 +57,15 @@ module's process `mesh-power-draw` (`power draw`, as root) samples every 5 s and
averaged rate, one line, to `/run/mesh-power/draw` (0644). The bar's script prints that line, and says
`power not measured` when it is missing or older than 30 s. Graphics are counted honestly: an AMD
device only when it has its own memory (an APU's integrated graphics report the whole package, which
the counter already holds), and an NVIDIA device through `nvidia-smi` only while it is awake, so the
bar never wakes a sleeping GPU.
the counter already holds), and only while it is awake; an NVIDIA device through `nvidia-smi` only
while it is awake, so the bar never wakes a sleeping GPU. Each package is counted once by its name:
where Intel shows one twice (`intel-rapl:N` and `intel-rapl-mmio:N`), the first is read. A counter that
gives more than 1000 W was reset, after a resume say, and that sample gives no reading.
**The sampler runs wherever this module is assigned, servers included.** A server has the energy
counter too, so conditioning it on `power-meter` would not keep it off one, and the mesh has no way yet
to condition a resource on another seat (the bar) being held on the machine. It costs one process
reading a few kernel files every five seconds (novox/hq ADR 0255 §9).
## Settings