qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 01/16] cpus: pass CPUState to run_on_cpu helpers


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH 01/16] cpus: pass CPUState to run_on_cpu helpers
Date: Thu, 15 Sep 2016 16:30:36 +0100
User-agent: mu4e 0.9.17; emacs 25.1.12

Paolo Bonzini <address@hidden> writes:

> From: Alex Bennée <address@hidden>
>
> CPUState is a fairly common pointer to pass to these helpers. This means
> if you need other arguments for the async_run_on_cpu case you end up
> having to do a g_malloc to stuff additional data into the routine. For
> the current users this isn't a massive deal but for MTTCG this gets
> cumbersome when the only other parameter is often an address.
>
> This adds the typedef run_on_cpu_func for helper functions which has an
> explicit CPUState * passed as the first parameter. All the users of
> run_on_cpu and async_run_on_cpu have had their helpers updated to use
> CPUState where available.
>
> Signed-off-by: Alex Bennée <address@hidden>
> [Sergey Fedorov:
>  - eliminate more CPUState in user data;
>  - remove unnecessary user data passing;
>  - fix target-s390x/kvm.c and target-s390x/misc_helper.c]
> Signed-off-by: Sergey Fedorov <address@hidden>
> Acked-by: David Gibson <address@hidden> (ppc parts)
> Reviewed-by: Christian Borntraeger <address@hidden> (s390 parts)
> Signed-off-by: Alex Bennée <address@hidden>
> Message-Id: <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  cpus.c                     | 15 ++++---
>  hw/i386/kvm/apic.c         |  3 +-
>  hw/i386/kvmvapic.c         |  6 +--
>  hw/ppc/ppce500_spin.c      | 31 +++++----------
>  hw/ppc/spapr.c             |  6 +--
>  hw/ppc/spapr_hcall.c       | 17 ++++----
>  include/qom/cpu.h          |  8 ++--
>  kvm-all.c                  | 21 ++++------
>  target-i386/helper.c       | 19 ++++-----
>  target-i386/kvm.c          |  6 +--
>  target-s390x/cpu.c         |  4 +-
>  target-s390x/cpu.h         |  7 +---
>  target-s390x/kvm.c         | 98 
> +++++++++++++++++++++++-----------------------
>  target-s390x/misc_helper.c |  4 +-
>  14 files changed, 108 insertions(+), 137 deletions(-)
>
<snip>
>
> diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
> index 3bf1ddd..1bc02fb 100644
> --- a/hw/i386/kvmvapic.c
> +++ b/hw/i386/kvmvapic.c

There is also a new conflict that needs fixing in apic.c on your next
re-base for:

    static void kvm_apic_put(CPUState *cs, void *data)


> @@ -483,7 +483,7 @@ typedef struct VAPICEnableTPRReporting {
>      bool enable;
>  } VAPICEnableTPRReporting;
>
> -static void vapic_do_enable_tpr_reporting(void *data)
> +static void vapic_do_enable_tpr_reporting(CPUState *cpu, void *data)
>  {
>      VAPICEnableTPRReporting *info = data;
>
> @@ -734,10 +734,10 @@ static void vapic_realize(DeviceState *dev, Error 
> **errp)
>      nb_option_roms++;
>  }
>
> -static void do_vapic_enable(void *data)
> +static void do_vapic_enable(CPUState *cs, void *data)
>  {
>      VAPICROMState *s = data;
> -    X86CPU *cpu = X86_CPU(first_cpu);
> +    X86CPU *cpu = X86_CPU(cs);
>
>      static const uint8_t enabled = 1;
>      cpu_physical_memory_write(s->vapic_paddr + offsetof(VAPICState, enabled),
> diff --git a/hw/ppc/ppce500_spin.c b/hw/ppc/ppce500_spin.c
> index 22c584e..8e16f65 100644
> --- a/hw/ppc/ppce500_spin.c
> +++ b/hw/ppc/ppce500_spin.c
> @@ -54,11 +54,6 @@ typedef struct SpinState {
>      SpinInfo spin[MAX_CPUS];
>  } SpinState;
>
> -typedef struct spin_kick {
> -    PowerPCCPU *cpu;
> -    SpinInfo *spin;
> -} SpinKick;
> -
>  static void spin_reset(void *opaque)


--
Alex Bennée



reply via email to

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