[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>