[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 05/17] target/ppc: Retain hflags_nmsr only for migration
From: |
Cédric Le Goater |
Subject: |
Re: [PATCH v4 05/17] target/ppc: Retain hflags_nmsr only for migration |
Date: |
Tue, 16 Mar 2021 09:16:44 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
On 3/15/21 7:46 PM, Richard Henderson wrote:
> We have eliminated all normal uses of hflags_nmsr. We need
> not even compute it except when we want to migrate. Rename
> the field to emphasize this.
>
> Remove the fixme comment for migrating access_type. This value
> is only ever used with the current executing instruction, and
> is never live when the cpu is halted for migration.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Thanks,
C.
> ---
> target/ppc/cpu.h | 4 ++--
> target/ppc/helper_regs.c | 2 --
> target/ppc/machine.c | 9 ++++++---
> 3 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
> index 061d2eed1b..79c4033a42 100644
> --- a/target/ppc/cpu.h
> +++ b/target/ppc/cpu.h
> @@ -1105,8 +1105,8 @@ struct CPUPPCState {
> #endif
>
> /* These resources are used only in QEMU core */
> - target_ulong hflags; /* hflags is MSR & HFLAGS_MASK */
> - target_ulong hflags_nmsr; /* specific hflags, not coming from MSR */
> + target_ulong hflags;
> + target_ulong hflags_compat_nmsr; /* for migration compatibility */
> int immu_idx; /* precomputed MMU index to speed up insn accesses */
> int dmmu_idx; /* precomputed MMU index to speed up data accesses */
>
> diff --git a/target/ppc/helper_regs.c b/target/ppc/helper_regs.c
> index 95b9aca61f..a87e354ca2 100644
> --- a/target/ppc/helper_regs.c
> +++ b/target/ppc/helper_regs.c
> @@ -104,8 +104,6 @@ void hreg_compute_hflags(CPUPPCState *env)
> */
> uint32_t le = extract32(env->spr[SPR_HID0], 3, 1);
> env->hflags |= le << MSR_LE;
> - /* Retain for backward compatibility with migration. */
> - env->hflags_nmsr = le << MSR_LE;
> }
> }
>
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index f6eeda9642..1f7a353c78 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -310,6 +310,10 @@ static int cpu_pre_save(void *opaque)
> }
> }
>
> + /* Retain migration compatibility for pre 6.0 for 601 machines. */
> + env->hflags_compat_nmsr = (env->flags & POWERPC_FLAG_HID0_LE
> + ? env->hflags & MSR_LE : 0);
> +
> return 0;
> }
>
> @@ -829,9 +833,8 @@ const VMStateDescription vmstate_ppc_cpu = {
> /* Supervisor mode architected state */
> VMSTATE_UINTTL(env.msr, PowerPCCPU),
>
> - /* Internal state */
> - VMSTATE_UINTTL(env.hflags_nmsr, PowerPCCPU),
> - /* FIXME: access_type? */
> + /* Backward compatible internal state */
> + VMSTATE_UINTTL(env.hflags_compat_nmsr, PowerPCCPU),
>
> /* Sanity checking */
> VMSTATE_UINTTL_TEST(mig_msr_mask, PowerPCCPU, cpu_pre_2_8_migration),
>
- [PATCH v4 04/17] target/ppc: Do not call hreg_compute_mem_idx after ppc_store_msr, (continued)
- [PATCH v4 04/17] target/ppc: Do not call hreg_compute_mem_idx after ppc_store_msr, Richard Henderson, 2021/03/15
- [PATCH v4 03/17] target/ppc: Properly sync cpu state with new msr in cpu_load_old, Richard Henderson, 2021/03/15
- [PATCH v4 06/17] target/ppc: Fix comment for MSR_FE{0,1}, Richard Henderson, 2021/03/15
- [PATCH v4 05/17] target/ppc: Retain hflags_nmsr only for migration, Richard Henderson, 2021/03/15
- [PATCH v4 08/17] target/ppc: Reduce env->hflags to uint32_t, Richard Henderson, 2021/03/15
- [PATCH v4 01/17] target/ppc: Move helper_regs.h functions out-of-line, Richard Henderson, 2021/03/15
- [PATCH v4 09/17] target/ppc: Put dbcr0 single-step bits into hflags, Richard Henderson, 2021/03/15
- [PATCH v4 07/17] target/ppc: Disconnect hflags from MSR, Richard Henderson, 2021/03/15