Probe: read nvidia-smi's exit code after the pipeline drains

Select-Object -First 1 closes the pipe early and leaves LASTEXITCODE -1, so
every iteration threw and the probe wrote no samples (found on Raven).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-22 23:32:09 +02:00
commit 62485dab15

View file

@ -8,8 +8,9 @@ while ($true) {
try {
$quns = 0
if ([Vili.Shell]::SHQueryUserNotificationState([ref]$quns) -ne 0) { throw 'quns' }
$free = nvidia-smi.exe --query-gpu=memory.free --format=csv,noheader,nounits | Select-Object -First 1
$smi = @(nvidia-smi.exe --query-gpu=memory.free --format=csv,noheader,nounits)
if ($LASTEXITCODE -ne 0) { throw 'smi' }
$free = $smi[0]
$sum = (Get-Counter '\GPU Engine(*engtype_3D)\Utilization Percentage' -SampleInterval 1 -MaxSamples 1).CounterSamples | Measure-Object -Property CookedValue -Sum
$line = [ordered]@{ quns = [int]$quns; freeMiB = [int]$free; util3d = [math]::Min(100, [math]::Round([double]$sum.Sum, 1)) } | ConvertTo-Json -Compress
[Console]::Out.WriteLine($line)