makedumpfile fails on 4.4 longterm kernel with kaslr enabled

daichi1.fukui at daichi1.fukui at
Sun Mar 25 18:20:31 PDT 2018

Dear makedumpfile community,

Hi. My name is Fukui.
Please help me investigate an error related to makedumpfile.

When running the latest makedumpfile 1.6.3 on the Linux 4.4 kernel, we get an error:

vtop4_x86_64: Can't get a valid pml4.
readmem: Can't convert a virtual address(22000000) to physical Address
readmem: type_addr: 0, addr:22000000, size:8
get_page_offset_x86_64: Can't read page_offset_base

makedumpfile Failed.

After investigating the cause of this error, we found that the following patch fails to work correctly on Linux 4.4 kernel: 

[PATCH v5 2/2] x86_64: Calculate page_offset in case of re-filtering/sadump/virsh dump

For your information, here is our testing environment.
Linux kernel version: 4.4.112
makedumpfile version: 1.6.3 

According to the patch, the get_symbol_addr function gets the address of symbol "page_offset_base".

+       if (info->kaslr_offset) {
+               page_offset_base = get_symbol_addr("page_offset_base");
+               page_offset_base += info->kaslr_offset;

However, the symbol is available since Linux 4.8, so Linux 4.4 does not have the symbol.

In addition, the patch depends on CONFIG_RANDOMIZE_MEMORY, but Linux 4.4 does not support the configuration.

In short, on Linux 4.4, the kaslr patch (x86_64: Calculate page_offset in case of re-filtering/sadump/virsh dump)
does not work correctly because of lacking both of the symbol and the configuration.

Some may think why we run makedumpfile on Linux 4.4. 
We aim at building a longterm supportable Linux system on a PC platform.
Because 4.4 is a longterm release kernel, the kernel is very suitable for our goal.

Range of this influence can be large because Linux 4.4 will be maintained until 2020.
See for details:

Can you help us correct the compatibility issue?


More information about the kexec mailing list