[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 4 Apr 2024 09:38:01 -0700
From: Sean Christopherson <seanjc@...gle.com>
To: Binbin Wu <binbin.wu@...ux.intel.com>
Cc: Pankaj Gupta <pankaj.gupta@....com>, Paolo Bonzini <pbonzini@...hat.com>, kvm@...r.kernel.org,
linux-kernel@...r.kernel.org, Yan Zhao <yan.y.zhao@...el.com>,
Isaku Yamahata <isaku.yamahata@...el.com>, Michael Roth <michael.roth@....com>,
Yu Zhang <yu.c.zhang@...ux.intel.com>, Chao Peng <chao.p.peng@...ux.intel.com>,
Fuad Tabba <tabba@...gle.com>, David Matlack <dmatlack@...gle.com>
Subject: Re: [PATCH 01/16] KVM: x86/mmu: Exit to userspace with -EFAULT if
private fault hits emulation
On Tue, Mar 12, 2024, Binbin Wu wrote:
>
> On 3/7/2024 8:52 PM, Gupta, Pankaj wrote:
> > > Exit to userspace with -EFAULT / KVM_EXIT_MEMORY_FAULT if a private fault
> > > triggers emulation of any kind, as KVM doesn't currently support
> > > emulating access to guest private memory. Practically speaking, private
> > > faults and emulation are already mutually exclusive, but there are edge
> > > cases upon edge cases where KVM can return RET_PF_EMULATE, and adding one
> > > last check
> >
> > edge cases upon edge cases?
> >
> > Just curious about the details of the edge cases scenarios?
>
> Same question out of curiosity.
Accesses that hit the APIC-access page and gfns that are write-tracked, are the
two most likely candidates. Even plain old emulated MMIO falls into this bucket,
e.g. if KVM botched things and generated a RSVD fault on a private mapping. I'll
reword that line to
faults and emulation are already mutually exclusive, but there are many
flows that can result in KVM returning RET_PF_EMULATE, and adding one last
check to harden against weird, unexpected combinations and/or KVM bugs is
inexpensive.
to make it sound less dramatic/hand-wavy.
Powered by blists - more mailing lists