qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] i386/kvm: correct the meaning of '0xffffffff' value for hv-s


From: Eduardo Habkost
Subject: Re: [PATCH] i386/kvm: correct the meaning of '0xffffffff' value for hv-spinlocks
Date: Mon, 20 Jul 2020 15:40:39 -0400

On Fri, May 15, 2020 at 01:48:47PM +0200, Vitaly Kuznetsov wrote:
> Hyper-V TLFS prior to version 6.0 had a mistake in it: special value
> '0xffffffff' for CPUID 0x40000004.EBX was called 'never to retry', this
> looked weird (like why it's not '0' which supposedly have the same effect?)
> but nobody raised the question. In TLFS version 6.0 the mistake was
> corrected to 'never notify' which sounds logical. Fix QEMU accordingly.
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>

I've just found this buried in my inbox, sorry for missing it!

Queued for 5.2.

> ---
>  docs/hyperv.txt   | 2 +-
>  target/i386/cpu.c | 2 +-
>  target/i386/cpu.h | 4 ++--
>  target/i386/kvm.c | 4 ++--
>  4 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/docs/hyperv.txt b/docs/hyperv.txt
> index 6518b716a958..5df00da54fc4 100644
> --- a/docs/hyperv.txt
> +++ b/docs/hyperv.txt
> @@ -49,7 +49,7 @@ more efficiently. In particular, this enlightenment allows 
> paravirtualized
>  ======================
>  Enables paravirtualized spinlocks. The parameter indicates how many times
>  spinlock acquisition should be attempted before indicating the situation to 
> the
> -hypervisor. A special value 0xffffffff indicates "never to retry".
> +hypervisor. A special value 0xffffffff indicates "never notify".
>  
>  3.4. hv-vpindex
>  ================
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 7a4a8e3847f0..5bb9a8017523 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -7133,7 +7133,7 @@ static Property x86_cpu_properties[] = {
>      DEFINE_PROP_BOOL("pmu", X86CPU, enable_pmu, false),
>  
>      DEFINE_PROP_UINT32("hv-spinlocks", X86CPU, hyperv_spinlock_attempts,
> -                       HYPERV_SPINLOCK_NEVER_RETRY),
> +                       HYPERV_SPINLOCK_NEVER_NOTIFY),
>      DEFINE_PROP_BIT64("hv-relaxed", X86CPU, hyperv_features,
>                        HYPERV_FEAT_RELAXED, 0),
>      DEFINE_PROP_BIT64("hv-vapic", X86CPU, hyperv_features,
> diff --git a/target/i386/cpu.h b/target/i386/cpu.h
> index 408392dbf6f4..80253d1c373b 100644
> --- a/target/i386/cpu.h
> +++ b/target/i386/cpu.h
> @@ -980,8 +980,8 @@ typedef uint64_t FeatureWordArray[FEATURE_WORDS];
>  #define HYPERV_FEAT_IPI                 13
>  #define HYPERV_FEAT_STIMER_DIRECT       14
>  
> -#ifndef HYPERV_SPINLOCK_NEVER_RETRY
> -#define HYPERV_SPINLOCK_NEVER_RETRY             0xFFFFFFFF
> +#ifndef HYPERV_SPINLOCK_NEVER_NOTIFY
> +#define HYPERV_SPINLOCK_NEVER_NOTIFY             0xFFFFFFFF
>  #endif
>  
>  #define EXCP00_DIVZ  0
> diff --git a/target/i386/kvm.c b/target/i386/kvm.c
> index 34f838728dd6..28e9c73cc2a5 100644
> --- a/target/i386/kvm.c
> +++ b/target/i386/kvm.c
> @@ -731,7 +731,7 @@ static bool hyperv_enabled(X86CPU *cpu)
>  {
>      CPUState *cs = CPU(cpu);
>      return kvm_check_extension(cs->kvm_state, KVM_CAP_HYPERV) > 0 &&
> -        ((cpu->hyperv_spinlock_attempts != HYPERV_SPINLOCK_NEVER_RETRY) ||
> +        ((cpu->hyperv_spinlock_attempts != HYPERV_SPINLOCK_NEVER_NOTIFY) ||
>           cpu->hyperv_features || cpu->hyperv_passthrough);
>  }
>  
> @@ -1201,7 +1201,7 @@ static int hyperv_handle_properties(CPUState *cs,
>              env->features[FEAT_HV_RECOMM_EAX] = c->eax;
>  
>              /* hv-spinlocks may have been overriden */
> -            if (cpu->hyperv_spinlock_attempts != 
> HYPERV_SPINLOCK_NEVER_RETRY) {
> +            if (cpu->hyperv_spinlock_attempts != 
> HYPERV_SPINLOCK_NEVER_NOTIFY) {
>                  c->ebx = cpu->hyperv_spinlock_attempts;
>              }
>          }
> -- 
> 2.25.4
> 

-- 
Eduardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]