qemu-devel
[Top][All Lists]
Advanced

[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: David Gibson
Subject: Re: [PATCH v4 05/17] target/ppc: Retain hflags_nmsr only for migration
Date: Mon, 22 Mar 2021 14:41:44 +1100

On Mon, Mar 15, 2021 at 12:46:03PM -0600, 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>

Applied to ppc-for-6.0, thanks.

> ---
>  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),

-- 
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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]