Re: [PATCH v4] KVM: x86: Fix KVM_GET_CPUID2 ioctl to return cpuid entries count

From: Paolo Bonzini
Date: Tue May 04 2021 - 05:50:28 EST


On 04/05/21 11:26, Alexander Graf wrote:


On 04.05.21 10:21, Paolo Bonzini wrote:

On 04/05/21 10:15, Denis V. Lunev wrote:
As far as I understand only some testing within kernel now.
Though we have plans to expose it for QAPI as the series
in QEMU
   [PATCH 1/2] qapi: fix error handling for x-vz-query-cpu-model-cpuid
   [PATCH 2/2] qapi: blacklisted x-vz-query-cpu-model-cpuid in tests
is not coming in a good way.
The idea was to avoid manual code rework in QEMU and
expose collected model at least for debug.

KVM_GET_CPUID2 as a VM ioctl cannot expose the whole truth about CPUID
either, since it doesn't handle the TSX_CTRL_CPUID_CLEAR bit.  Given
that QEMU doesn't need KVM_GET_CPUID2; it only needs to save whatever it
passed to KVM_SET_CPUID2.

What if we instead deflect CPUID into user space so it can emulate it in whatever way it likes? Is the performance difference going to be relevant? Are people still using cpuid as barrier these days?

There's enough weirdness in CPUID (e.g. the magic redirection of unknown leaves to the highest Intel leaf) to make it relatively hard to implement correctly. So I think it should remain in the kernel.

Paolo