Re: [RFC PATCH 0/8] KVM: Prepopulate guest memory API

From: Isaku Yamahata
Date: Tue Mar 19 2024 - 12:33:25 EST


On Wed, Mar 06, 2024 at 06:09:54PM -0800,
Isaku Yamahata <isaku.yamahata@xxxxxxxxxxxxxxx> wrote:

> On Wed, Mar 06, 2024 at 04:53:41PM -0800,
> David Matlack <dmatlack@xxxxxxxxxx> wrote:
>
> > On 2024-03-01 09:28 AM, isaku.yamahata@xxxxxxxxx wrote:
> > > From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>
> > >
> > > Implementation:
> > > - x86 KVM MMU
> > > In x86 KVM MMU, I chose to use kvm_mmu_do_page_fault(). It's not confined to
> > > KVM TDP MMU. We can restrict it to KVM TDP MMU and introduce an optimized
> > > version.
> >
> > Restricting to TDP MMU seems like a good idea. But I'm not quite sure
> > how to reliably do that from a vCPU context. Checking for TDP being
> > enabled is easy, but what if the vCPU is in guest-mode?
>
> As you pointed out in other mail, legacy KVM MMU support or guest-mode will be
> troublesome. The use case I supposed is pre-population before guest runs, the
> guest-mode wouldn't matter. I didn't add explicit check for it, though.
>
> Any use case while vcpus running?
>
>
> > Perhaps we can just return an error out to userspace if the vCPU is in
> > guest-mode or TDP is disabled, and make it userspace's problem to do
> > memory mapping before loading any vCPU state.
>
> If the use case for default VM or sw-proteced VM is to avoid excessive kvm page
> fault at guest boot, error on guest-mode or disabled TDP wouldn't matter.

Any input? If no further input, I assume the primary use case is pre-population
before guest running.
--
Isaku Yamahata <isaku.yamahata@xxxxxxxxx>