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

From: Isaku Yamahata
Date: Wed Mar 06 2024 - 21:10:09 EST


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.
--
Isaku Yamahata <isaku.yamahata@xxxxxxxxxxxxxxx>