GPU: a slow read is late, not stalled; a stall clears when the read returns

nvidia-smi on a busy card can take past the 3 s deadline, which latched the card
as stalled until restart. A late read now carries the last readings and is used
when it lands; no second read starts while one is out; only one out for 15 s
(past both nvidia-smi timeouts) marks the card stalled, and its return clears it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Mitchell-Johnson
2026-11-10 18:42:13 -08:00
co-authored by Claude Opus 5.5
parent ad576d8c1a
commit 574d9855ce
3 changed files with 116 additions and 22 deletions
+2 -2
View File
@@ -598,7 +598,7 @@ function GPUBox({ g, values, tick, advance, now, cap }: { g: GPU; values: number
<div className="t-gpu">
<div className="t-gpu-graph">
<Graph values={values} tick={tick} advance={advance} now={now} cap={cap} max={100} grad="cpu" />
{g.stalled && <div className="t-up">a sysfs read of this card stopped answering; its readings are paused until the console restarts</div>}
{g.stalled && <div className="t-up">a read of this card stopped answering; its readings are paused until it does</div>}
</div>
<div className="t-gpu-stats">
<div className="t-cores-head"><b>{g.name}</b><span className="spacer" />{g.driver}{g.integrated ? ' · integrated' : ''}</div>
@@ -649,7 +649,7 @@ function GPULine({ g }: { g: GPU }) {
<div className="t-row t-gpu-line">
<span>{g.driver}{g.integrated ? ' · integrated' : ''}</span>
{g.stalled
? <span className="t-dim" title="a sysfs read of this card stopped answering">readings paused until the console restarts</span>
? <span className="t-dim" title="a read of this card stopped answering">readings paused until it answers</span>
: <span className="t-dim" title="the driver exposes no busy counter, clock, temperature, power or memory reading">nothing measurable</span>}
<span className="t-dim t-gpu-who" title={g.clients_ok ? undefined : 'the console has no root here'}>{g.clients_ok ? 'no process has it open' : 'other users’ processes are hidden'}</span>
</div>