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.
Paolo
"failures" that are squashed and never propagated to userspace (PV
features tend to do this), page splits, etc.