mbox series

[v4,0/6] i386: Enable newly introduced KVM Hyper-V enlightenments

Message ID 20220525115949.1294004-1-vkuznets@redhat.com (mailing list archive)
Headers show
Series i386: Enable newly introduced KVM Hyper-V enlightenments | expand

Message

Vitaly Kuznetsov May 25, 2022, 11:59 a.m. UTC
Changes since v3:
- Rebase, resolve merge conflict with 73d24074078a ("hyperv: Add support to
  process syndbg commands")
- Include "i386: docs:  Convert hyperv.txt to rST" patch which was previously
  posted separately.

Original description:

This series enables four new KVM Hyper-V enlightenmtes:

'XMM fast hypercall input feature' is supported by KVM since v5.14,
it allows for faster Hyper-V hypercall processing.

'Enlightened MSR-Bitmap' is a new nested specific enlightenment speeds up
L2 vmexits by avoiding unnecessary updates to L2 MSR-Bitmap. KVM support
for the feature on Intel CPUs is in v5.17 and in  5.18 for AMD CPUs.

'Extended GVA ranges for TLB flush hypercalls' indicates that extended GVA
ranges are allowed to be passed to Hyper-V TLB flush hypercalls.

'Direct TLB flush hypercall' features allows L0 (KVM) to directly handle 
L2's TLB flush hypercalls without the need to exit to L1 (Hyper-V).

The last two features are not merged in KVM yet:
https://lore.kernel.org/kvm/20220525090133.1264239-1-vkuznets@redhat.com/
however, there's no direct dependency on the kernel part as thanks to
KVM_GET_SUPPORTED_HV_CPUID no new capabilities are introduced.

Vitaly Kuznetsov (6):
  i386: Use hv_build_cpuid_leaf() for HV_CPUID_NESTED_FEATURES
  i386: Hyper-V Enlightened MSR bitmap feature
  i386: Hyper-V XMM fast hypercall input feature
  i386: Hyper-V Support extended GVA ranges for TLB flush hypercalls
  i386: Hyper-V Direct TLB flush hypercall
  i386: docs:  Convert hyperv.txt to rST

 docs/hyperv.txt                | 270 -------------------------------
 docs/system/i386/hyperv.rst    | 288 +++++++++++++++++++++++++++++++++
 docs/system/target-i386.rst    |   1 +
 target/i386/cpu.c              |   8 +
 target/i386/cpu.h              |   5 +-
 target/i386/kvm/hyperv-proto.h |   9 +-
 target/i386/kvm/kvm.c          |  55 +++++--
 7 files changed, 354 insertions(+), 282 deletions(-)
 delete mode 100644 docs/hyperv.txt
 create mode 100644 docs/system/i386/hyperv.rst

Comments

Paolo Bonzini May 25, 2022, 1:46 p.m. UTC | #1
On 5/25/22 13:59, Vitaly Kuznetsov wrote:
> Changes since v3:
> - Rebase, resolve merge conflict with 73d24074078a ("hyperv: Add support to
>    process syndbg commands")
> - Include "i386: docs:  Convert hyperv.txt to rST" patch which was previously
>    posted separately.

Thank you very much for reposting this.

Paolo

> Original description:
> 
> This series enables four new KVM Hyper-V enlightenmtes:
> 
> 'XMM fast hypercall input feature' is supported by KVM since v5.14,
> it allows for faster Hyper-V hypercall processing.
> 
> 'Enlightened MSR-Bitmap' is a new nested specific enlightenment speeds up
> L2 vmexits by avoiding unnecessary updates to L2 MSR-Bitmap. KVM support
> for the feature on Intel CPUs is in v5.17 and in  5.18 for AMD CPUs.
> 
> 'Extended GVA ranges for TLB flush hypercalls' indicates that extended GVA
> ranges are allowed to be passed to Hyper-V TLB flush hypercalls.
> 
> 'Direct TLB flush hypercall' features allows L0 (KVM) to directly handle
> L2's TLB flush hypercalls without the need to exit to L1 (Hyper-V).
> 
> The last two features are not merged in KVM yet:
> https://lore.kernel.org/kvm/20220525090133.1264239-1-vkuznets@redhat.com/
> however, there's no direct dependency on the kernel part as thanks to
> KVM_GET_SUPPORTED_HV_CPUID no new capabilities are introduced.
> 
> Vitaly Kuznetsov (6):
>    i386: Use hv_build_cpuid_leaf() for HV_CPUID_NESTED_FEATURES
>    i386: Hyper-V Enlightened MSR bitmap feature
>    i386: Hyper-V XMM fast hypercall input feature
>    i386: Hyper-V Support extended GVA ranges for TLB flush hypercalls
>    i386: Hyper-V Direct TLB flush hypercall
>    i386: docs:  Convert hyperv.txt to rST
> 
>   docs/hyperv.txt                | 270 -------------------------------
>   docs/system/i386/hyperv.rst    | 288 +++++++++++++++++++++++++++++++++
>   docs/system/target-i386.rst    |   1 +
>   target/i386/cpu.c              |   8 +
>   target/i386/cpu.h              |   5 +-
>   target/i386/kvm/hyperv-proto.h |   9 +-
>   target/i386/kvm/kvm.c          |  55 +++++--
>   7 files changed, 354 insertions(+), 282 deletions(-)
>   delete mode 100644 docs/hyperv.txt
>   create mode 100644 docs/system/i386/hyperv.rst
>