Re: [RFC PATCH 15/32] KVM: PPC: Book3S HV: Clear partition table entry on vm teardown

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

 



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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux