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.