qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] KVM-PR is broken with current QEMU


From: Cédric Le Goater
Subject: Re: [Qemu-ppc] KVM-PR is broken with current QEMU
Date: Tue, 20 Sep 2016 14:24:18 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0

On 09/20/2016 01:44 PM, Thomas Huth wrote:
>  Hi,
> 
> when I try to run my guest in KVM-PR mode, current QEMU refuses to start:
> 
>   $ sudo qemu-system-ppc64 -M pseries,accel=kvm,kvm-type=PR \
>                            -nographic -vga none -cpu POWER8
>   qemu: fatal: Unknown MMU model 851972
> 
> ... followed by a useless register dump. I've bisected the issue, and it
> seems like the problem has been introduced by this commit here:
> 
>   commit 4322e8ced5aaac7191958f09622d199fe61e2d87
>   ppc: Fix 64K pages support in full emulation
> 
> Seems like KVM PR is using the "degraded" ISA variants (without the 1TB
> segments), but the new POWERPC_MMU_64K flag has not been added to those.
> Has this been done on purpose, or was this just by accident?

The "degraded" architecture support has some history behind it :

 commit 126a79300971 added it
 commit aa4bb5875231 removed it.
 commit ba3ecda05e93 readded it.
 commit 4322e8ced5aa forgot about it again

> I can make KVM PR working again with the following patch:

I think this is correct. Let's wait for Ben to chime in :)

Thanks,

C.
 
> diff --git a/target-ppc/cpu-qom.h b/target-ppc/cpu-qom.h
> index 2864105..36694cb 100644
> --- a/target-ppc/cpu-qom.h
> +++ b/target-ppc/cpu-qom.h
> @@ -81,6 +81,7 @@ enum powerpc_mmu_t {
>                               | POWERPC_MMU_AMR | 0x00000003,
>      /* Architecture 2.06 "degraded" (no 1T segments)           */
>      POWERPC_MMU_2_06a      = POWERPC_MMU_64 | POWERPC_MMU_AMR
> +                             | POWERPC_MMU_64K
>                               | 0x00000003,
>      /* Architecture 2.07 variant                               */
>      POWERPC_MMU_2_07       = POWERPC_MMU_64 | POWERPC_MMU_1TSEG
> @@ -88,6 +89,7 @@ enum powerpc_mmu_t {
>                               | POWERPC_MMU_AMR | 0x00000004,
>      /* Architecture 2.07 "degraded" (no 1T segments)           */
>      POWERPC_MMU_2_07a      = POWERPC_MMU_64 | POWERPC_MMU_AMR
> +                             | POWERPC_MMU_64K
>                               | 0x00000004,
>  };
> 
> However, not sure whether this is the right fix ... Cédric, Ben, any ideas?






reply via email to

[Prev in Thread] Current Thread [Next in Thread]