On Fri, Sep 21, 2018 at 08:01:46PM +1000, Paul Mackerras wrote: > From: Suraj Jitindar Singh <sjitindarsingh@xxxxxxxxx> > > When destroying a VM we return the LPID to the pool, however we never > zero the partition table entry. This is instead done when we reallocate > the LPID. > > Zero the partition table entry on VM teardown before returning the LPID > to the pool. This means if we were running as a nested hypervisor the > real hypervisor could use this to determine when it can free resources. > > Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@xxxxxxxxx> > Signed-off-by: Paul Mackerras <paulus@xxxxxxxxxx> Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> > --- > arch/powerpc/kvm/book3s_hv.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c > index be8c863..82d6668 100644 > --- a/arch/powerpc/kvm/book3s_hv.c > +++ b/arch/powerpc/kvm/book3s_hv.c > @@ -4499,13 +4499,19 @@ static void kvmppc_core_destroy_vm_hv(struct kvm *kvm) > > kvmppc_free_vcores(kvm); > > - kvmppc_free_lpid(kvm->arch.lpid); > > if (kvm_is_radix(kvm)) > kvmppc_free_radix(kvm); > else > kvmppc_free_hpt(&kvm->arch.hpt); > > + /* Perform global invalidation and return lpid to the pool */ > + if (cpu_has_feature(CPU_FTR_ARCH_300)) { > + kvm->arch.process_table = 0; > + kvmppc_setup_partition_table(kvm); > + } > + kvmppc_free_lpid(kvm->arch.lpid); > + > kvmppc_free_pimap(kvm); > } > -- 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