Re: [PATCH v2 0/7] x86/kvm/hyper-v: Implement KVM_GET_SUPPORTED_HV_CPUID

Paolo Bonzini
2018-12-14T10:49:40Z

On 10/12/18 18:21, Vitaly Kuznetsov wrote:
> Changes since v1:
> - Add Michael's R-b tags.
> - Document KVM_GET_SUPPORTED_HV_CPUID and KVM_CAP_HYPERV_CPUID.
> - Fix error handling in kvm_vcpu_ioctl_get_hv_cpuid().
> - Check for -E2BIG in the selftest. PATCH6 is added to support the change.
>
> As suggested by Paolo, introduce new KVM_GET_SUPPORTED_HV_CPUID returning
> all Hyper-V CPUID feature leaves, this way we won't need to add a new
> KVM_CAP_HYPERV_* for every new Hyper-V enlightenment we implement in
> KVM.
>
> (Using the existing KVM_GET_SUPPORTED_CPUID doesn't seem to be possible:
> Hyper-V CPUID feature leaves intersect with KVM's (e.g. 0x40000000,
> 0x40000001) and we would probably confuse userspace in case we decide to
> return these twice).
>
> This patch series also does some housekeeping work in hyperv-tlfs.h, adds a
> simple selftest (that's how I actually checked that the newly added ioctl
> works) and removes recently added KVM_CAP_HYPERV_STIMER_DIRECT before it's
> too late.
>
> Vitaly Kuznetsov (7):
> x86/hyper-v: Do some housekeeping in hyperv-tlfs.h
> x86/hyper-v: Drop HV_X64_CONFIGURE_PROFILER definition
> x86/kvm/hyper-v: Introduce nested_get_evmcs_version() helper
> x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID
> x86/kvm/hyper-v: Drop KVM_CAP_HYPERV_STIMER_DIRECT
> KVM: selftests: implement an unchecked version of vcpu_ioctl()
> KVM: selftests: Add hyperv_cpuid test
>
> Documentation/virtual/kvm/api.txt | 57 ++++++
> arch/x86/include/asm/hyperv-tlfs.h | 185 +++++++++---------
> arch/x86/include/asm/kvm_host.h | 1 +
> arch/x86/kvm/hyperv.c | 125 +++++++++++-
> arch/x86/kvm/hyperv.h | 2 +
> arch/x86/kvm/svm.c | 7 +
> arch/x86/kvm/vmx.c | 24 ++-
> arch/x86/kvm/x86.c | 21 +-
> include/uapi/linux/kvm.h | 5 +-
> tools/testing/selftests/kvm/Makefile | 1 +
> .../testing/selftests/kvm/include/kvm_util.h | 2 +
> tools/testing/selftests/kvm/lib/kvm_util.c | 14 +-
> .../selftests/kvm/x86_64/hyperv_cpuid.c | 157 +++++++++++++++
> 13 files changed, 493 insertions(+), 108 deletions(-)
> create mode 100644 tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c
>

Queued, thanks. I moved this above the direct EOI series so that
KVM_CAP_HYPERV_STIMER_DIRECT need not exist at any point of the history.

Paolo