[Qemu-devel] [PATCH] i386: hvf: Remove hvf_disabled

Roman Bolshakov posted 1 patch 5 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181018143051.48508-1-r.bolshakov@yadro.com
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Test docker-mingw@fedora failed
Test docker-quick@centos7 passed
include/sysemu/hvf.h  | 4 ++--
target/i386/hvf/hvf.c | 9 +--------
2 files changed, 3 insertions(+), 10 deletions(-)
[Qemu-devel] [PATCH] i386: hvf: Remove hvf_disabled
Posted by Roman Bolshakov 5 years, 6 months ago
accel_init_machine sets *(acc->allowed) to true if acc->init_machine(ms)
succeeds. There's no need to have both hvf_allowed and hvf_disabled.

Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
---
 include/sysemu/hvf.h  | 4 ++--
 target/i386/hvf/hvf.c | 9 +--------
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/include/sysemu/hvf.h b/include/sysemu/hvf.h
index 241118845c..aaa51d2c51 100644
--- a/include/sysemu/hvf.h
+++ b/include/sysemu/hvf.h
@@ -17,7 +17,7 @@
 #include "exec/memory.h"
 #include "sysemu/accel.h"
 
-extern int hvf_disabled;
+extern bool hvf_allowed;
 #ifdef CONFIG_HVF
 #include <Hypervisor/hv.h>
 #include <Hypervisor/hv_vmx.h>
@@ -26,7 +26,7 @@ extern int hvf_disabled;
 #include "hw/hw.h"
 uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx,
                                  int reg);
-#define hvf_enabled() !hvf_disabled
+#define hvf_enabled() (hvf_allowed)
 #else
 #define hvf_enabled() 0
 #define hvf_get_supported_cpuid(func, idx, reg) 0
diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
index 9f52bc413a..e193022c03 100644
--- a/target/i386/hvf/hvf.c
+++ b/target/i386/hvf/hvf.c
@@ -73,7 +73,6 @@
 #include "target/i386/cpu.h"
 
 HVFState *hvf_state;
-int hvf_disabled = 1;
 
 static void assert_hvf_ok(hv_return_t ret)
 {
@@ -604,11 +603,6 @@ int hvf_init_vcpu(CPUState *cpu)
     return 0;
 }
 
-void hvf_disable(int shouldDisable)
-{
-    hvf_disabled = shouldDisable;
-}
-
 static void hvf_store_events(CPUState *cpu, uint32_t ins_len, uint64_t idtvec_info)
 {
     X86CPU *x86_cpu = X86_CPU(cpu);
@@ -934,7 +928,7 @@ int hvf_vcpu_exec(CPUState *cpu)
     return ret;
 }
 
-static bool hvf_allowed;
+bool hvf_allowed;
 
 static int hvf_accel_init(MachineState *ms)
 {
@@ -942,7 +936,6 @@ static int hvf_accel_init(MachineState *ms)
     hv_return_t ret;
     HVFState *s;
 
-    hvf_disable(0);
     ret = hv_vm_create(HV_VM_DEFAULT);
     assert_hvf_ok(ret);
 
-- 
2.17.1 (Apple Git-112)


Re: [Qemu-devel] [PATCH] i386: hvf: Remove hvf_disabled
Posted by Paolo Bonzini 5 years, 6 months ago
On 18/10/2018 16:30, Roman Bolshakov wrote:
> accel_init_machine sets *(acc->allowed) to true if acc->init_machine(ms)
> succeeds. There's no need to have both hvf_allowed and hvf_disabled.
> 
> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
> ---
>  include/sysemu/hvf.h  | 4 ++--
>  target/i386/hvf/hvf.c | 9 +--------
>  2 files changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/include/sysemu/hvf.h b/include/sysemu/hvf.h
> index 241118845c..aaa51d2c51 100644
> --- a/include/sysemu/hvf.h
> +++ b/include/sysemu/hvf.h
> @@ -17,7 +17,7 @@
>  #include "exec/memory.h"
>  #include "sysemu/accel.h"
>  
> -extern int hvf_disabled;
> +extern bool hvf_allowed;
>  #ifdef CONFIG_HVF
>  #include <Hypervisor/hv.h>
>  #include <Hypervisor/hv_vmx.h>
> @@ -26,7 +26,7 @@ extern int hvf_disabled;
>  #include "hw/hw.h"
>  uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx,
>                                   int reg);
> -#define hvf_enabled() !hvf_disabled
> +#define hvf_enabled() (hvf_allowed)
>  #else
>  #define hvf_enabled() 0
>  #define hvf_get_supported_cpuid(func, idx, reg) 0
> diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
> index 9f52bc413a..e193022c03 100644
> --- a/target/i386/hvf/hvf.c
> +++ b/target/i386/hvf/hvf.c
> @@ -73,7 +73,6 @@
>  #include "target/i386/cpu.h"
>  
>  HVFState *hvf_state;
> -int hvf_disabled = 1;
>  
>  static void assert_hvf_ok(hv_return_t ret)
>  {
> @@ -604,11 +603,6 @@ int hvf_init_vcpu(CPUState *cpu)
>      return 0;
>  }
>  
> -void hvf_disable(int shouldDisable)
> -{
> -    hvf_disabled = shouldDisable;
> -}
> -
>  static void hvf_store_events(CPUState *cpu, uint32_t ins_len, uint64_t idtvec_info)
>  {
>      X86CPU *x86_cpu = X86_CPU(cpu);
> @@ -934,7 +928,7 @@ int hvf_vcpu_exec(CPUState *cpu)
>      return ret;
>  }
>  
> -static bool hvf_allowed;
> +bool hvf_allowed;
>  
>  static int hvf_accel_init(MachineState *ms)
>  {
> @@ -942,7 +936,6 @@ static int hvf_accel_init(MachineState *ms)
>      hv_return_t ret;
>      HVFState *s;
>  
> -    hvf_disable(0);
>      ret = hv_vm_create(HV_VM_DEFAULT);
>      assert_hvf_ok(ret);
>  
> 

Queued, thanks.

Paolo

Re: [Qemu-devel] [PATCH] i386: hvf: Remove hvf_disabled
Posted by Peter Maydell 5 years, 6 months ago
On 18 October 2018 at 15:30, Roman Bolshakov <r.bolshakov@yadro.com> wrote:
> accel_init_machine sets *(acc->allowed) to true if acc->init_machine(ms)
> succeeds. There's no need to have both hvf_allowed and hvf_disabled.
>
> Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
> ---
>  include/sysemu/hvf.h  | 4 ++--
>  target/i386/hvf/hvf.c | 9 +--------
>  2 files changed, 3 insertions(+), 10 deletions(-)

This brings HVF into line with all the other accelerators,
which define the foo_enabled() function or macro to look at
a foo_allowed flag.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM