vmm: linux: Do not use guest_memfd outside of TEE builds (fixes #478) #479
+15
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
aarch64 KVM has recently introduced guest_memfd support, but since there are no VM TEEs with upstream support on that arch, it returns EINVAL when we try to create a non-mappable memfd (which is what flags==0 implies).
Then.. even if we make it mappable and skip setting the private flag, we get a 100% CPU busy loop in the guest. Same happens in QEMU though so that's not a libkrun bug. Still, let's avoid all of that by not trying to use guest_memfd for protecting the VM's memory outside of platforms where that's explicitly supported (SEV/TDX).