On Mon, Feb 3, 2025 at 2:53 PM Sean Christopherson seanjc@google.com wrote:
On Mon, Feb 03, 2025, Paolo Bonzini wrote:
On 2/3/25 20:41, Sean Christopherson wrote:
-EFAULT isn't the problem, KVM not being able to return useful information in all situations is the issue.
Yes, that's why I don't want it to be an automatically opted-in API. If incremental improvements are possible, it may be useful to allow interested userspace to enable it early. For example...
Specifically, "guest" accesses that are emulated by KVM are problematic, because the -EFAULT from e.g. __kvm_write_guest_page() is disconnected from the code that actually kicks out to userspace. In that case, userspace will get KVM_EXIT_MMIO, not -EFAULT. There are more problems beyond KVM_EXIT_MMIO vs. -EFAULT, e.g. instructions that perform multiple memory accesses,
those are obviously synchronous and I expect VMware to handle them already.
That said my preferred solution to just use userfaultfd, which is synchronous by definition.
Oh, right, userfaultfd would be far better than piggybacking write-tracking.
Thanks. We will look into using userfaultfd.
Doug