qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [QEMU-PPC] [RFC 1/2] target/ppc: Add one reg id for ptc


From: David Gibson
Subject: Re: [Qemu-devel] [QEMU-PPC] [RFC 1/2] target/ppc: Add one reg id for ptcr
Date: Fri, 28 Sep 2018 16:29:30 +1000
User-agent: Mutt/1.10.1 (2018-07-13)

On Thu, Sep 27, 2018 at 04:50:08PM +1000, Suraj Jitindar Singh wrote:
> The ptcr (partition table control register) is used to store the address
> and size of the partition table. For nested kvm-hv we have a level 1
> guest register the location of it's partition table with the hypervisor.
> Thus to support migration we need to be able to read this out of kvm
> and restore it post migration.
> 
> Add the one reg id for the ptcr.
> 
> Signed-off-by: Suraj Jitindar Singh <address@hidden>
> ---
>  linux-headers/asm-powerpc/kvm.h |  1 +
>  target/ppc/translate_init.inc.c | 10 +++++-----
>  2 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/linux-headers/asm-powerpc/kvm.h b/linux-headers/asm-powerpc/kvm.h
> index 1b32b56a03..8c876c166e 100644
> --- a/linux-headers/asm-powerpc/kvm.h
> +++ b/linux-headers/asm-powerpc/kvm.h
> @@ -634,6 +634,7 @@ struct kvm_ppc_cpu_char {
>  
>  #define KVM_REG_PPC_DEC_EXPIRY       (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbe)
>  #define KVM_REG_PPC_ONLINE   (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xbf)
> +#define KVM_REG_PPC_PTCR     (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xc0)
>  
>  /* Transactional Memory checkpointed state:
>   * This is all GPRs, all VSX regs and a subset of SPRs

The preferred procedure is to split linux-headers/ updates out into a
separate patch which just updates it to a specific kernel snapshot.
Obviously you can't quite do that until the necessary constats are in
the upstream kernel tree.  However, you can split the linux-headers/
changes out so it will be easy to update just that patch in the series
for the final version.

> diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.inc.c
> index 263e63cb03..487196800b 100644
> --- a/target/ppc/translate_init.inc.c
> +++ b/target/ppc/translate_init.inc.c
> @@ -8197,11 +8197,11 @@ static void gen_spr_power9_mmu(CPUPPCState *env)
>  {
>  #if !defined(CONFIG_USER_ONLY)
>      /* Partition Table Control */
> -    spr_register_hv(env, SPR_PTCR, "PTCR",
> -                    SPR_NOACCESS, SPR_NOACCESS,
> -                    SPR_NOACCESS, SPR_NOACCESS,
> -                    &spr_read_generic, &spr_write_ptcr,
> -                    0x00000000);
> +    spr_register_kvm_hv(env, SPR_PTCR, "PTCR",
> +                        SPR_NOACCESS, SPR_NOACCESS,
> +                        SPR_NOACCESS, SPR_NOACCESS,
> +                        &spr_read_generic, &spr_write_ptcr,
> +                        KVM_REG_PPC_PTCR, 0x00000000);
>  #endif

Apart from that, this looks fine.

>  }
>  

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