File makedumpfile-ppc64-update-hash-page-table-geometry.patch of Package makedumpfile.8642
From: Hari Krishna Bathini <hbathini@in.ibm.com>
Subject: book3s/ppc64: update hash page table geometry
Patch-mainline: never, SLE12-SP3 specific
Kernel commit f6eedbba7a26 ("powerpc/mm/hash: Increase VA range to 128TB")
updated hash page table geometry. A modified version of this commit is
included in SLES12 SP3. Make the corresponding changes in makedumpfile
tool for filtering dump appropriately.
---
arch/ppc64.c | 10 ++++++++--
makedumpfile.h | 2 ++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/arch/ppc64.c b/arch/ppc64.c
index 6aeab7e..98c4ff3 100644
--- a/arch/ppc64.c
+++ b/arch/ppc64.c
@@ -253,7 +253,10 @@ ppc64_vmalloc_init(void)
info->l1_index_size = PTE_INDEX_SIZE_L4_64K_3_10;
info->l2_index_size = PMD_INDEX_SIZE_L4_64K_3_10;
info->l3_index_size = PUD_INDEX_SIZE_L4_64K;
- info->l4_index_size = PGD_INDEX_SIZE_L4_64K_3_10;
+ if (info->kernel_version >= KERNEL_VERSION(4, 4, 63))
+ info->l4_index_size = PGD_INDEX_SIZE_L4_64K_4_4_63;
+ else
+ info->l4_index_size = PGD_INDEX_SIZE_L4_64K_3_10;
} else {
info->l1_index_size = PTE_INDEX_SIZE_L4_64K;
info->l2_index_size = PMD_INDEX_SIZE_L4_64K;
@@ -289,7 +263,10 @@ ppc64_vmalloc_init(void)
info->l2_index_size = PMD_INDEX_SIZE_L4_4K;
info->l3_index_size = (info->kernel_version >= KERNEL_VERSION(3, 7, 0) ?
PUD_INDEX_SIZE_L4_4K_3_7 : PUD_INDEX_SIZE_L4_4K);
- info->l4_index_size = PGD_INDEX_SIZE_L4_4K;
+ if (info->kernel_version >= KERNEL_VERSION(4, 4, 63))
+ info->l4_index_size = PGD_INDEX_SIZE_L4_4K_4_4_63;
+ else
+ info->l4_index_size = PGD_INDEX_SIZE_L4_4K;
}
info->pte_rpn_shift = (info->kernel_version >= KERNEL_VERSION(4, 5, 0) ?
diff --git a/makedumpfile.h b/makedumpfile.h
index e32e567..f25b39f 100644
--- a/makedumpfile.h
+++ b/makedumpfile.h
@@ -642,6 +642,7 @@ unsigned long get_kvbase_arm64(void);
#define PUD_INDEX_SIZE_L4_4K 7
#define PGD_INDEX_SIZE_L4_4K 9
#define PUD_INDEX_SIZE_L4_4K_3_7 9
+#define PGD_INDEX_SIZE_L4_4K_4_4_63 12
#define PTE_INDEX_SIZE_RADIX_4K 9
#define PMD_INDEX_SIZE_RADIX_4K 9
#define PUD_INDEX_SIZE_RADIX_4K 9
@@ -660,6 +661,7 @@ unsigned long get_kvbase_arm64(void);
#define PTE_INDEX_SIZE_L4_64K_3_10 8
#define PMD_INDEX_SIZE_L4_64K_3_10 10
#define PGD_INDEX_SIZE_L4_64K_3_10 12
+#define PGD_INDEX_SIZE_L4_64K_4_4_63 15
#define PMD_INDEX_SIZE_L4_64K_4_6 5
#define PUD_INDEX_SIZE_L4_64K_4_6 5
#define PTE_INDEX_SIZE_RADIX_64K 5