On Tue, May 4, 2021 at 2:26 AM Alexander Graf graf@amazon.com 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?
What else would they use (in ring 3 code)? Sure, serialize is coming in Sapphire Rapids, but it will be 20+ years before kvm drops support for CPUs without serialize.
Alex
Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B Sitz: Berlin Ust-ID: DE 289 237 879