[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/1] cpu: report hyperv feature words through
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/1] cpu: report hyperv feature words through qom |
Date: |
Tue, 21 Jun 2016 14:00:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 |
On 20/06/2016 17:29, Denis V. Lunev wrote:
> +static int hyperv_handle_properties(CPUState *cs)
> +{
> + X86CPU *cpu = X86_CPU(cs);
> + CPUX86State *env = &cpu->env;
> +
> + if (cpu->hyperv_relaxed_timing) {
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_HYPERCALL_AVAILABLE;
> + }
> + if (cpu->hyperv_vapic) {
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_HYPERCALL_AVAILABLE;
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_APIC_ACCESS_AVAILABLE;
> + has_msr_hv_vapic = true;
> + }
> + if (cpu->hyperv_time &&
> + kvm_check_extension(cs->kvm_state, KVM_CAP_HYPERV_TIME) > 0) {
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_HYPERCALL_AVAILABLE;
> + env->features[FEAT_HYPERV_EAX] |=
> HV_X64_MSR_TIME_REF_COUNT_AVAILABLE;
> + env->features[FEAT_HYPERV_EAX] |= 0x200;
> + has_msr_hv_tsc = true;
> + }
> + if (cpu->hyperv_crash && has_msr_hv_crash) {
> + env->features[FEAT_HYPERV_EDX] |= HV_X64_GUEST_CRASH_MSR_AVAILABLE;
> + }
> + if (cpu->hyperv_reset && has_msr_hv_reset) {
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_RESET_AVAILABLE;
> + }
> + if (cpu->hyperv_vpindex && has_msr_hv_vpindex) {
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_VP_INDEX_AVAILABLE;
> + }
> + if (cpu->hyperv_runtime && has_msr_hv_runtime) {
> + env->features[FEAT_HYPERV_EAX] |= HV_X64_MSR_VP_RUNTIME_AVAILABLE;
Yay, thanks for this!
I'm curious if there's anything more you need to support "-cpu
...,hv_time,enforce", and have it fail if KVM_CAP_HYPERV_TIME is not
available.
Thanks,
Paolo