Skip to content

guide: VMBus channels, StorVSP subchannels, and CPU scheduling docs#2978

Closed
mattkur wants to merge 2 commits intomicrosoft:mainfrom
mattkur:guide/storage-channels-combined
Closed

guide: VMBus channels, StorVSP subchannels, and CPU scheduling docs#2978
mattkur wants to merge 2 commits intomicrosoft:mainfrom
mattkur:guide/storage-channels-combined

Conversation

@mattkur
Copy link
Contributor

@mattkur mattkur commented Mar 13, 2026

Combined PR containing the content from #2975 (CPU scheduling), #2976 (StorVSP channels), and #2977 (VMBus channels) with all inter-page cross-links resolved.

The individual PRs degrade cross-links to plain text so they can be committed independently. This PR has the full linked versions. If all three individual PRs are merged, this PR is not needed. If reviewing as a single unit is preferred, use this one.

New pages

  • architecture/openhcl/cpu_scheduling.md — cooperative executor, VP thread model, blocking scenarios, sidecar, OpenVMM comparison, device design rules.
  • architecture/vmbus/channels.md — channel identity, ring buffers, subchannel lifecycle, target VP, VP index vs APIC ID.
  • devices/vmbus/storvsp_channels.md — subchannel negotiation, worker model, CPU affinity, scaling diagrams, poll mode, slow-disk problem, configuration, Hyper-V differences, inspect output.

Modified pages

  • storvsp.md, storage.md, storage_configuration.md, ide.md — cross-links and new content (IDE accelerator section, scsi_sub_channels settings).
  • Rustdoc improvements across vmbus_channel, vmcore, and storvsp.

Addresses #2954, touches #2955.

@github-actions github-actions bot added the unsafe Related to unsafe code label Mar 13, 2026
@github-actions
Copy link

⚠️ Unsafe Code Detected

This PR modifies files containing unsafe Rust code. Extra scrutiny is required during review.

For more on why we check whole files, instead of just diffs, check out the Rustonomicon

@github-actions github-actions bot added the Guide label Mar 13, 2026
@mattkur mattkur force-pushed the guide/storage-channels-combined branch 2 times, most recently from 23b6aeb to 3bad991 Compare March 13, 2026 19:18
Why is this change being made?
- Addresses [microsoft#2954](microsoft#2954) —
  document VMBus channels & subchannels in the storage context.
- Touches on [microsoft#2955](microsoft#2955) —
  CPU affinity for storage I/O.
- The VMBus channel model, StorVSP's subchannel negotiation, the
  cooperative executor model, and the VP-to-CPU identity mapping were
  all undocumented.

What changed?
- New Guide page: `architecture/vmbus/channels.md` — VMBus channel
  concepts: identity model, ring buffers, subchannel lifecycle, target VP,
  VP index vs CPU number vs APIC ID.
- New Guide page: `devices/vmbus/storvsp_channels.md` — StorVSP
  subchannel negotiation, worker model, CPU affinity, scaling diagrams,
  poll mode, slow-disk problem, sidecar, configuration, Hyper-V
  differences, inspect output.
- New Guide page: `architecture/openhcl/cpu_scheduling.md` — cooperative
  executor, VP thread model, blocking scenarios (VTL0/kernel/hypervisor),
  mitigations, sidecar, OpenVMM comparison, device design rules.
- Updated `storvsp.md`, `storage.md`, `storage_configuration.md`,
  `ide.md` with cross-links and new content (IDE accelerator section,
  `scsi_sub_channels` fixed settings).
- Rustdoc improvements across
  [`vmbus_channel`](https://openvmm.dev/rustdoc/linux/vmbus_channel/index.html),
  [`vmcore`](https://openvmm.dev/rustdoc/linux/vmcore/index.html), and
  [`storvsp`](https://openvmm.dev/rustdoc/linux/storvsp/index.html).

How was the change tested?
- ✅ `cargo doc --no-deps -p vmbus_channel -p vmcore -p storvsp` — no warnings
- ✅ All Guide cross-links verified
- ✅ This is the combined PR; individual pieces are in separate PRs
  for independent review

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattkur mattkur force-pushed the guide/storage-channels-combined branch from 3bad991 to 5b79eea Compare March 13, 2026 19:31
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mattkur mattkur closed this Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Guide unsafe Related to unsafe code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant