linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: linuxppc-dev@ozlabs.org
Cc: aneesh.kumar@linux.vnet.ibm.com
Subject: [PATCH v6 14/19] powerpc/mm/hash: Increase VA range to 128TB
Date: Thu, 30 Mar 2017 23:04:02 +1100	[thread overview]
Message-ID: <1490875447-4016-14-git-send-email-mpe@ellerman.id.au> (raw)
In-Reply-To: <1490875447-4016-1-git-send-email-mpe@ellerman.id.au>

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

We update the hash linux page table layout such that we can support
512TB. But we limit the TASK_SIZE to 128TB. We can switch to 128TB by
default without conditional because that is the max virtual address
supported by other architectures. We will later add a mechanism to
on-demand increase the application's effective address range to 512TB.

Having the page table layout changed to accommodate 512TB makes testing
large memory configuration easier with less code changes to kernel

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/include/asm/book3s/64/hash-4k.h  |  2 +-
 arch/powerpc/include/asm/book3s/64/hash-64k.h |  2 +-
 arch/powerpc/include/asm/processor.h          | 22 ++++++++++++++++++----
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/include/asm/book3s/64/hash-4k.h b/arch/powerpc/include/asm/book3s/64/hash-4k.h
index 0c4e470571ca..b4b5e6b671ca 100644
--- a/arch/powerpc/include/asm/book3s/64/hash-4k.h
+++ b/arch/powerpc/include/asm/book3s/64/hash-4k.h
@@ -8,7 +8,7 @@
 #define H_PTE_INDEX_SIZE  9
 #define H_PMD_INDEX_SIZE  7
 #define H_PUD_INDEX_SIZE  9
-#define H_PGD_INDEX_SIZE  9
+#define H_PGD_INDEX_SIZE  12
 
 #ifndef __ASSEMBLY__
 #define H_PTE_TABLE_SIZE	(sizeof(pte_t) << H_PTE_INDEX_SIZE)
diff --git a/arch/powerpc/include/asm/book3s/64/hash-64k.h b/arch/powerpc/include/asm/book3s/64/hash-64k.h
index 7be54f9590a3..214219dff87c 100644
--- a/arch/powerpc/include/asm/book3s/64/hash-64k.h
+++ b/arch/powerpc/include/asm/book3s/64/hash-64k.h
@@ -4,7 +4,7 @@
 #define H_PTE_INDEX_SIZE  8
 #define H_PMD_INDEX_SIZE  5
 #define H_PUD_INDEX_SIZE  5
-#define H_PGD_INDEX_SIZE  12
+#define H_PGD_INDEX_SIZE  15
 
 /*
  * 64k aligned address free up few of the lower bits of RPN for us
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h
index e0fecbcea2a2..ea4b6c696f1f 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -102,11 +102,25 @@ void release_thread(struct task_struct *);
 #endif
 
 #ifdef CONFIG_PPC64
-/* 64-bit user address space is 46-bits (64TB user VM) */
-#define TASK_SIZE_USER64 (0x0000400000000000UL)
+/*
+ * 64-bit user address space can have multiple limits
+ * For now supported values are:
+ */
+#define TASK_SIZE_64TB  (0x0000400000000000UL)
+#define TASK_SIZE_128TB (0x0000800000000000UL)
+#define TASK_SIZE_512TB (0x0002000000000000UL)
 
-/* 
- * 32-bit user address space is 4GB - 1 page 
+#ifdef CONFIG_PPC_BOOK3S_64
+/*
+ * Max value currently used:
+ */
+#define TASK_SIZE_USER64 TASK_SIZE_128TB
+#else
+#define TASK_SIZE_USER64 TASK_SIZE_64TB
+#endif
+
+/*
+ * 32-bit user address space is 4GB - 1 page
  * (this 1 page is needed so referencing of 0xFFFFFFFF generates EFAULT
  */
 #define TASK_SIZE_USER32 (0x0000000100000000UL - (1*PAGE_SIZE))
-- 
2.7.4

  parent reply	other threads:[~2017-03-30 12:04 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-30 12:03 [PATCH v6 01/19] powerpc/mm/slice: Convert slice_mask high slice to a bitmap Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 02/19] powerpc/mm/slice: Update the function prototype Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 03/19] powerpc/mm: Move copy_mm_to_paca to paca.c Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 04/19] powerpc/mm: Remove checks that TASK_SIZE_USER64 is too small Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 05/19] powerpc/mm/slice: Move slice_mask struct definition to slice.c Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 06/19] powerpc/mm/slice: Update slice mask printing to use bitmap printing Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 07/19] powerpc/mm/hash: Abstract context id allocation for KVM Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 08/19] powerpc/mm/hash: Pull hash constants into hash__alloc_context_id() Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 09/19] powerpc/mm: Split radix vs hash mm context initialisation Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 10/19] powerpc/mm/hash: Use context ids 1-4 for the kernel Michael Ellerman
2017-04-28 10:57   ` Michal Suchánek
2017-04-28 12:05     ` Michael Ellerman
2017-03-30 12:03 ` [PATCH v6 11/19] powerpc/mm/hash: Check for non-kernel address in get_kernel_vsid() Michael Ellerman
2017-03-30 12:04 ` [PATCH v6 12/19] powerpc/mm/hash: Support 68 bit VA Michael Ellerman
2017-03-30 12:04 ` [PATCH v6 13/19] powerpc/mm/hash: Convert mask to unsigned long Michael Ellerman
2017-03-30 12:04 ` Michael Ellerman [this message]
2017-03-30 12:04 ` [PATCH v6 15/19] powerpc/mm: Add addr_limit to mm_context and use it to derive max slice index Michael Ellerman
2017-03-30 12:04 ` [PATCH v6 16/19] powerpc/mm/hash: Store addr_limit in PACA Michael Ellerman
2017-03-30 12:04 ` [PATCH v6 17/19] powerpc/pseries: Skip using reserved virtual address range Michael Ellerman
2017-03-30 12:04 ` [PATCH v6 18/19] powerpc/mm: Switch some TASK_SIZE checks to use mm_context addr_limit Michael Ellerman
2017-03-30 12:04 ` [PATCH v6 19/19] powerpc/mm: Enable mappings above 128TB Michael Ellerman
2017-04-03 10:13 ` [v6, 01/19] powerpc/mm/slice: Convert slice_mask high slice to a bitmap Michael Ellerman

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=1490875447-4016-14-git-send-email-mpe@ellerman.id.au \
    --to=mpe@ellerman.id.au \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=linuxppc-dev@ozlabs.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).