Skip to content

Add storvsp IDE accelerator support to chipset resources#3344

Draft
moor-coding wants to merge 2 commits intomicrosoft:mainfrom
moor-coding:storvsp-ide-resourcify
Draft

Add storvsp IDE accelerator support to chipset resources#3344
moor-coding wants to merge 2 commits intomicrosoft:mainfrom
moor-coding:storvsp-ide-resourcify

Conversation

@moor-coding
Copy link
Copy Markdown
Contributor

  • Introduce StorvspIdeDeviceHandle in storvsp_resources with a stable resource ID, mapping IDE channel/device addressing to SCSI path/target.
  • Add StorvspIdeResolver in storvsp that resolves the handle into a StorageDevice::build_ide() call via the standard VMBus device resolution path.
  • Remove direct storvsp::StorageDevice::build_ide() construction from dispatch.rs and worker.rs; IDE accelerator channels are now resolved as VMBus device handles alongside other vmbus_devices.

Copilot AI review requested due to automatic review settings April 21, 2026 18:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR moves StorVSP IDE accelerator wiring onto the standard vm_resource / VMBus device-handle resolution path by introducing a dedicated StorvspIdeDeviceHandle resource and resolver, and removing ad-hoc channel offering from worker code paths.

Changes:

  • Add StorvspIdeDeviceHandle (stable resource ID) and StorvspIdeResolver to resolve IDE accelerator channels via StorageDevice::build_ide().
  • Register the new resolver in both OpenVMM and OpenVMM-HCL resolver registries.
  • Update OpenVMM, OpenHCL, and Petri construction paths to emit IDE accelerator handles as normal VMBus devices, removing direct channel-offer construction.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
vm/devices/storage/storvsp_resources/src/lib.rs Introduces the StorvspIdeDeviceHandle resource with a stable ID.
vm/devices/storage/storvsp/src/resolver.rs Adds StorvspIdeResolver to resolve IDE accelerator handles into StorageDevice::build_ide().
petri/src/vm/openvmm/construct.rs Emits StorVSP IDE accelerator handles alongside IDE emulator configs in Petri VM construction.
openvmm/openvmm_resources/src/lib.rs Registers StorvspIdeResolver for OpenVMM binaries.
openvmm/openvmm_entry/src/storage_builder.rs Adds storage-builder support to generate StorVSP IDE accelerator VMBus handles for IDE HDDs.
openvmm/openvmm_core/src/worker/dispatch.rs Removes direct build_ide() offering for IDE accelerator channels.
openhcl/underhill_core/src/worker.rs Switches Underhill IDE accelerator creation to VMBus device-handle resolution, removing direct channel offering.
openhcl/underhill_core/src/dispatch/mod.rs Drops the _ide_accel_devices retention field now that IDE accel channels come from the general VMBus device list.
openhcl/underhill_core/Cargo.toml Removes the direct storvsp dependency from underhill_core.
openhcl/openvmm_hcl_resources/src/lib.rs Registers StorvspIdeResolver for OpenVMM-HCL binaries.
Cargo.lock Reflects dependency graph updates (removal of storvsp from underhill_core).

Comment thread vm/devices/storage/storvsp/src/resolver.rs
Comment thread openhcl/underhill_core/src/worker.rs Outdated
Comment thread openvmm/openvmm_entry/src/storage_builder.rs
Comment thread petri/src/vm/openvmm/construct.rs Outdated
Comment thread openhcl/underhill_core/src/worker.rs
@moor-coding moor-coding force-pushed the storvsp-ide-resourcify branch from fbc8674 to 8bf9a78 Compare April 21, 2026 18:47
@moor-coding moor-coding marked this pull request as ready for review April 22, 2026 16:46
@moor-coding moor-coding requested a review from a team as a code owner April 22, 2026 16:46
Copilot AI review requested due to automatic review settings April 22, 2026 16:46
@moor-coding moor-coding requested a review from a team as a code owner April 22, 2026 16:46
@moor-coding moor-coding marked this pull request as draft April 22, 2026 16:47
- Introduce StorvspIdeDeviceHandle in storvsp_resources with a stable
  resource ID, mapping IDE channel/device addressing to SCSI path/target.
- Add StorvspIdeResolver in storvsp that resolves the handle into a
  StorageDevice::build_ide() call via the standard VMBus device resolution
  path.
- Remove direct storvsp::StorageDevice::build_ide() construction from
  dispatch.rs and worker.rs; IDE accelerator channels are now resolved
  as VMBus device handles alongside other vmbus_devices.
- Remove storvsp crate dependency from underhill_core (no longer directly
  referenced).
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 30 out of 33 changed files in this pull request and generated 6 comments.

Comment thread vm/devices/user_driver/vfio_sys/src/lib.rs
Comment thread vm/devices/user_driver/vfio_sys/src/lib.rs
Comment thread vm/devices/pci/vfio_assigned_device/src/lib.rs
Comment thread vm/devices/pci/vfio_assigned_device/src/lib.rs
Comment thread openvmm/openvmm_entry/src/storage_builder.rs Outdated
- Validate IDE channel_id/device_id (0..=1) in StorvspIdeResolver
- Replace assert! with anyhow::ensure! for untrusted VTL2 config in Underhill
- Add missing .await on disk_open() in storage_builder
@moor-coding moor-coding force-pushed the storvsp-ide-resourcify branch from 8bf9a78 to 73d2848 Compare April 22, 2026 17:19
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.

2 participants