makedumpfile fails on 4.4 longterm kernel with kaslr enabled

daichi1.fukui at toshiba.co.jp daichi1.fukui at toshiba.co.jp
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
https://sourceforge.net/p/makedumpfile/code/ci/4944f934845c81f28667b4d7d6452edba062e8e2/

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.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=021182e52fe01c1f7b126f97fd6ba048dc4234fd

In addition, the patch depends on CONFIG_RANDOMIZE_MEMORY, but Linux 4.4 does not support the configuration.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0483e1fa6e09d4948272680f691dccb1edb9677f

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 kernel.org for details:
https://www.kernel.org/category/releases.html

Can you help us correct the compatibility issue?

Thanks,
Fukui






More information about the kexec mailing list