From patchwork Sun Feb 24 17:45:28 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Aneesh Kumar K.V" X-Patchwork-Id: 222793 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from ozlabs.org (localhost [IPv6:::1]) by ozlabs.org (Postfix) with ESMTP id EF2582C03B4 for ; Mon, 25 Feb 2013 04:46:07 +1100 (EST) Received: from e28smtp03.in.ibm.com (e28smtp03.in.ibm.com [122.248.162.3]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "e28smtp03.in.ibm.com", Issuer "GeoTrust SSL CA" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 9CA1F2C02AD for ; Mon, 25 Feb 2013 04:45:38 +1100 (EST) Received: from /spool/local by e28smtp03.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sun, 24 Feb 2013 23:13:01 +0530 Received: from d28dlp02.in.ibm.com (9.184.220.127) by e28smtp03.in.ibm.com (192.168.1.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Sun, 24 Feb 2013 23:12:59 +0530 Received: from d28relay02.in.ibm.com (d28relay02.in.ibm.com [9.184.220.59]) by d28dlp02.in.ibm.com (Postfix) with ESMTP id 03257394004D for ; Sun, 24 Feb 2013 23:15:30 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay02.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r1OHjQC332506000 for ; Sun, 24 Feb 2013 23:15:27 +0530 Received: from d28av05.in.ibm.com (loopback [127.0.0.1]) by d28av05.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r1OHjSik020766 for ; Mon, 25 Feb 2013 04:45:29 +1100 Received: from skywalker.linux.vnet.ibm.com ([9.79.213.62]) by d28av05.in.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id r1OHjSxc020763; Mon, 25 Feb 2013 04:45:28 +1100 From: "Aneesh Kumar K.V" To: Paul Mackerras Subject: Re: [RFC PATCH -V2 08/21] powerpc: Decode the pte-lp-encoding bits correctly. In-Reply-To: <20130222053735.GH6139@drongo> References: <1361465248-10867-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> <1361465248-10867-9-git-send-email-aneesh.kumar@linux.vnet.ibm.com> <20130222053735.GH6139@drongo> User-Agent: Notmuch/0.15.1+22~gc34effa (http://notmuchmail.org) Emacs/24.3.50.1 (x86_64-unknown-linux-gnu) Date: Sun, 24 Feb 2013 23:15:28 +0530 Message-ID: <87ppzpbo7b.fsf@linux.vnet.ibm.com> MIME-Version: 1.0 X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13022417-3864-0000-0000-000006F6FF8C Cc: linuxppc-dev@lists.ozlabs.org, linux-mm@kvack.org X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" Paul Mackerras writes: > >> diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c >> index 71d0c90..d2c9932 100644 >> --- a/arch/powerpc/kvm/book3s_hv.c >> +++ b/arch/powerpc/kvm/book3s_hv.c >> @@ -1515,7 +1515,12 @@ static void kvmppc_add_seg_page_size(struct kvm_ppc_one_seg_page_size **sps, >> (*sps)->page_shift = def->shift; >> (*sps)->slb_enc = def->sllp; >> (*sps)->enc[0].page_shift = def->shift; >> - (*sps)->enc[0].pte_enc = def->penc; >> + /* >> + * FIXME!! >> + * This is returned to user space. Do we need to >> + * return details of MPSS here ? > > Yes, we do, probably a separate entry for each valid base/actual page > size pair. > How about commit fb7bca460d5e3a517dce24c0fe28cc94ffde37fa Author: Aneesh Kumar K.V Date: Sun Feb 24 22:55:38 2013 +0530 powerpc: Return all the valid pte ecndoing in KVM_PPC_GET_SMMU_INFO ioctl Signed-off-by: Aneesh Kumar K.V diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 48f6d99..e50eb0d 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -1508,14 +1508,21 @@ long kvm_vm_ioctl_allocate_rma(struct kvm *kvm, struct kvm_allocate_rma *ret) static void kvmppc_add_seg_page_size(struct kvm_ppc_one_seg_page_size **sps, int linux_psize) { + int i, index = 0; struct mmu_psize_def *def = &mmu_psize_defs[linux_psize]; if (!def->shift) return; (*sps)->page_shift = def->shift; (*sps)->slb_enc = def->sllp; - (*sps)->enc[0].page_shift = def->shift; - (*sps)->enc[0].pte_enc = def->penc[linux_psize]; + for (i = 0; i < MMU_PAGE_COUNT; i++) { + if ((signed int)def->penc[i] != -1) { + BUG_ON(index >= KVM_PPC_PAGE_SIZES_MAX_SZ); + (*sps)->enc[index].page_shift = mmu_psize_defs[i].shift; + (*sps)->enc[index].pte_enc = def->penc[i]; + index++; + } + } (*sps)++; }