Re: [PATCH] kvm/x86: reserve bit KVM_HINTS_PHYS_ADDRESS_SIZE_DATA_VALID

From: Sean Christopherson
Date: Wed Sep 21 2022 - 11:00:50 EST


On Wed, Sep 21, 2022, Gerd Hoffmann wrote:
> On Fri, Sep 09, 2022 at 07:02:24AM +0200, Gerd Hoffmann wrote:
> > On Thu, Sep 08, 2022 at 02:52:36PM +0000, Sean Christopherson wrote:
> > > On Thu, Sep 08, 2022, Gerd Hoffmann wrote:
> > > > -#define KVM_HINTS_REALTIME 0
> > > > +#define KVM_HINTS_REALTIME 0
> > > > +#define KVM_HINTS_PHYS_ADDRESS_SIZE_DATA_VALID 1
> > >
> > > Why does KVM need to get involved? This is purely a userspace problem.
> >
> > It doesn't. I only need reserve a hints bit, and the canonical source
> > for that happens to live in the kernel. That's why this patch doesn't
> > touch any actual code ;)

The issue is that this "hint" effectively breaks other VMMs that already provide
an accurate guest.MAXPHYADDR.

> > > E.g. why not use QEMU's fw_cfg to communicate this information to the
> > > guest?
> >
> > That is indeed the other obvious way to implement this. Given this
> > information will be needed in code paths which already do CPUID queries
> > using CPUID to transport that information looked like the better option
> > to me.
>
> I'd like to move forward with this.
>
> So, any comment further comments and opinions?
> Is it ok to grab a hints bit given the explanation above?
> Or should I go for the fw_cfg approach?

My strong preference is the fw_cfg approach, or if the guest side really wants to
use CPUID, have QEMU define it's own CPUID signature and provide QEMU-specific
hints/quirks that way.