Hint at igt-gpu-tools when an Intel GPU's utilization has no readable source#564
Merged
Conversation
… source On Intel hosts where no utilization source reports (kernel predating i915's fdinfo counters, igt-gpu-tools absent; xpu-smi never covers consumer iGPUs), the GPU panel showed "--" with no guidance. The hint probe only covered intel_gpu_top being installed but CAP_PERFMON-blocked. Replace the grant-binary probe with a typed IntelUtilHint (grant / install): when intel_gpu_top is missing entirely, the fleet panel and the placement SSE stream now say to install igt-gpu-tools plus the grant, the only utilization path on kernels older than i915's fdinfo (5.19, or 6.5 under GuC submission). Also correct the no-setup kernel version in the grant text (6.5, not 6.2) and the stale fdinfo comments.
The hint only rode the SSE stream; the plain JSON surfaces were silent.
PlacementResponse gains a notice field set by every placement handler,
and GET /api/gpus becomes an envelope {gpus, notice} matching the SSE
payload shape. The notice computation lives in app.placement so the
HTTP handlers and the MCP get_gpus tool (which documents itself as the
/api/gpus equivalent) share one path. CLI placement --json keeps
notice: null; from_view stays a pure serializer.
app.placement imported cli.tui.messages to format the notice, putting the shared orchestration layer under a TUI surface. The composition (probe stats + evaluate hint) now lives next to the hint in gpu_stats as probe_intel_util_hint, and each surface formats via messages itself: the HTTP handlers and the MCP get_gpus tool. app/placement.py returns to its main-line state.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
On Intel hosts where no utilization source can report (kernel older than 5.19, igt-gpu-tools not installed; xpu-smi never covers consumer iGPUs), GPU monitoring showed "--" with no guidance. The hint only covered intel_gpu_top being installed but CAP_PERFMON-blocked, and only rode the SSE stream; the plain JSON endpoints had nothing.
Solution
The hint now distinguishes grant (installed but blocked) from install (tool absent), and every GPU surface carries it: the fleet panel, the SSE stream, all placement routes (new notice field), GET /api/gpus (now an envelope {gpus, notice}), and the MCP get_gpus tool. Also fixes the grant text's no-setup kernel version (6.5, not 6.2) and two stale comments.