Re: [PATCH 2/3] KVM: x86: Add support for VMware guest specific hypercalls

Doug Covelli
2025-02-03T20:35:52Z

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

--
This electronic communication and the information and any files transmitted
with it, or attached to it, are confidential and are intended solely for
the use of the individual or entity to whom it is addressed and may contain
information that is confidential, legally privileged, protected by privacy
laws, or otherwise restricted from disclosure to anyone else. If you are
not the intended recipient or the person responsible for delivering the
e-mail to the intended recipient, you are hereby notified that any use,
copying, distributing, dissemination, forwarding, printing, or copying of
this e-mail is strictly prohibited. If you received this e-mail in error,
please return the e-mail to the sender, delete it from your computer, and
destroy any printed copy of it.