qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/3] kvm: move cpu synchronization code


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH 1/3] kvm: move cpu synchronization code
Date: Tue, 8 Nov 2016 18:34:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0


On 08/11/2016 16:39, Vincent Palatin wrote:
> Move the generic cpu_synchronize_ functions to the common hw_accel.h header,
> in order to prepare for the addition of a second hardware accelerator.
> 
> Signed-off-by: Vincent Palatin <address@hidden>
> ---
>  cpus.c                    |  1 +
>  gdbstub.c                 |  1 +
>  hw/i386/kvm/apic.c        |  1 +
>  hw/i386/kvmvapic.c        |  1 +
>  hw/misc/vmport.c          |  2 +-
>  include/sysemu/hw_accel.h | 39 +++++++++++++++++++++++++++++++++++++++
>  include/sysemu/kvm.h      | 23 -----------------------
>  monitor.c                 |  2 +-
>  qom/cpu.c                 |  2 +-
>  target-arm/cpu.c          |  2 +-
>  target-i386/helper.c      |  1 +
>  target-i386/kvm.c         |  1 +
>  12 files changed, 49 insertions(+), 27 deletions(-)
>  create mode 100644 include/sysemu/hw_accel.h
> 
> diff --git a/cpus.c b/cpus.c
> index 5213351..fc78502 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -33,6 +33,7 @@
>  #include "sysemu/block-backend.h"
>  #include "exec/gdbstub.h"
>  #include "sysemu/dma.h"
> +#include "sysemu/hw_accel.h"
>  #include "sysemu/kvm.h"
>  #include "qmp-commands.h"
>  #include "exec/exec-all.h"
> diff --git a/gdbstub.c b/gdbstub.c
> index de62d26..de9b62b 100644
> --- a/gdbstub.c
> +++ b/gdbstub.c
> @@ -32,6 +32,7 @@
>  #define MAX_PACKET_LENGTH 4096
>  
>  #include "qemu/sockets.h"
> +#include "sysemu/hw_accel.h"
>  #include "sysemu/kvm.h"
>  #include "exec/semihost.h"
>  #include "exec/exec-all.h"
> diff --git a/hw/i386/kvm/apic.c b/hw/i386/kvm/apic.c
> index 01cbaa8..328f80c 100644
> --- a/hw/i386/kvm/apic.c
> +++ b/hw/i386/kvm/apic.c
> @@ -14,6 +14,7 @@
>  #include "cpu.h"
>  #include "hw/i386/apic_internal.h"
>  #include "hw/pci/msi.h"
> +#include "sysemu/hw_accel.h"
>  #include "sysemu/kvm.h"
>  #include "target-i386/kvm_i386.h"
>  
> diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
> index b30d1b9..2f767b6 100644
> --- a/hw/i386/kvmvapic.c
> +++ b/hw/i386/kvmvapic.c
> @@ -14,6 +14,7 @@
>  #include "exec/exec-all.h"
>  #include "sysemu/sysemu.h"
>  #include "sysemu/cpus.h"
> +#include "sysemu/hw_accel.h"
>  #include "sysemu/kvm.h"
>  #include "hw/i386/apic_internal.h"
>  #include "hw/sysbus.h"
> diff --git a/hw/misc/vmport.c b/hw/misc/vmport.c
> index c763811..be40930 100644
> --- a/hw/misc/vmport.c
> +++ b/hw/misc/vmport.c
> @@ -25,7 +25,7 @@
>  #include "hw/hw.h"
>  #include "hw/isa/isa.h"
>  #include "hw/i386/pc.h"
> -#include "sysemu/kvm.h"
> +#include "sysemu/hw_accel.h"
>  #include "hw/qdev.h"
>  
>  //#define VMPORT_DEBUG
> diff --git a/include/sysemu/hw_accel.h b/include/sysemu/hw_accel.h
> new file mode 100644
> index 0000000..03812cf
> --- /dev/null
> +++ b/include/sysemu/hw_accel.h
> @@ -0,0 +1,39 @@
> +/*
> + * QEMU Hardware accelertors support
> + *
> + * Copyright 2016 Google, Inc.
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + *
> + */
> +
> +#ifndef QEMU_HW_ACCEL_H
> +#define QEMU_HW_ACCEL_H
> +
> +#include "qom/cpu.h"
> +#include "sysemu/hax.h"
> +#include "sysemu/kvm.h"
> +
> +static inline void cpu_synchronize_state(CPUState *cpu)
> +{
> +    if (kvm_enabled()) {
> +        kvm_cpu_synchronize_state(cpu);
> +    }
> +}
> +
> +static inline void cpu_synchronize_post_reset(CPUState *cpu)
> +{
> +    if (kvm_enabled()) {
> +        kvm_cpu_synchronize_post_reset(cpu);
> +    }
> +}
> +
> +static inline void cpu_synchronize_post_init(CPUState *cpu)
> +{
> +    if (kvm_enabled()) {
> +        kvm_cpu_synchronize_post_init(cpu);
> +    }
> +}
> +
> +#endif /* QEMU_HW_ACCEL_H */
> diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
> index df67cc0..3045ee7 100644
> --- a/include/sysemu/kvm.h
> +++ b/include/sysemu/kvm.h
> @@ -461,29 +461,6 @@ void kvm_cpu_synchronize_state(CPUState *cpu);
>  void kvm_cpu_synchronize_post_reset(CPUState *cpu);
>  void kvm_cpu_synchronize_post_init(CPUState *cpu);
>  
> -/* generic hooks - to be moved/refactored once there are more users */
> -
> -static inline void cpu_synchronize_state(CPUState *cpu)
> -{
> -    if (kvm_enabled()) {
> -        kvm_cpu_synchronize_state(cpu);
> -    }
> -}
> -
> -static inline void cpu_synchronize_post_reset(CPUState *cpu)
> -{
> -    if (kvm_enabled()) {
> -        kvm_cpu_synchronize_post_reset(cpu);
> -    }
> -}
> -
> -static inline void cpu_synchronize_post_init(CPUState *cpu)
> -{
> -    if (kvm_enabled()) {
> -        kvm_cpu_synchronize_post_init(cpu);
> -    }
> -}
> -
>  /**
>   * kvm_irqchip_add_msi_route - Add MSI route for specific vector
>   * @s:      KVM state
> diff --git a/monitor.c b/monitor.c
> index 0841d43..d38956f 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -50,7 +50,7 @@
>  #include "sysemu/balloon.h"
>  #include "qemu/timer.h"
>  #include "migration/migration.h"
> -#include "sysemu/kvm.h"
> +#include "sysemu/hw_accel.h"
>  #include "qemu/acl.h"
>  #include "sysemu/tpm.h"
>  #include "qapi/qmp/qerror.h"
> diff --git a/qom/cpu.c b/qom/cpu.c
> index 03d9190..2c5274f 100644
> --- a/qom/cpu.c
> +++ b/qom/cpu.c
> @@ -22,7 +22,7 @@
>  #include "qapi/error.h"
>  #include "qemu-common.h"
>  #include "qom/cpu.h"
> -#include "sysemu/kvm.h"
> +#include "sysemu/hw_accel.h"
>  #include "qemu/notify.h"
>  #include "qemu/log.h"
>  #include "exec/log.h"
> diff --git a/target-arm/cpu.c b/target-arm/cpu.c
> index 99f0dbe..744cc11 100644
> --- a/target-arm/cpu.c
> +++ b/target-arm/cpu.c
> @@ -31,7 +31,7 @@
>  #endif
>  #include "hw/arm/arm.h"
>  #include "sysemu/sysemu.h"
> -#include "sysemu/kvm.h"
> +#include "sysemu/hw_accel.h"
>  #include "kvm_arm.h"
>  
>  static void arm_cpu_set_pc(CPUState *cs, vaddr value)
> diff --git a/target-i386/helper.c b/target-i386/helper.c
> index 4ecc091..7530280 100644
> --- a/target-i386/helper.c
> +++ b/target-i386/helper.c
> @@ -24,6 +24,7 @@
>  #include "kvm_i386.h"
>  #ifndef CONFIG_USER_ONLY
>  #include "sysemu/sysemu.h"
> +#include "sysemu/hw_accel.h"
>  #include "monitor/monitor.h"
>  #include "hw/i386/apic_internal.h"
>  #endif
> diff --git a/target-i386/kvm.c b/target-i386/kvm.c
> index 1c0864e..d9ad69e 100644
> --- a/target-i386/kvm.c
> +++ b/target-i386/kvm.c
> @@ -23,6 +23,7 @@
>  #include "qemu-common.h"
>  #include "cpu.h"
>  #include "sysemu/sysemu.h"
> +#include "sysemu/hw_accel.h"
>  #include "sysemu/kvm_int.h"
>  #include "kvm_i386.h"
>  #include "hyperv.h"
> 

Reviewed-by: Paolo Bonzini <address@hidden>



reply via email to

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