From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Aneesh Kumar K.V" Subject: Re: [PATCH] KVM: PPC: BOOK3S: HV: Use base page size when comparing against slb value Date: Fri, 13 Jun 2014 22:13:24 +0530 Message-ID: <87zjhgsqtv.fsf@linux.vnet.ibm.com> References: <1402644190-15604-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> <539ACC62.1040004@suse.de> <87vbs4dgt6.fsf@linux.vnet.ibm.com> <539B0E38.6050100@suse.de> Mime-Version: 1.0 Content-Type: text/plain Cc: linuxppc-dev@lists.ozlabs.org, kvm-ppc@vger.kernel.org, kvm@vger.kernel.org To: Alexander Graf , benh@kernel.crashing.org, paulus@samba.org Return-path: In-Reply-To: <539B0E38.6050100@suse.de> Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org Alexander Graf writes: > On 13.06.14 16:28, Aneesh Kumar K.V wrote: >> Alexander Graf writes: >> >>> On 13.06.14 09:23, Aneesh Kumar K.V wrote: >>>> With guest supporting Multiple page size per segment (MPSS), >>>> hpte_page_size returns actual page size used. Add a new function to >>>> return base page size and use that to compare against the the page size >>>> calculated from SLB >>> Why? What does this fix? Is this a bug fix, an enhancement? Don't >>> describe only what you do, but also why you do it. >>> >>> >> This could result in page fault failures (unhandled page fault) because >> even though we have a valid hpte entry mapping a 16MB page, since we >> were comparing actual page size against page size calculated from SLB >> bits kvmppc_hv_find_lock_hpte will fail and return -1. I did not observe >> a failure in real and the bug was found during code audit. That could be >> because with THP we have guest ram backed by hugetlbfs and we always >> find the page in the host linux page table. The will result in do_h_enter always >> inserting HPTE_V_VALID entry and hence we might not really end up calling >> kvmppc_hv_find_lock_hpte. > > So why do we need to override to base page size for the VRMA region? slb encoding should be derived based on base page size. > Also I think you want to change the comment above the line in > find_lock_hpte you're changing. > Will do that. -aneesh