On Fri, Sep 09, 2022, Vitaly Kuznetsov wrote: > Gerd Hoffmann <kraxel@xxxxxxxxxx> writes: > > > On Thu, Sep 08, 2022 at 02:52:36PM +0000, Sean Christopherson wrote: > >> On Thu, Sep 08, 2022, Gerd Hoffmann wrote: > > ... > > >> > arch/x86/include/uapi/asm/kvm_para.h | 3 ++- > >> > 1 file changed, 2 insertions(+), 1 deletion(-) > >> > > >> > diff --git a/arch/x86/include/uapi/asm/kvm_para.h b/arch/x86/include/uapi/asm/kvm_para.h > >> > index 6e64b27b2c1e..115bb34413cf 100644 > >> > --- a/arch/x86/include/uapi/asm/kvm_para.h > >> > +++ b/arch/x86/include/uapi/asm/kvm_para.h > >> > @@ -37,7 +37,8 @@ > >> > #define KVM_FEATURE_HC_MAP_GPA_RANGE 16 > >> > #define KVM_FEATURE_MIGRATION_CONTROL 17 > >> > > >> > -#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 ;) > > > >> 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. > > While this certainly looks like an overkill here, we could probably add > new, VMM-spefific CPUID leaves to KVM, e.g. > > 0x4000000A: VMM signature > 0x4000000B: VMM features > 0x4000000C: VMM quirks > ... > > this way VMMs (like QEMU) could identify themselves and suggest VMM > specific things to guests without KVM's involvement. Just if 'fw_cfg' is > not enough) I don't think KVM needs to get involved in that either. The de facto hypervisor CPUID standard already allows for multiple hypervisors/VMMs to announce themselves to the guest, e.g. QEMU could add itself as another VMM using 0x40000100 (shifted as necessary to accomodate KVM+Hyper-V).