Skip to content

VFIO (experimental): the harbor shows a card passed through to a VM - #133

Merged
T-Crypt merged 4 commits into
mainfrom
T-Crypt/harbor-passthrough
Oct 22, 2026
Merged

T-Crypt merged 4 commits into
mainfrom
T-Crypt/harbor-passthrough

Conversation

@T-Crypt

@T-Crypt T-Crypt commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Follows #129, #130 and #131. berthd already reports a card in a VM (passthrough in the status); the harbor web UI now shows it.

  • A GPU IN VM tag sits beside the state pill on every tab, phone layout included. It reads GPU TO VM while the driver switch is in progress.
  • The card's panel shows "passed through to a VM (vfio-pci)" in place of its memory figures. The last reading stays, greyed and labelled with its age, so a frozen figure never reads as current.
  • The departures board marks the VFIO hold IN VM, and the berth's occupant line says "in the VM".
  • The log names card.passthrough and card.returned in plain words, and the tide leaves the session as a gap in the data instead of a flat line.
  • While the card is in a VM, neither a probe failure nor an engine stopped for the session turns the state DEGRADED.

Checked against the live node on the reference machine while a Windows VM held the RTX 4090. I ran this branch's harbor on a spare port and rendered it in headless Firefox:

  • The header showed LIVE with GPU IN VM, and the card's panel showed the passthrough state and a 21-minute-old last reading.
  • That check found two bugs, both fixed here: the board's status cell still said DOCKED (the new word only reached the aria label), and llama-swap, stopped by the session, read as latched and turned the state DEGRADED.
  • The tide's gap could not be rendered in that setup, because the test proxy did not relay the event stream. The node did hold the card.passthrough event the gap is built from.

Proof: TestStatusPassthroughReachesThePage; node --check on every JS file; full proof green (build, gofmt, vet, go test ./..., Windows build and vet, golangci-lint with 0 issues); mkdocs build --strict passes.

…D; docs and changelog

Seen with a real VM holding the card: llama-swap, stopped by the session's
--before, read as latched and turned the state pill DEGRADED.
The VFIO row computed its IN VM word but wrote statusText to the cell, so it
read DOCKED; only the aria label had the new word. Found rendering the page
against the live node with a real VM holding the card.
@T-Crypt
T-Crypt merged commit 4557588 into main Oct 22, 2026
4 checks passed
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