Re: [PATCH] KVM: PPC: Book3S PR: Enable use on POWER9 inside HPT-mode guests

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

 



On Sat, 19 May 2018 15:56:38 +1000
Paul Mackerras <paulus@xxxxxxxxxx> wrote:

> This relaxes the restriction on using PR KVM on POWER9.  The existing
> code does work inside a guest partition running in HPT mode, because
> hypercalls such as H_ENTER use the old HPTE format, not the new
> format used by POWER9, and so no change to PR KVM's HPT manipulation
> code is required.  PR KVM will still refuse to run if the kernel is
> using radix translation or if it is running bare-metal.
> 
> Signed-off-by: Paul Mackerras <paulus@xxxxxxxxxx>
> ---

With your other patch applied (https://patchwork.ozlabs.org/patch/916766/).

Tested-by: Greg Kurz <groug@xxxxxxxx>

>  arch/powerpc/kvm/book3s_pr.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c
> index 67061d3..3d0251e 100644
> --- a/arch/powerpc/kvm/book3s_pr.c
> +++ b/arch/powerpc/kvm/book3s_pr.c
> @@ -1735,9 +1735,16 @@ static void kvmppc_core_destroy_vm_pr(struct kvm *kvm)
>  static int kvmppc_core_check_processor_compat_pr(void)
>  {
>  	/*
> -	 * Disable KVM for Power9 untill the required bits merged.
> +	 * PR KVM can work on POWER9 inside a guest partition
> +	 * running in HPT mode.  It can't work if we are using
> +	 * radix translation (because radix provides no way for
> +	 * a process to have unique translations in quadrant 3)
> +	 * or in a bare-metal HPT-mode host (because POWER9
> +	 * uses a modified HPTE format which the PR KVM code
> +	 * has not been adapted to use).
>  	 */
> -	if (cpu_has_feature(CPU_FTR_ARCH_300))
> +	if (cpu_has_feature(CPU_FTR_ARCH_300) &&
> +	    (radix_enabled() || cpu_has_feature(CPU_FTR_HVMODE)))
>  		return -EIO;
>  	return 0;
>  }




[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