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

HATAYAMA Daisuke d.hatayama at gmail.com
Sat Jun 8 06:42:22 EDT 2013


2013/6/8 Arnd Bergmann <arnd at arndb.de>:
> 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-'
>

Thanks for the detailed explanation. To be honest, I had totally
forgotten existence of cross-compiler and need of build check on
multiple architectures before posting patch set... I tried installing
cross compiler for arm and I've successfully got arm compiler using
yum. I feel it much easier than I tried building them on console some
years.

I successfully reproduce the build error you see and I found I
overlooked no MMU system. This build error is caused by my mmap patch
set I made that maps physically non-contiguous objects into virtually
contiguous user-space as ELF layout. For this, MMU is essential.

I'll post a patch to disable mmap on /proc/vmcore on no MMU system
next week. I cannot use  compony email address now.

Thanks.
HATAYAMA, Daisuke



More information about the kexec mailing list