-
Notifications
You must be signed in to change notification settings - Fork 133
uefi_nvram_storage: save restore nvram contents (#1556) #1675
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
uefi_nvram_storage: save restore nvram contents (#1556) #1675
Conversation
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.
Does this work in case the 'source' VM did not save NVRAM state? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please confirm that servicing to/from builds with this fix can work?
Fix here: I'll update this PR once that goes in. |
…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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.