From: Bharata B Rao <bharata@linux.vnet.ibm.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: mjrosato@linux.vnet.ibm.com, agraf@suse.de, thuth@redhat.com,
pkrempa@redhat.com, ehabkost@redhat.com, aik@ozlabs.ru,
qemu-devel@nongnu.org, armbru@redhat.com, borntraeger@de.ibm.com,
qemu-ppc@nongnu.org, pbonzini@redhat.com, imammedo@redhat.com,
afaerber@suse.de, mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [RFC PATCH v0 4/6] spapr: CPU hotplug support
Date: Tue, 1 Mar 2016 13:28:56 +0530 [thread overview]
Message-ID: <20160301075856.GH5756@in.ibm.com> (raw)
In-Reply-To: <20160229044210.GA5756@in.ibm.com>
On Mon, Feb 29, 2016 at 10:12:10AM +0530, Bharata B Rao wrote:
> > > diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> > > index b7c5ebd..cc0369e 100644
> > > --- a/hw/ppc/spapr_rtas.c
> > > +++ b/hw/ppc/spapr_rtas.c
> > > @@ -34,6 +34,7 @@
> > >
> > > #include "hw/ppc/spapr.h"
> > > #include "hw/ppc/spapr_vio.h"
> > > +#include "hw/ppc/ppc.h"
> > > #include "qapi-event.h"
> > > #include "hw/boards.h"
> > >
> > > @@ -161,6 +162,27 @@ static void rtas_query_cpu_stopped_state(PowerPCCPU *cpu_,
> > > rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR);
> > > }
> > >
> > > +/*
> > > + * Set the timebase offset of the CPU to that of first CPU.
> > > + * This helps hotplugged CPU to have the correct timebase offset.
> > > + */
> > > +static void spapr_cpu_update_tb_offset(PowerPCCPU *cpu)
> > > +{
> > > + PowerPCCPU *fcpu = POWERPC_CPU(first_cpu);
> > > +
> > > + cpu->env.tb_env->tb_offset = fcpu->env.tb_env->tb_offset;
> > > +}
> > > +
> > > +static void spapr_cpu_set_endianness(PowerPCCPU *cpu)
> > > +{
> > > + PowerPCCPU *fcpu = POWERPC_CPU(first_cpu);
> > > + PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(fcpu);
> > > +
> > > + if (!pcc->interrupts_big_endian(fcpu)) {
> > > + cpu->env.spr[SPR_LPCR] |= LPCR_ILE;
> > > + }
> > > +}
> > > +
> >
> > Any particular reason for doing these things at rtas_start_cpu() time,
> > but other initialization at plug time? Could you consolidate it to
> > one place or the other?
>
> Those board specific things that are needed to be done have been consolidated
> into spapr_cpu_init() which will be called from the plug handler. We have
> discussed this earlier at:
>
> https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg04399.html
>
> It has been a while but there was a good reason why setting endianness
> here rather than in plug handler is necessary. W/o this LE hotplug on guests
> wouldn't work, I will dig up and come back on what exactly necessiated
> this change.
If we set LPCR_ILE in cpu->env.spr[SPR_LPCR] at plug time
(from spapr_cpu_init()), there are at least two places later where it gets
over-written. One is spapr_cpu_reset() and the other one when
kvm_cpu_synchronize_state() is called from rtas_start_cpu(). We could
probably issue a kvm_arch_put_registers(), but I found rtas_start_cpu()
as a place where this change is guaranteed to get reflected.
Regards,
Bharata.
next prev parent reply other threads:[~2016-03-01 8:00 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-25 16:22 [Qemu-devel] [RFC PATCH v0 0/6] Core based CPU hotplug for PowerPC sPAPR Bharata B Rao
2016-02-25 16:22 ` [Qemu-devel] [RFC PATCH v0 1/6] cpu: Abstract CPU core type Bharata B Rao
2016-02-25 16:22 ` [Qemu-devel] [RFC PATCH v0 2/6] spapr: CPU core device Bharata B Rao
2016-02-26 2:57 ` David Gibson
2016-02-26 5:39 ` Bharata B Rao
2016-02-26 10:46 ` Thomas Huth
2016-02-29 5:39 ` Bharata B Rao
2016-02-26 18:13 ` Michael Roth
2016-02-29 3:44 ` David Gibson
2016-02-29 5:50 ` Bharata B Rao
2016-02-29 10:03 ` Igor Mammedov
2016-02-29 12:55 ` Bharata B Rao
2016-02-29 15:15 ` Igor Mammedov
2016-03-01 1:21 ` David Gibson
2016-03-01 9:27 ` Igor Mammedov
2016-03-01 8:17 ` Bharata B Rao
2016-03-01 9:16 ` Igor Mammedov
2016-03-01 9:45 ` Bharata B Rao
2016-02-25 16:22 ` [Qemu-devel] [RFC PATCH v0 3/6] spapr: Represent boot CPUs as spapr-cpu-core devices Bharata B Rao
2016-02-26 3:45 ` David Gibson
2016-02-26 4:02 ` Bharata B Rao
2016-02-26 15:18 ` Igor Mammedov
2016-02-29 5:35 ` Bharata B Rao
2016-02-29 7:11 ` David Gibson
2016-02-25 16:22 ` [Qemu-devel] [RFC PATCH v0 4/6] spapr: CPU hotplug support Bharata B Rao
2016-02-26 3:51 ` David Gibson
2016-02-29 4:42 ` Bharata B Rao
2016-03-01 7:58 ` Bharata B Rao [this message]
2016-03-02 0:53 ` David Gibson
2016-02-26 13:03 ` Thomas Huth
2016-02-26 14:54 ` Bharata B Rao
2016-02-25 16:22 ` [Qemu-devel] [RFC PATCH v0 5/6] qmp, spapr: Show hot-plugged/pluggable CPU slots in the Machine Bharata B Rao
2016-02-26 4:03 ` David Gibson
2016-02-26 9:40 ` Bharata B Rao
2016-02-26 15:58 ` Eric Blake
2016-02-29 5:43 ` Bharata B Rao
2016-02-26 16:33 ` Thomas Huth
2016-02-29 10:46 ` Igor Mammedov
2016-03-01 9:09 ` Bharata B Rao
2016-03-01 13:55 ` Igor Mammedov
2016-03-03 9:30 ` Bharata B Rao
2016-03-03 15:54 ` Igor Mammedov
2016-02-25 16:22 ` [Qemu-devel] [RFC PATCH v0 6/6] hmp: Implement 'info cpu-slots' Bharata B Rao
2016-03-01 10:00 ` [Qemu-devel] [RFC PATCH v0 0/6] Core based CPU hotplug for PowerPC sPAPR Bharata B Rao
2016-03-01 13:59 ` Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160301075856.GH5756@in.ibm.com \
--to=bharata@linux.vnet.ibm.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=armbru@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=david@gibson.dropbear.id.au \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mjrosato@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=pkrempa@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).