[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 14/17] pseries: Reset CPU compatibility mode
From: |
Alexey Kardashevskiy |
Subject: |
Re: [Qemu-devel] [RFC 14/17] pseries: Reset CPU compatibility mode |
Date: |
Fri, 4 Nov 2016 18:50:07 +1100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
On 30/10/16 22:12, David Gibson wrote:
> Currently, the CPU compatibility mode is set when the cpu is initialized,
> then again when the guest negotiates features. This means if a guest
> negotiates a compatibility mode, then reboots, that compatibility mode
> will be retained across the reset.
>
> Usually that will get overridden when features are negotiated on the next
> boot, but it's still not really correct. This patch moves the initial set
> up of the compatibility mode from cpu init to reset time. The mode *is*
> retained if the reboot was caused by the feature negotiation (it might
> be important in that case, though it's unlikely).
>
> Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Alexey Kardashevskiy <address@hidden>
> ---
> hw/ppc/spapr.c | 2 ++
> hw/ppc/spapr_cpu_core.c | 10 ----------
> 2 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index b983faa..2aa0900 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -1169,6 +1169,8 @@ static void ppc_spapr_reset(void)
> if (!spapr->cas_reboot) {
> spapr_ovec_cleanup(spapr->ov5_cas);
> spapr->ov5_cas = spapr_ovec_new();
> +
> + ppc_set_compat_all(spapr->max_compat_pvr, &error_abort);
> }
>
> fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size);
> diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
> index 0319516..4b6134b 100644
> --- a/hw/ppc/spapr_cpu_core.c
> +++ b/hw/ppc/spapr_cpu_core.c
> @@ -103,16 +103,6 @@ static void spapr_cpu_init(sPAPRMachineState *spapr,
> PowerPCCPU *cpu,
> cpu_ppc_set_vhyp(cpu, PPC_VIRTUAL_HYPERVISOR(spapr));
> cpu_ppc_set_papr(cpu);
>
> - if (spapr->max_compat_pvr) {
> - Error *local_err = NULL;
> -
> - ppc_set_compat(cpu, spapr->max_compat_pvr, &local_err);
> - if (local_err) {
> - error_propagate(errp, local_err);
> - return;
> - }
> - }
> -
> /* Set NUMA node for the added CPUs */
> i = numa_get_node_for_cpu(cs->cpu_index);
> if (i < nb_numa_nodes) {
>
--
Alexey
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [RFC 14/17] pseries: Reset CPU compatibility mode,
Alexey Kardashevskiy <=