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

From: Xiaoyao Li
Date: Thu Sep 22 2022 - 01:40:32 EST


On 9/22/2022 12:32 AM, Jim Mattson wrote:
On Wed, Sep 21, 2022 at 8:00 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote:

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.

Any VMM that doesn't provide an accurate guest.MAXPHYADDR is broken.

I stand for it as well.

To me, it looks an old QEMU bug and firmware provided a workaround for the bug that doesn't trust guest's CPUID.0x80000008. IMHO, (guest) firmware should always trust CPUID and error out if MAXPHYADDR reported from CPUID is broken to force VMM fixing itself to provide correct CPUID info. But letting firmware drop the workaround surely breaks backwards compatibility.

Why do we need a "hint" that the virtual processor works?