Skip to content

fix: Apply, gao --apply and the watchdog refuse a second NVIDIA GPU too - #74

Merged
Rovey merged 1 commit into
mainfrom
fix/refuse-several-gpus-apply
Nov 5, 2026
Merged

Rovey merged 1 commit into
mainfrom
fix/refuse-several-gpus-apply

Conversation

@Rovey

@Rovey Rovey commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Why

#65 made runs and the logon apply refuse a PC with more than one NVIDIA GPU, and listed three places that did not: the window's Apply saved tune, gao --apply and the tray watchdog's re-apply. They write a saved tune without testing it, so with two cards they could write it to a card it was not made for.

What

  • saved_tune_for(driver, gpu_id, nvidia_gpus, refusal): the count goes to decide_boot, which returns SeveralGpus first. Callers: the Apply button and gao --apply pass Nvml::DeviceCount(); the undervolt on the saved tune passes 1, because its run already refused before it began.
  • Watchdog: a second NVIDIA GPU counts as another card (gpu_ok false). The tune is not put back; the refusal goes to boot.log and the short balloon (kSeveralGpusBalloon) is shown once.
  • docs/development.md: the "not refused yet" part of the design-decision row now says what refuses.

An integrated Intel or AMD GPU is not counted by NVML, so a one-card PC is not affected; an unknown count (-1) does not refuse, as before.

Tests

  • cmake --workflow --preset ci: builds with /W4 /WX; core_tests and app_tests pass. The count rules are covered by the existing decide_boot / several_gpus tests; saved_tune_for itself reads gao.json and has no unit test.
  • Not on a PC with two cards (none available). On the RTX 5070 the count is 1, so Apply and the watchdog behave as before.

🤖 Generated with Claude Code

Runs and the logon apply already refused a PC with more than one NVIDIA
GPU. The window's Apply saved tune and gao --apply now pass NVML's count
to decide_boot through saved_tune_for, and the tray watchdog does not put
a tune back once a second NVIDIA GPU is counted: it writes the refusal to
boot.log and shows the short balloon once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Rovey
Rovey merged commit cca6cc3 into main Nov 5, 2026
2 checks passed
@Rovey
Rovey deleted the fix/refuse-several-gpus-apply branch November 5, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant