All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/9] i386: KVM: expand Hyper-V features early
@ 2021-06-03 11:48 Vitaly Kuznetsov
  2021-06-03 11:48 ` [PATCH v7 1/9] i386: avoid hardcoding '12' as 'hyperv_vendor_id' length Vitaly Kuznetsov
                   ` (9 more replies)
  0 siblings, 10 replies; 28+ messages in thread
From: Vitaly Kuznetsov @ 2021-06-03 11:48 UTC (permalink / raw)
  To: qemu-devel, Eduardo Habkost; +Cc: Paolo Bonzini, Marcelo Tosatti, Igor Mammedov

Changes since v6 [Eduardo]:
- First 14 patches of v6 made it upstream!
- New patches addressing feedback on the already merged patches added:
  i386: make hyperv_expand_features() return bool
  i386: hardcode supported eVMCS version to '1'
  i386: clarify 'hv-passthrough' behavior
  i386: avoid hardcoding '12' as 'hyperv_vendor_id' length
- Some comments expanded.
- HV_HYPERCALL_AVAILABLE setting moved to hyperv_fill_cpuids()

Note: Windows guest on QEMU are currently completely broken, see Claudio's
https://lore.kernel.org/kvm/20210529091313.16708-1-cfontana@suse.de/

The last two functional patches are inspired by 'Fine-grained access check
to Hyper-V hypercalls and MSRs' work for KVM:
https://lore.kernel.org/kvm/20210521095204.2161214-1-vkuznets@redhat.com/

Original description:

Upper layer tools like libvirt want to figure out which Hyper-V features are
supported by the underlying stack (QEMU/KVM) but currently they are unable to
do so. We have a nice 'hv_passthrough' CPU flag supported by QEMU but it has
no effect on e.g. QMP's 

query-cpu-model-expansion type=full model={"name":"host","props":{"hv-passthrough":true}}

command as we parse Hyper-V features after creating KVM vCPUs and not at
feature expansion time. To support the use-case we first need to make 
KVM_GET_SUPPORTED_HV_CPUID ioctl a system-wide ioctl as the existing
vCPU version can't be used that early. This is what KVM part does. With
that done, we can make early Hyper-V feature expansion (this series).

Vitaly Kuznetsov (9):
  i386: avoid hardcoding '12' as 'hyperv_vendor_id' length
  i386: clarify 'hv-passthrough' behavior
  i386: hardcode supported eVMCS version to '1'
  i386: make hyperv_expand_features() return bool
  i386: expand Hyper-V features during CPU feature expansion time
  i386: kill off hv_cpuid_check_and_set()
  i386: HV_HYPERCALL_AVAILABLE privilege bit is always needed
  i386: Hyper-V SynIC requires POST_MESSAGES/SIGNAL_EVENTS priviliges
  qtest/hyperv: Introduce a simple hyper-v test

 MAINTAINERS                    |   1 +
 docs/hyperv.txt                |   9 +-
 target/i386/cpu.c              |  13 +-
 target/i386/kvm/hyperv-proto.h |   6 +
 target/i386/kvm/kvm-stub.c     |   5 +
 target/i386/kvm/kvm.c          | 166 ++++++++++++------------
 target/i386/kvm/kvm_i386.h     |   1 +
 tests/qtest/hyperv-test.c      | 225 +++++++++++++++++++++++++++++++++
 tests/qtest/meson.build        |   3 +-
 9 files changed, 337 insertions(+), 92 deletions(-)
 create mode 100644 tests/qtest/hyperv-test.c

-- 
2.31.1



^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2021-07-08 21:00 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-03 11:48 [PATCH v7 0/9] i386: KVM: expand Hyper-V features early Vitaly Kuznetsov
2021-06-03 11:48 ` [PATCH v7 1/9] i386: avoid hardcoding '12' as 'hyperv_vendor_id' length Vitaly Kuznetsov
2021-06-03 22:27   ` Eduardo Habkost
2021-07-08 20:57   ` Eduardo Habkost
2021-06-03 11:48 ` [PATCH v7 2/9] i386: clarify 'hv-passthrough' behavior Vitaly Kuznetsov
2021-06-03 22:28   ` Eduardo Habkost
2021-06-03 11:48 ` [PATCH v7 3/9] i386: hardcode supported eVMCS version to '1' Vitaly Kuznetsov
2021-06-03 22:35   ` Eduardo Habkost
2021-06-04  7:28     ` Vitaly Kuznetsov
2021-06-04 19:00       ` Eduardo Habkost
2021-06-07  8:38         ` Vitaly Kuznetsov
2021-06-03 11:48 ` [PATCH v7 4/9] i386: make hyperv_expand_features() return bool Vitaly Kuznetsov
2021-06-03 22:39   ` Eduardo Habkost
2021-06-03 11:48 ` [PATCH v7 5/9] i386: expand Hyper-V features during CPU feature expansion time Vitaly Kuznetsov
2021-06-03 22:43   ` Eduardo Habkost
2021-06-04  7:31     ` Vitaly Kuznetsov
2021-06-03 11:48 ` [PATCH v7 6/9] i386: kill off hv_cpuid_check_and_set() Vitaly Kuznetsov
2021-06-03 11:48 ` [PATCH v7 7/9] i386: HV_HYPERCALL_AVAILABLE privilege bit is always needed Vitaly Kuznetsov
2021-06-03 22:43   ` Eduardo Habkost
2021-06-03 11:48 ` [PATCH v7 8/9] i386: Hyper-V SynIC requires POST_MESSAGES/SIGNAL_EVENTS priviliges Vitaly Kuznetsov
2021-06-03 23:00   ` Eduardo Habkost
2021-06-04  7:35     ` Vitaly Kuznetsov
2021-06-07 16:45       ` Eduardo Habkost
2021-06-04 14:06   ` Eric Blake
2021-06-03 11:48 ` [PATCH v7 9/9] qtest/hyperv: Introduce a simple hyper-v test Vitaly Kuznetsov
2021-06-03 23:17   ` Eduardo Habkost
2021-06-04  7:40     ` Vitaly Kuznetsov
2021-07-07 13:59 ` [PATCH v7 0/9] i386: KVM: expand Hyper-V features early Eduardo Habkost

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.