Skip to content

fix admission error if there was another device plugin installed - #18

Open
fishman wants to merge 5 commits into
Project-HAMi:mainfrom
fishman:fix/MI355X-admission
Open

fix admission error if there was another device plugin installed#18
fishman wants to merge 5 commits into
Project-HAMi:mainfrom
fishman:fix/MI355X-admission

Conversation

@fishman

@fishman fishman commented Aug 19, 2026

Copy link
Copy Markdown
  • fix: admit whole-GPU allocations via kubelet device ids
  • fix: tolerate unknown device ids in GPA policy
  • fix(helm): drop allowPrivilegeEscalation from securityContext
  • example(vllm-serve): use gfx950 vLLM image for MI355X

Reza Jelveh added 4 commits August 19, 2026 14:07
The fork scheduler writes hami.io/amd-devices-allocated keyed by
AMDGPU-<i> with Usedcores=0, but the plugin reads
hami.io/amd-devices-to-allocate, so Allocate failed before returning.
When the annotation is unavailable, fall back to kubelet's own device
ids, resolving split ids ("<bdf>#<slot>") through the topology BDF map.

Whole-GPU allocations (Usedcores=0) mask every CU (HSA_CU_MASK
0:0-255) and keep the LD_AUDIT hook; CU occupancy persistence and the
node lock check apply only to sliced (cores>0) allocations.

Verified: vllm-amd (Qwen2.5-0.5B) and example/vllm-serve (mistral-7b)
admit and serve inference on the MI355X node.

Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
GetPreferredAllocation can receive device ids that are not in the
policy's device map (another plugin's registration on the same node).
The previous code appended nil entries and panicked in the sort
comparator, killing the plugin process and leaving kubelet with no
healthy devices. Skip unknown ids instead.

Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
Pairing it with privileged is rejected by apply.

Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
rocm6.2_mi300 (gfx942) has no gfx950 support: torch reports "No HIP
GPUs are available" at startup. Use the rocm7.13 gfx950 build that
serves on the MI355X.

Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
@hami-robot

hami-robot Bot commented Aug 19, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: fishman

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cdfbb48e-76b1-45da-942f-5be23c8fef8e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Skipping unknown ids prevents the panic, but a silent fix hides the
cause: another device plugin running on the same node merged its
devices into kubelet's list. Log a warning naming the likely cause
and the remedy (disable the other plugin, restart this one).

Signed-off-by: Reza Jelveh <fishmangit@dynamia.ai>
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