Skip to content

vmbus_server: use a separate max restore version#3715

Merged
SvenGroot merged 3 commits into
microsoft:mainfrom
SvenGroot:vmbus/max_restore_version
Jun 18, 2026
Merged

vmbus_server: use a separate max restore version#3715
SvenGroot merged 3 commits into
microsoft:mainfrom
SvenGroot:vmbus/max_restore_version

Conversation

@SvenGroot

Copy link
Copy Markdown
Member

in #3482, the restore process for VMBus was updated to respect the configured max protocol version and feature flags. However, this is not the behavior we necessarily want in all cases. For example, in OpenHCL we want to be able to allow a feature to be enabled for restore even if otherwise still disabled, so that we can later enable it once we know that all versions we might roll back to can support it.

For this reason, this change makes the version limit during restore operations a separately configurable value.

Copilot AI review requested due to automatic review settings June 10, 2026 22:54
@SvenGroot SvenGroot requested review from a team as code owners June 10, 2026 22:54

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 a separate, restore-specific VMBus max protocol/version limit so restore acceptance can be configured independently of the max version/feature flags offered during live negotiation (supporting rollback/servicing scenarios such as OpenHCL).

Changes:

  • Introduce max_restore_version on VmbusServerBuilder and plumb it into channels::Server.
  • Update restore codepaths to apply the restore-specific max version/feature mask.
  • Update OpenVMM wiring and unit tests to use the new restore compatibility setter.

Reviewed changes

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

Show a summary per file
File Description
vm/devices/vmbus/vmbus_server/src/lib.rs Adds builder option for max_restore_version and applies it during server construction.
vm/devices/vmbus/vmbus_server/src/channels.rs Adds max_restore_version storage and a setter; updates comments around version limiting.
vm/devices/vmbus/vmbus_server/src/channels/saved_state.rs Switches restore enforcement from max_version to max_restore_version.
vm/devices/vmbus/vmbus_server/src/channels/tests.rs Updates restore-related tests to configure restore compatibility directly.
openvmm/openvmm_core/src/worker/dispatch.rs Wires OpenVMM to set both live and restore max version values from config.

Comment thread vm/devices/vmbus/vmbus_server/src/channels/saved_state.rs
Comment thread vm/devices/vmbus/vmbus_server/src/channels/saved_state.rs
Comment thread vm/devices/vmbus/vmbus_server/src/channels.rs Outdated
Comment thread vm/devices/vmbus/vmbus_server/src/channels.rs Outdated
@SvenGroot SvenGroot merged commit 0110627 into microsoft:main Jun 18, 2026
67 checks passed
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.

4 participants