linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: benh@kernel.crashing.org, paulus@samba.org
Cc: linuxppc-dev@lists.ozlabs.org,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: [PATCH -V4 23/25] powerpc/THP: Enable THP on PPC64
Date: Thu, 21 Mar 2013 01:05:08 +0530	[thread overview]
Message-ID: <1363808110-25748-24-git-send-email-aneesh.kumar@linux.vnet.ibm.com> (raw)
In-Reply-To: <1363808110-25748-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>

From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>

We enable only if the we support 16MB page size.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
 arch/powerpc/include/asm/pgtable.h |   31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index 9681de4..5617dee 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -81,8 +81,35 @@ static inline int pmd_trans_huge(pmd_t pmd)
 	return ((pmd_val(pmd) & PMD_ISHUGE) ==  PMD_ISHUGE);
 }
 
-/* We will enable it in the last patch */
-#define has_transparent_hugepage() 0
+static inline int has_transparent_hugepage(void)
+{
+	if (!mmu_has_feature(MMU_FTR_16M_PAGE))
+		return 0;
+	/*
+	 * We support THP only if HPAGE_SHIFT is 16MB.
+	 */
+	if (!HPAGE_SHIFT || (HPAGE_SHIFT != mmu_psize_defs[MMU_PAGE_16M].shift))
+		return 0;
+	/*
+	 * We need to make sure that we support 16MB hugepage in a segement
+	 * with base page size 64K or 4K. We only enable THP with a PAGE_SIZE
+	 * of 64K.
+	 */
+	/*
+	 * If we have 64K HPTE, we will be using that by default
+	 */
+	if (mmu_psize_defs[MMU_PAGE_64K].shift &&
+	    (mmu_psize_defs[MMU_PAGE_64K].penc[MMU_PAGE_16M] == -1))
+		return 0;
+	/*
+	 * Ok we only have 4K HPTE
+	 */
+	if (mmu_psize_defs[MMU_PAGE_4K].penc[MMU_PAGE_16M] == -1)
+		return 0;
+
+	return 1;
+}
+
 #else
 #define pmd_large(pmd)		0
 #define has_transparent_hugepage() 0
-- 
1.7.10

  parent reply	other threads:[~2013-03-20 19:35 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-20 19:34 [PATCH -V4 00/25] THP support for PPC64 Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 01/25] powerpc: Use signed formatting when printing error Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 02/25] powerpc: Save DAR and DSISR in pt_regs on MCE Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 03/25] powerpc: Don't hard code the size of pte page Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 04/25] powerpc: Reduce the PTE_INDEX_SIZE Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 05/25] powerpc: Move the pte free routines from common header Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 06/25] powerpc: Reduce PTE table memory wastage Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 07/25] powerpc: Use encode avpn where we need only avpn values Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 08/25] powerpc: Decode the pte-lp-encoding bits correctly Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 09/25] powerpc: Fix hpte_decode to use the correct decoding for page sizes Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 10/25] powerpc: print both base and actual page size on hash failure Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 11/25] powerpc: Print page size info during boot Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 12/25] powerpc: Return all the valid pte ecndoing in KVM_PPC_GET_SMMU_INFO ioctl Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 13/25] powerpc: Update tlbie/tlbiel as per ISA doc Aneesh Kumar K.V
2013-03-20 19:34 ` [PATCH -V4 14/25] mm/THP: HPAGE_SHIFT is not a #define on some arch Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 15/25] mm/THP: Add pmd args to pgtable deposit and withdraw APIs Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 16/25] mm/THP: withdraw the pgtable after pmdp related operations Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 17/25] powerpc/THP: Implement transparent hugepages for ppc64 Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 18/25] powerpc/THP: Double the PMD table size for THP Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 19/25] powerpc/THP: Differentiate THP PMD entries from HUGETLB PMD entries Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 20/25] powerpc/THP: Add code to handle HPTE faults for large pages Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 21/25] powerpc: Handle hugepage in perf callchain Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 22/25] powerpc/THP: get_user_pages_fast changes Aneesh Kumar K.V
2013-03-20 19:35 ` Aneesh Kumar K.V [this message]
2013-03-20 19:35 ` [PATCH -V4 24/25] powerpc: Optimize hugepage invalidate Aneesh Kumar K.V
2013-03-20 19:35 ` [PATCH -V4 25/25] powerpc: Handle hugepages in kvm Aneesh Kumar K.V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1363808110-25748-24-git-send-email-aneesh.kumar@linux.vnet.ibm.com \
    --to=aneesh.kumar@linux.vnet.ibm.com \
    --cc=benh@kernel.crashing.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).