Hi Suzuki, On 4/2/19 11:47 AM, Suzuki K Poulose wrote: > On Mon, Apr 01, 2019 at 07:10:37PM +0200, Auger Eric wrote: >> Hi Suzuki, >> >> On 3/28/19 2:36 PM, Marc Zyngier wrote: >>> From: Suzuki K Poulose <suzuki.poulose@xxxxxxx> >>> >>> commit 6794ad5443a2118 ("KVM: arm/arm64: Fix unintended stage 2 PMD mappings") >>> made the checks to skip huge mappings, stricter. However it introduced >>> a bug where we still use huge mappings, ignoring the flag to >>> use PTE mappings, by not reseting the vma_pagesize to PAGE_SIZE. >>> >>> Also, the checks do not cover the PUD huge pages, that was >>> under review during the same period. This patch fixes both >>> the issues. >> >> I face a regression with this patch. My guest gets stuck. I am running >> on AMD Seattle. Reverting the patch makes things work again for me. I >> run with qemu. In this scenario I don't use hugepages. I use 64kB page >> size for both the host and guest. > > Hi Eric, > > Thanks for the testing. Does the following patch fix the issue for you ? Yes it does. Thanks Eric > > > ---8>--- > kvm: arm: Skip transparent huge pages in unaligned memslots > > We silently create stage2 huge mappings for a memslot with > unaligned IPA and user address. > > Signed-off-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx> > --- > virt/kvm/arm/mmu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c > index 27c9583..4a22f5b 100644 > --- a/virt/kvm/arm/mmu.c > +++ b/virt/kvm/arm/mmu.c > @@ -1412,7 +1412,9 @@ static bool transparent_hugepage_adjust(kvm_pfn_t *pfnp, phys_addr_t *ipap) > * page accordingly. > */ > mask = PTRS_PER_PMD - 1; > - VM_BUG_ON((gfn & mask) != (pfn & mask)); > + /* Skip memslots with unaligned IPA and user address */ > + if ((gfn & mask) != (pfn & mask)) > + return false; > if (pfn & mask) { > *ipap &= PMD_MASK; > kvm_release_pfn_clean(pfn); >