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 <sjitindarsi...@gmail.com> > --- > 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
signature.asc
Description: PGP signature