[PATCH v8 9/9] vmcore: support mmap() on /proc/vmcore

Arnd Bergmann arnd at arndb.de
Fri Jun 7 14:34:58 EDT 2013


On Friday 07 June 2013, HATAYAMA Daisuke wrote:
> Thanks for trying the build and your report!
> 
> OTOH, I don't have no-MMU architectures; x86 box only. I cannot reproduce this build error. 
> Could you give me your build log? I want to use it to detect what part depends on CONFIG_MMU.

What I get is a link-time error:

fs/built-in.o: In function `mmap_vmcore':
:(.text+0x4bc18): undefined reference to `remap_vmalloc_range_partial'
fs/built-in.o: In function `merge_note_headers_elf32.constprop.4':
:(.init.text+0x142c): undefined reference to `find_vm_area'

and I used this patch to temporarily work around the problem, effectively disabling all
of /proc/vmcore on non-MMU kernels.

diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h
index 37e4f8d..9a078ef 100644
--- a/include/linux/crash_dump.h
+++ b/include/linux/crash_dump.h
@@ -55,7 +55,7 @@ static inline int is_kdump_kernel(void)
 
 static inline int is_vmcore_usable(void)
 {
-	return is_kdump_kernel() && elfcorehdr_addr != ELFCORE_ADDR_ERR ? 1 : 0;
+	return IS_ENABLED(CONFIG_MMU) && is_kdump_kernel() && elfcorehdr_addr != ELFCORE_ADDR_ERR ? 1 : 0;
 }
 
 /* vmcore_unusable() marks the vmcore as unusable,


For testing, I used ARM at91x40_defconfig and manually turned on VMCORE support in
menuconfig, but it happened before using "randconfig". On most distros you can
these days install an arm cross compiler using yum or apt-get and build
the kernel yourself with 'make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-'

	Arnd



More information about the kexec mailing list