[Crash-utility] [PATCH] arm64 : Update the section_size_bits for latest kernel

HAGIO KAZUHITO(萩尾 一仁) k-hagio-ab at nec.com
Thu Nov 11 06:28:41 UTC 2021


Hi Lianbo, Ankur,

> This change covers more scenarios and looks good to me. Could you please update this patch? Ankur and Kazu.

I've updated, does this work well?

--
>From 9d6fca4d951f8bbb8c83078339e092da2d2fb0e0 Mon Sep 17 00:00:00 2001
From: Kazuhito Hagio <k-hagio-ab at nec.com>
Date: Thu, 11 Nov 2021 15:20:52 +0900
Subject: [PATCH] arm64: Update SECTION_SIZE_BITS for kernels >= 5.12

Update the default SECTION_SIZE_BITS value for arm64 Linux 5.12
and later kernels that contain kernel commit f0b13ee23241
("arm64/sparsemem: reduce SECTION_SIZE_BITS").

Reported-by: Ankur Bansal <er.ankurbansal at gmail.com>
Signed-off-by: Kazuhito Hagio <k-hagio-ab at nec.com>
---
 arm64.c | 8 +++++++-
 defs.h  | 4 +++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/arm64.c b/arm64.c
index 3dcbcc642fda..94681d1a37db 100644
--- a/arm64.c
+++ b/arm64.c
@@ -1116,7 +1116,13 @@ arm64_get_section_size_bits(void)
 	int ret;
 	char *string;
 
-	machdep->section_size_bits = _SECTION_SIZE_BITS;
+	if (THIS_KERNEL_VERSION >= LINUX(5,12,0)) {
+		if (machdep->pagesize == 65536)
+			machdep->section_size_bits = _SECTION_SIZE_BITS_5_12_64K;
+		else
+			machdep->section_size_bits = _SECTION_SIZE_BITS_5_12;
+	} else
+		machdep->section_size_bits = _SECTION_SIZE_BITS;
 
 	if ((string = pc->read_vmcoreinfo("NUMBER(SECTION_SIZE_BITS)"))) {
 		machdep->section_size_bits = atol(string);
diff --git a/defs.h b/defs.h
index 971005596506..a2f30853a4b1 100644
--- a/defs.h
+++ b/defs.h
@@ -3261,7 +3261,9 @@ typedef signed int s32;
 #define ARM64_STACK_SIZE   (16384)
 #define ARM64_IRQ_STACK_SIZE   ARM64_STACK_SIZE
 
-#define _SECTION_SIZE_BITS      30
+#define _SECTION_SIZE_BITS           30
+#define _SECTION_SIZE_BITS_5_12      27
+#define _SECTION_SIZE_BITS_5_12_64K  29
 #define _MAX_PHYSMEM_BITS       40
 #define _MAX_PHYSMEM_BITS_3_17  48
 #define _MAX_PHYSMEM_BITS_52    52
-- 
2.27.0





More information about the Crash-utility mailing list