qemu-e2k/target/i386
Vitaly Kuznetsov 6760bd2002 i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID
KVM now supports reporting supported Hyper-V features through CPUID
(KVM_GET_SUPPORTED_HV_CPUID ioctl). Going forward, this is going to be
the only way to announce new functionality and this has already happened
with Direct Mode stimers.

While we could just support KVM_GET_SUPPORTED_HV_CPUID for new features,
it seems to be beneficial to use it for all Hyper-V enlightenments when
possible. This way we can implement 'hv-all' pass-through mode giving the
guest all supported Hyper-V features even when QEMU knows nothing about
them.

Implementation-wise we create a new kvm_hyperv_properties structure
defining Hyper-V features, get_supported_hv_cpuid()/
get_supported_hv_cpuid_legacy() returning the supported CPUID set and
a bit over-engineered hv_cpuid_check_and_set() which we will also be
used to set cpu->hyperv_* properties for 'hv-all' mode.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Message-Id: <20190517141924.19024-3-vkuznets@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-06-21 02:29:38 +02:00
..
hvf cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
arch_dump.c
arch_memory_mapping.c
bpt_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
cc_helper_template.h
cc_helper.c
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h
cpu.c i386/kvm: convert hyperv enlightenments properties from bools to bits 2019-06-21 02:29:38 +02:00
cpu.h i386/kvm: convert hyperv enlightenments properties from bools to bits 2019-06-21 02:29:38 +02:00
excp_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
fpu_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
gdbstub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
hax-all.c hax: Honor CPUState::halted 2019-06-21 02:29:38 +02:00
hax-i386.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
hax-interface.h Clean up ill-advised or unusual header guards 2019-05-13 08:58:55 +02:00
hax-mem.c
hax-posix.c
hax-posix.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
hax-windows.c
hax-windows.h
helper.c qemu-common: Move tcg_enabled() etc. to sysemu/tcg.h 2019-06-11 20:22:09 +02:00
helper.h target/i386: Implement CPUID_EXT_RDRAND 2019-05-22 12:38:54 -04:00
hyperv-proto.h
hyperv-stub.c
hyperv.c i386/kvm: convert hyperv enlightenments properties from bools to bits 2019-06-21 02:29:38 +02:00
hyperv.h
int_helper.c target/i386: Implement CPUID_EXT_RDRAND 2019-05-22 12:38:54 -04:00
kvm_i386.h
kvm-stub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
kvm.c i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID 2019-06-21 02:29:38 +02:00
machine.c i386/kvm: convert hyperv enlightenments properties from bools to bits 2019-06-21 02:29:38 +02:00
Makefile.objs
mem_helper.c cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
misc_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
monitor.c target/i386: Simplify how x86_cpu_dump_local_apic_state() prints 2019-04-18 22:18:59 +02:00
mpx_helper.c
ops_sse_header.h
ops_sse.h
seg_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
sev_i386.h
sev-stub.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
sev.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
shift_helper_template.h
smm_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
svm_helper.c target/i386: Use env_cpu, env_archcpu 2019-06-10 07:03:42 -07:00
svm.h
TODO
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
translate.c target/i386: Implement CPUID_EXT_RDRAND 2019-05-22 12:38:54 -04:00
whp-dispatch.h Normalize position of header guard 2019-06-12 13:20:20 +02:00
whpx-all.c Use #include "..." for our own headers, <...> for others 2019-05-13 08:58:55 +02:00
xsave_helper.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00