[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH] target/ppc: fix CPU hotplug when radix is enabled
From: |
Suraj Jitindar Singh |
Subject: |
Re: [Qemu-ppc] [PATCH] target/ppc: fix CPU hotplug when radix is enabled (TCG) |
Date: |
Mon, 17 Jul 2017 16:28:19 +1000 |
On Fri, 2017-07-14 at 18:13 +0200, Cédric Le Goater wrote:
> But when a guest initializes radix mode, it issues a
> H_REGISTER_PROC_TBL
> to update the LPCR of all CPUs. Hot-plugged CPUs inherit from the
> same
> setting under KVM but not under TCG. So, Let's check for radix and
> update
> the default LPCR to keep new CPUs in sync.
>
> Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: Suraj Jitindar Singh <address@hidden>
> ---
> target/ppc/translate_init.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/target/ppc/translate_init.c
> b/target/ppc/translate_init.c
> index 8b9807665dd5..8776e9b0f8fa 100644
> --- a/target/ppc/translate_init.c
> +++ b/target/ppc/translate_init.c
> @@ -9014,8 +9014,16 @@ void cpu_ppc_set_papr(PowerPCCPU *cpu,
> PPCVirtualHypervisor *vhyp)
> /* By default we choose legacy mode and switch to new hash
> or radix
> * when a register process table hcall is made. So disable
> process
> * tables and guest translation shootdown by default
> + *
> + * Hot-plugged CPUs inherit from the guest radix setting
> under
> + * KVM but not under TCG. Update the default LPCR to keep
> new
> + * CPUs in sync when radix is enabled.
> */
> - lpcr->default_value &= ~(LPCR_UPRT | LPCR_GTSE);
> + if (ppc64_radix_guest(cpu)) {
> + lpcr->default_value |= LPCR_UPRT | LPCR_GTSE;
Since we can't do radix without GTSE, I guess for now at least RADIX
implies GTSE.
> + } else {
> + lpcr->default_value &= ~(LPCR_UPRT | LPCR_GTSE);
> + }
> lpcr->default_value |= LPCR_PDEE | LPCR_HDEE | LPCR_EEE |
> LPCR_DEE |
> LPCR_OEE;
> break;