Skip to content

Support illumos#15143 data and vCPU pause/resume#367

Merged
pfmooney merged 1 commit into
oxidecomputer:masterfrom
pfmooney:il15143
Apr 10, 2023
Merged

Support illumos#15143 data and vCPU pause/resume#367
pfmooney merged 1 commit into
oxidecomputer:masterfrom
pfmooney:il15143

Conversation

@pfmooney

@pfmooney pfmooney commented Apr 7, 2023

Copy link
Copy Markdown
Contributor

With the integration of illumos#15143, additional pending interrupt and exception state for guest vCPUs is exposed to userspace. In order to take a consistent snapshot of said state, as well as the guest devices emulated in-kernel, propolis-server needs to issue VM_PAUSE requests prior to exporting or importing state, and VM_RESUME requests when starting a VM after a migration.

Importation of the "new" vCPU state is guarded with a version check for now, so that propolis continues to work on hosts which have not yet updated to bits featuring illumos#15143.

Closes #291 as well.

@pfmooney pfmooney requested a review from gjcolombo April 7, 2023 03:02

@gjcolombo gjcolombo 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.

LGTM, just a couple of nits and one possible test improvement. Thanks for putting this together!

Comment thread lib/propolis/src/vcpu.rs Outdated
Comment thread crates/bhyve-api/src/lib.rs Outdated
Comment thread bin/propolis-server/src/lib/vm/state_driver.rs Outdated
With the integration of illumos#15143, additional pending interrupt and
exception state for guest vCPUs is exposed to userspace.  In order to
take a consistent snapshot of said state, as well as the guest devices
emulated in-kernel, propolis-server needs to issue VM_PAUSE requests
prior to exporting or importing state, and VM_RESUME requests when
starting a VM after a migration.

Importation of the "new" vCPU state is guarded with a version check for
now, so that propolis continues to work on hosts which have not yet
updated to bits featuring illumos#15143.
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.

propolis-server should use pause/resume ioctls

2 participants