Skip to content

openhcl: add build that relays NVIDIA GPUs to CVM guests#3889

Draft
robertschaedler3 wants to merge 5 commits into
microsoft:mainfrom
robertschaedler3:robertschaedler3/azurelocal-cgpu
Draft

openhcl: add build that relays NVIDIA GPUs to CVM guests#3889
robertschaedler3 wants to merge 5 commits into
microsoft:mainfrom
robertschaedler3:robertschaedler3/azurelocal-cgpu

Conversation

@robertschaedler3

@robertschaedler3 robertschaedler3 commented Jul 8, 2026

Copy link
Copy Markdown
Member

Adds a dedicated build that relays NVIDIA GPUs (and their NVLink fabric) through the VPCI relay to confidential VM guests, enabling confidential GPU workloads on Azure Local.

The behavior is gated behind a new nvidia_vpci_relay_allowed cargo feature and is only compiled into a new IGVM recipe the default x64-cvm build is unchanged.

Why vendor + class rather than an explicit device list?

Datacenter GPUs (H100/H200/HGX H100/H200, HGX B200/B300) are headless and enumerate as 3D controllers rather than VGA, and HGX clusters additionally expose NVSwitch devices that are PCI bridges so a single display-class filter would miss the fabric. Keying on vendor + the two relevant classes covers whole clusters while still rejecting all non-NVIDIA devices, and avoids a rebuild each time a new SKU ships.

Copilot AI review requested due to automatic review settings July 8, 2026 02:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an Azure Local–specific OpenHCL build configuration that expands the VPCI relay allow-list to include NVIDIA datacenter GPUs (3D controller class) and NVLink/NVSwitch fabric devices (bridge/other class), and wires this through Flowey as a new x64-cvm-azure-local IGVM recipe gated by a new azurelocal Cargo feature.

Changes:

  • Add PCI subclass constant for “3D controller” (0x0302) to support class-based allow-listing.
  • Introduce azurelocal Cargo feature plumbing across openvmm_hclunderhill_entryunderhill_core, enabling extra NVIDIA allow-list entries in the VPCI relay.
  • Add a new Flowey/build-igvm recipe (x64-cvm-azure-local) that builds CVM OpenHCL with the azurelocal feature enabled.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
vm/devices/pci/pci_core/src/spec.rs Adds Subclass::DISPLAY_CONTROLLER_3D needed for NVIDIA GPU class filtering.
openhcl/underhill_entry/Cargo.toml Exposes azurelocal feature to propagate into underhill_core.
openhcl/underhill_core/src/worker.rs Adds NVIDIA vendor constant and azurelocal-gated VPCI relay allow-list rules for GPU + fabric devices.
openhcl/underhill_core/Cargo.toml Defines the azurelocal feature flag at the core layer.
openhcl/openvmm_hcl/Cargo.toml Exposes azurelocal feature at the OpenHCL binary layer.
flowey/flowey_lib_hvlite/src/build_openvmm_hcl.rs Adds OpenvmmHclFeature::AzureLocal → cargo feature name mapping.
flowey/flowey_lib_hvlite/src/build_openhcl_igvm_from_recipe.rs Adds X64CvmAzureLocal recipe that enables the azurelocal OpenHCL feature.
flowey/flowey_lib_hvlite/src/artifact_openhcl_igvm_from_recipe.rs Maps the new recipe to/from its artifact filename.
flowey/flowey_lib_hvlite/src/_jobs/local_build_igvm.rs Adds local build output name for the new recipe.
flowey/flowey_hvlite/src/pipelines/build_igvm.rs Adds build-igvm CLI enum variant and recipe mapping for x64-cvm-azure-local.

Comment thread openhcl/underhill_core/src/worker.rs
Comment thread openhcl/openvmm_hcl/Cargo.toml Outdated
Copilot AI review requested due to automatic review settings July 9, 2026 00:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Comment thread openhcl/openvmm_hcl/Cargo.toml
@robertschaedler3 robertschaedler3 changed the title openhcl: add Azure Local build that relays NVIDIA GPUs to CVM guests openhcl: add build that relays NVIDIA GPUs to CVM guests Jul 9, 2026
Copilot AI review requested due to automatic review settings July 10, 2026 17:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.

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.

3 participants