[Qemu-devel] [PATCH 0/8] i386/kvm/hyper-v: refactor and implement 'hv-stimer-direct' and 'hv-all' enlightenments

Vitaly Kuznetsov posted 8 patches 5 years ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190329141832.22882-1-vkuznets@redhat.com
Maintainers: Eduardo Habkost <ehabkost@redhat.com>, Richard Henderson <rth@twiddle.net>, Paolo Bonzini <pbonzini@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>
docs/hyperv.txt            | 200 ++++++++++
target/i386/cpu.c          |   2 +
target/i386/cpu.h          |   2 +
target/i386/hyperv-proto.h |   1 +
target/i386/kvm.c          | 764 ++++++++++++++++++++++++++++---------
5 files changed, 785 insertions(+), 184 deletions(-)
create mode 100644 docs/hyperv.txt
[Qemu-devel] [PATCH 0/8] i386/kvm/hyper-v: refactor and implement 'hv-stimer-direct' and 'hv-all' enlightenments
Posted by Vitaly Kuznetsov 5 years ago
It has been a while since my 'RFC' and I apologize for that.

Changes since RFC:
- 'hv-all' is a migration blocker.
- all existing and newly added Hyper-V enlightenments are somewhat
  documented.

Original description:

The recently introduced Direct Mode for Hyper-V synthetic timers
enlightenment is only exposed through KVM_GET_SUPPORTED_HV_CPUID ioctl.
Take the opportunity and re-implement the way we handle Hyper-V
enlightenments in QEMU, add support for hv-stimer-direct and 'hv-all'
pass-through mode, add missing dependencies between enlightenments.

Vitaly Kuznetsov (8):
  i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID
  i386/kvm: move Hyper-V CPUID filling to hyperv_handle_properties()
  i386/kvm: document existing Hyper-V enlightenments
  i386/kvm: implement 'hv-all' pass-through mode
  i386/kvm: hv-evmcs requires hv-vapic
  i386/kvm: hv-stimer requires hv-time and hv-synic
  i386/kvm: hv-tlbflush/ipi require hv-vpindex
  i386/kvm: add support for Direct Mode for Hyper-V synthetic timers

 docs/hyperv.txt            | 200 ++++++++++
 target/i386/cpu.c          |   2 +
 target/i386/cpu.h          |   2 +
 target/i386/hyperv-proto.h |   1 +
 target/i386/kvm.c          | 764 ++++++++++++++++++++++++++++---------
 5 files changed, 785 insertions(+), 184 deletions(-)
 create mode 100644 docs/hyperv.txt

-- 
2.20.1