From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36238) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bkYdc-00057U-TF for qemu-devel@nongnu.org; Thu, 15 Sep 2016 11:31:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bkYdX-0008Hh-P2 for qemu-devel@nongnu.org; Thu, 15 Sep 2016 11:31:44 -0400 Received: from mail-qt0-f173.google.com ([209.85.216.173]:33387) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bkYdX-0008HZ-1s for qemu-devel@nongnu.org; Thu, 15 Sep 2016 11:31:39 -0400 Received: by mail-qt0-f173.google.com with SMTP id 11so28405055qtc.0 for ; Thu, 15 Sep 2016 08:31:39 -0700 (PDT) References: <1473678761-8885-1-git-send-email-pbonzini@redhat.com> <1473678761-8885-2-git-send-email-pbonzini@redhat.com> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1473678761-8885-2-git-send-email-pbonzini@redhat.com> Date: Thu, 15 Sep 2016 16:30:36 +0100 Message-ID: <877fadi3j7.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 01/16] cpus: pass CPUState to run_on_cpu helpers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, sergey.fedorov@linaro.org Paolo Bonzini writes: > From: Alex Bennée > > 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 > [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 > Acked-by: David Gibson (ppc parts) > Reviewed-by: Christian Borntraeger (s390 parts) > Signed-off-by: Alex Bennée > Message-Id: <1470158864-17651-3-git-send-email-alex.bennee@linaro.org> > Signed-off-by: Paolo Bonzini > --- > 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(-) > > > 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