Re: [PATCH] KVM: x86: disable on 32-bit unless CONFIG_BROKEN

From: Sean Christopherson
Date: Tue Sep 27 2022 - 13:08:13 EST


On Mon, Sep 26, 2022, Paolo Bonzini wrote:
> 32-bit KVM has extra complications in the code due to:
>
> - different ways to write 64-bit values in VMCS
>
> - different handling of DS and ES selectors as well as FS/GS bases
>
> - lack of CR8 and EFER
>
> - lack of XFD
>

More for the list:

- SVM is effectively restricted to PAE kernels due to NX requirements

> - impossibility of writing 64-bit PTEs atomically

It's not impossible, just ugly. KVM could use CMPXCHG8B to do all of the accesses
for the TDP MMU, including the non-atomic reads and writes.

> The last is the big one, because it prevents from using the TDP MMU
> unconditionally.

As above, if the TDP MMU really is the sticking point, that's solvable.

The real justification for deprecating 32-bit KVM is that, outside of KVM developers,
literally no one uses 32-bit KVM. I.e. any amount of effort that is required to
continue supporting 32-bit kernels is a complete waste of resources.