[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v2] spapr: add "stop-self" RTAS call required to s
From: |
David Gibson |
Subject: |
Re: [Qemu-ppc] [PATCH v2] spapr: add "stop-self" RTAS call required to support hot CPU unplug |
Date: |
Wed, 28 Aug 2013 21:42:03 +1000 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, Aug 28, 2013 at 07:32:51PM +1000, Alexey Kardashevskiy wrote:
> PAPR+ requires two RTAS calls to be supported by the hypervisor in
> order to allow hotplugging VCPUs from the guest. The "start-cpu" RTAS
> call was already there but "stop-self" was not.
>
> This adds the "stop-self" RTAS call.
>
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
> ---
> Changes:
> v2:
> * exit_request flag change replaced with more correct cpu_exit() call
> * fixed commit message, "spapr: support CPU hotplug"
> ---
> hw/ppc/spapr_rtas.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
> index 394ce05..b906294 100644
> --- a/hw/ppc/spapr_rtas.c
> +++ b/hw/ppc/spapr_rtas.c
> @@ -202,6 +202,17 @@ static void rtas_start_cpu(PowerPCCPU *cpu_,
> sPAPREnvironment *spapr,
> rtas_st(rets, 0, -3);
> }
>
> +static void rtas_stop_self(PowerPCCPU *cpu, sPAPREnvironment *spapr,
> + uint32_t token, uint32_t nargs,
> + target_ulong args,
> + uint32_t nret, target_ulong rets)
> +{
> + CPUState *cs = CPU(cpu);
> +
> + cs->halted = 1;
Uh.. I think you still need the msr = 0, or an interrupt could wake
the cpu up again.
> + cpu_exit(cs);
> +}
> +
> static struct rtas_call {
> const char *name;
> spapr_rtas_fn fn;
> @@ -322,6 +333,7 @@ static void core_rtas_register_types(void)
> spapr_rtas_register("query-cpu-stopped-state",
> rtas_query_cpu_stopped_state);
> spapr_rtas_register("start-cpu", rtas_start_cpu);
> + spapr_rtas_register("stop-self", rtas_stop_self);
> }
>
> type_init(core_rtas_register_types)
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
pgpajIQNjQ19a.pgp
Description: PGP signature