From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37225) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmcDr-0007nS-UF for qemu-devel@nongnu.org; Wed, 21 Sep 2016 03:45:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmcDm-0007fz-St for qemu-devel@nongnu.org; Wed, 21 Sep 2016 03:45:38 -0400 References: <75632046-c527-8d5f-6ac0-a40c28239579@redhat.com> <1474407935.2857.87.camel@kernel.crashing.org> From: Thomas Huth Message-ID: <00237f69-5853-ae6f-cecc-45478d85ea6d@redhat.com> Date: Wed, 21 Sep 2016 09:45:31 +0200 MIME-Version: 1.0 In-Reply-To: <1474407935.2857.87.camel@kernel.crashing.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] KVM-PR is broken with current QEMU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Benjamin Herrenschmidt , qemu-ppc@nongnu.org Cc: QEMU Developers , =?UTF-8?Q?C=c3=a9dric_Le_Goater?= , David Gibson On 20.09.2016 23:45, Benjamin Herrenschmidt wrote: > On Tue, 2016-09-20 at 13:44 +0200, Thomas Huth wrote: >> >> 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? >> I can make KVM PR working again with the following patch: >> >> 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 =3D POWERPC_MMU_64 | POWERPC_MMU_AMR >> + | POWERPC_MMU_64K >> | 0x00000003, >> /* Architecture 2.07 variant */ >> POWERPC_MMU_2_07 =3D 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 =3D POWERPC_MMU_64 | POWERPC_MMU_AMR >> + | POWERPC_MMU_64K >> | 0x00000004, >> }; >> >> However, not sure whether this is the right fix ... C=C3=A9dric, Ben, = any >> ideas? >=20 > Oh I thought I had removed the degraded variants ... Definitely looks > like an accident. I *think* PR KVM supports 64K pages, no ? If not, > then we shouldn't enable the flag.. somebody needs to check the kernel. I've now added some debug printf statements to kvm_fixup_page_sizes() in QEMU, and it seems that at least my current downstream kernel does not report support for 64K page sizes. So the right fix is likely to disable the POWERPC_MMU_64K bit there in env->mmu_model if the kernel does not report support for 64K pages. I'll try to come up with a patch... But actually, now I wonder why my kernel does not support this page size. There was a kernel patch from Paul (a4a0f2524acc2c6 - "KVM: PPC: Book3S PR: Allow guest to use 64k pages") which added this page size to KVM-PR, so IMHO it should work ... Seem like I need to do some more debugging here... Thomas