-
Notifications
You must be signed in to change notification settings - Fork 2k
[WIP] fix(vmm): Do not store UFFD handle in VMM #5341
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
[WIP] fix(vmm): Do not store UFFD handle in VMM #5341
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## feature/secret-hiding #5341 +/- ##
=========================================================
- Coverage 81.96% 81.91% -0.06%
=========================================================
Files 250 250
Lines 27570 27571 +1
=========================================================
- Hits 22599 22584 -15
- Misses 4971 4987 +16
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
9ec5372
to
e928650
Compare
e296ba2
to
0c80a95
Compare
bbb0dee
to
efff1a4
Compare
5611b1f
to
5775fb4
Compare
This is to unregister all UFFD ranges when the UFFD handler is disconnected so that no further UFFD message is sent if the handler is not longer available.
The test verifies that if the fault-all handler exits, the VM is still functional. THe test is mostly relevant to Secret Free VMs. Signed-off-by: Nikita Kalyazin <[email protected]>
5775fb4
to
84c4313
Compare
We can't do that for functional and security reasons, see the comment for |
Changes
Do not store UFFD handle in VMM. The UFFD object gets dropped as soon as the last reference to it (in the handler) goes away.
Reason
This is required to make sure no further UFFD messages will be sent to the handler that is no longer available to avoid an infinite lockup.
This is relevant for Secret Free VMs, because the UFFD handler uses
write
instead ofUFFDIO_COPY
to prepopulate guest memory and is not required to preinstall userspace page tables while doing it.License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license. For more information on following Developer
Certificate of Origin and signing off your commits, please check
CONTRIBUTING.md
.PR Checklist
[ ] I have runtools/devtool checkbuild --all
to verify that the PR passesbuild checks on all supported architectures.
tools/devtool checkstyle
to verify that the PR passes theautomated style checks.
how they are solving the problem in a clear and encompassing way.
[ ] I have updated any relevant documentation (both in code and in the docs)in the PR.
[ ] I have mentioned all user-facing changes inCHANGELOG.md
.[ ] If a specific issue led to this PR, this PR closes the issue.[ ] When making API changes, I have followed theRunbook for Firecracker API changes.
[ ] I have tested all new and changed functionalities in unit tests and/orintegration tests.
[ ] I have linked an issue to every newTODO
.rust-vmm
.