diff --git a/tools/ca3-v4-amend/pc1-clocks-restore.ps1 b/tools/ca3-v4-amend/pc1-clocks-restore.ps1 index f1b550914..01033e56e 100644 --- a/tools/ca3-v4-amend/pc1-clocks-restore.ps1 +++ b/tools/ca3-v4-amend/pc1-clocks-restore.ps1 @@ -1,4 +1,5 @@ -# PC 1: put the RTX 5090's clocks back to the driver default through the Igneum Power Helper task (7 October 2026, 20:4x UTC). +# PC 1: put the RTX 5090's clocks back to the driver default through the Igneum Power Helper task (7 October 2026, 20:4x UTC; again 8 October +# 02:4x UTC after the third pass hit its time cap at the 300 MHz step, so its finally block never ran). # The second efficiency pass (run-ca3-pc1-v4-eff-5090-floor-20261007) lost the helper at its 1,000 MHz step (no helper.log line # within 30 s for that and every later command, the `nvidia-smi -lgc 0,1000` most likely hanging inside the helper), so its # closing `rgc` never ran and the card stayed at the 1,100 MHz lock (sm 1,087 on the unlocked-end rows; the live miner at 118 @@ -20,11 +21,15 @@ if (Test-Path $helperLog) { "RESULT helper.log tail: $((Get-Content -LiteralPath $task = Get-ScheduledTask -TaskName 'Igneum Power Helper' -ErrorAction SilentlyContinue if (-not $task) { 'RESULT error the Igneum Power Helper task is not registered: no reset path without a prompt (Power control off)'; exit 3 } "RESULT task state before: $($task.State)" +# the cleared sequence (update-return lane, 8 October 2026, 01:17 BST): the 0.3.20 helper skips the first N lines of cmd.txt, N = the line +# count when it started, so the task is started over an EMPTY file and its heartbeat waited for before the write +Set-Content -LiteralPath $cmdFile -Value '' -NoNewline -Encoding ascii try { Stop-ScheduledTask -TaskName 'Igneum Power Helper' -ErrorAction Stop; 'RESULT task stopped' } catch { "RESULT task stop failed: $_" } -Start-Sleep -Seconds 3 -try { Start-ScheduledTask -TaskName 'Igneum Power Helper' -ErrorAction Stop; 'RESULT task started' } catch { "RESULT task start failed: $_"; exit 3 } -Start-Sleep -Seconds 3 -"RESULT task state now: $((Get-ScheduledTask -TaskName 'Igneum Power Helper').State)" +Start-Sleep -Seconds 2 +try { Start-ScheduledTask -TaskName 'Igneum Power Helper' -ErrorAction Stop; 'RESULT task started over an empty cmd.txt' } catch { "RESULT task start failed: $_"; exit 3 } +$alive = Join-Path $helperDir 'helper.alive'; $t = 0; $fresh = $false +while ($t -lt 60 -and -not $fresh) { Start-Sleep -Seconds 1; $t++; if (Test-Path -LiteralPath $alive) { try { $v = [int64]((Get-Content -LiteralPath $alive -Raw).Trim()); if (([int64][double]::Parse((Get-Date -UFormat %s)) - $v) -le 4) { $fresh = $true } } catch { } } } +"RESULT task state now: $((Get-ScheduledTask -TaskName 'Igneum Power Helper').State); heartbeat fresh=$fresh after $t s" $seq = 0 if (Test-Path $cmdFile) { $seq = @(Get-Content -LiteralPath $cmdFile -ErrorAction SilentlyContinue | ForEach-Object { if ($_ -match '^(\d{1,6})\s') { [int]$Matches[1] } }) | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum } if (-not $seq) { $seq = 0 }