[PATCH] makedumpfile: Support ARM64

Pratyush Anand panand at redhat.com
Thu Aug 20 04:21:50 PDT 2015


Hi Sameer,

On 19/08/2015:11:16:07 PM, sgoel at codeaurora.org wrote:
> Hi Pratyush,
> 
> I made the following changes to the code:
> 
> KVBASE was being mapped to page_offset, so the mem_map that I saw using
> the kmem command in crash did not seem to audit with the data generated by
> make dumpfile. I changed this to vmalloc_start.

I am not sure if KVBASE should be VMALLOC_START. May be Atsushi can comment on
that. But if so, did you correct info->page_offset definition in
get_machdep_info_arm64? Something like following...

diff --git a/arch/arm64.c b/arch/arm64.c
index 4d50012529c3..a94a4ba16dd5 100644
--- a/arch/arm64.c
+++ b/arch/arm64.c
@@ -199,7 +199,8 @@ get_machdep_info_arm64(void)
 {
 	info->max_physmem_bits = PHYS_MASK_SHIFT;
 	info->section_size_bits = SECTIONS_SIZE_BITS;
-	info->page_offset = KVBASE;
+	info->page_offset = SYMBOL(_stext)
+		& (0xffffffffffffffffUL << (VA_BITS - 1));
 	info->vmalloc_start = 0xffffffffffffffffUL << VA_BITS;
 	info->vmalloc_end = PAGE_OFFSET - PUD_SIZE - VMEMMAP_SIZE - 0x10000;
 	info->vmemmap_start = VMALLOC_END + 0x10000;
diff --git a/makedumpfile.h b/makedumpfile.h
index c33b5f321d9a..f7d6fbefe98e 100644
--- a/makedumpfile.h
+++ b/makedumpfile.h
@@ -488,8 +488,7 @@ int get_va_bits_arm64(void);
 #define ARM64_PGTABLE_LEVELS	get_pgtable_level_arm64()
 #define VA_BITS			get_va_bits_arm64()
 #define PAGE_SHIFT		get_page_shift_arm64()
-#define KVBASE_MASK		(0xffffffffffffffffUL << (VA_BITS - 1))
-#define KVBASE			(SYMBOL(_stext) & KVBASE_MASK)
+#define KVBASE			VMALLOC_START
 #endif /* aarch64 */
 
 #ifdef __arm__

~Pratyush



More information about the kexec mailing list