Skip to content

uefi_nvram_storage: save restore nvram contents #1556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 25, 2025

Conversation

tjones60
Copy link
Contributor

@tjones60 tjones60 commented Jun 19, 2025

Implement save/restore for HclCompatNvram/NvramStorage/InMemoryNvram so that OpenHCL doesn't need to re-read from the VMGS file after a servicing or other save-restore operation. This will help avoid panics if the VMGS file is not accessible in certain VM teardown cases.

@tjones60 tjones60 requested review from a team as code owners June 19, 2025 22:32
@chris-oo
Copy link
Member

needs description and rationale

@tjones60 tjones60 force-pushed the save_restore_vmgs branch from 10a6057 to 98d6dbe Compare June 20, 2025 00:09
@tjones60 tjones60 force-pushed the save_restore_vmgs branch from d7360b4 to e0ce7df Compare June 20, 2025 23:50
Copy link
Member

@chris-oo chris-oo left a comment

Choose a reason for hiding this comment

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

seems reasonable to me

@tjones60 tjones60 merged commit e643d87 into microsoft:main Jun 25, 2025
28 checks passed
tjones60 added a commit to tjones60/openvmm that referenced this pull request Jun 27, 2025
Implement save/restore for HclCompatNvram/NvramStorage/InMemoryNvram so
that OpenHCL doesn't need to re-read from the VMGS file after a
servicing or other save-restore operation. This will help avoid panics
if the VMGS file is not accessible in certain VM teardown cases.
@mebersol mebersol added the backport_2505 Change should be backported to the release/2505 branch label Jul 9, 2025
tjones60 added a commit to tjones60/openvmm that referenced this pull request Jul 10, 2025
Implement save/restore for HclCompatNvram/NvramStorage/InMemoryNvram so
that OpenHCL doesn't need to re-read from the VMGS file after a
servicing or other save-restore operation. This will help avoid panics
if the VMGS file is not accessible in certain VM teardown cases.
@mebersol mebersol added the backport_2411 Change should be backported to the release/2411 branch label Jul 14, 2025
tjones60 added a commit to tjones60/openvmm that referenced this pull request Jul 15, 2025
Implement save/restore for HclCompatNvram/NvramStorage/InMemoryNvram so
that OpenHCL doesn't need to re-read from the VMGS file after a
servicing or other save-restore operation. This will help avoid panics
if the VMGS file is not accessible in certain VM teardown cases.
tjones60 added a commit that referenced this pull request Jul 17, 2025
…1697)

Fix for a previous change that would have broken VMs that were serviced
to a new version of OpenHCL with the UEFI NVRAM saved state. The new
version would have skipped loading from storage since it was restoring,
and the saved state would have contained an empty Vec. This change
converts it to an Option<Vec<>> to distinguish between missing saved
state and no NVRAM entries. If the saved state is missing, the
HclCompatNvram will lazy load from storage like it did before.

Original PR here: #1556

This is something that should have been caught by cross-version
servicing tests, which don't exist currently. We should follow up to add
that soon.
tjones60 added a commit to tjones60/openvmm that referenced this pull request Jul 17, 2025
…icrosoft#1697)

Fix for a previous change that would have broken VMs that were serviced
to a new version of OpenHCL with the UEFI NVRAM saved state. The new
version would have skipped loading from storage since it was restoring,
and the saved state would have contained an empty Vec. This change
converts it to an Option<Vec<>> to distinguish between missing saved
state and no NVRAM entries. If the saved state is missing, the
HclCompatNvram will lazy load from storage like it did before.

Original PR here: microsoft#1556

This is something that should have been caught by cross-version
servicing tests, which don't exist currently. We should follow up to add
that soon.
tjones60 added a commit that referenced this pull request Jul 18, 2025
Implement save/restore for HclCompatNvram/NvramStorage/InMemoryNvram so
that OpenHCL doesn't need to re-read from the VMGS file after a
servicing or other save-restore operation. This will help avoid panics
if the VMGS file is not accessible in certain VM teardown cases.
@benhillis
Copy link
Member

Backported in #1675

@benhillis benhillis added backported_2505 PR that has been backported to release/2505 and removed backport_2505 Change should be backported to the release/2505 branch labels Jul 18, 2025
@benhillis
Copy link
Member

Backported in #1675

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport_2411 Change should be backported to the release/2411 branch backported_2505 PR that has been backported to release/2505
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants