[makedumpfile PATCH] ppc64: update hash page table geometry

Hari Bathini hbathini at linux.vnet.ibm.com
Fri Nov 10 09:13:41 PST 2017


Starting with kernel 4.12, BOOK3S hash page table geometry is updated
to accommodate larger virtual address range. Update here accordingly.

Signed-off-by: Hari Bathini <hbathini at linux.vnet.ibm.com>
---
 arch/ppc64.c   |   12 +++++++++---
 makedumpfile.h |    3 +++
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/arch/ppc64.c b/arch/ppc64.c
index 2f5a0da..8bdbcc5 100644
--- a/arch/ppc64.c
+++ b/arch/ppc64.c
@@ -245,10 +245,16 @@ ppc64_vmalloc_init(void)
 
 		} else if (info->kernel_version >= KERNEL_VERSION(4, 6, 0)) {
 			info->l1_index_size = PTE_INDEX_SIZE_L4_64K_3_10;
-			info->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_6;
-			info->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_6;
-			info->l4_index_size = PGD_INDEX_SIZE_L4_64K_3_10;
 
+			if (info->kernel_version >= KERNEL_VERSION(4, 12, 0)) {
+				info->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_12;
+				info->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_12;
+				info->l4_index_size = PGD_INDEX_SIZE_L4_64K_4_12;
+			} else {
+				info->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_6;
+				info->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_6;
+				info->l4_index_size = PGD_INDEX_SIZE_L4_64K_3_10;
+			}
 		} else if (info->kernel_version >= KERNEL_VERSION(3, 10, 0)) {
 			info->l1_index_size = PTE_INDEX_SIZE_L4_64K_3_10;
 			info->l2_index_size = PMD_INDEX_SIZE_L4_64K_3_10;
diff --git a/makedumpfile.h b/makedumpfile.h
index db75379..b983aaf 100644
--- a/makedumpfile.h
+++ b/makedumpfile.h
@@ -670,6 +670,9 @@ unsigned long get_kvbase_arm64(void);
 #define PGD_INDEX_SIZE_L4_64K_3_10  12
 #define PMD_INDEX_SIZE_L4_64K_4_6  5
 #define PUD_INDEX_SIZE_L4_64K_4_6  5
+#define PMD_INDEX_SIZE_L4_64K_4_12 10
+#define PUD_INDEX_SIZE_L4_64K_4_12 7
+#define PGD_INDEX_SIZE_L4_64K_4_12 8
 #define PTE_INDEX_SIZE_RADIX_64K  5
 #define PMD_INDEX_SIZE_RADIX_64K  9
 #define PUD_INDEX_SIZE_RADIX_64K  9




More information about the kexec mailing list