Package: kexec-tools
Version: 2.0.25-3
debian 12 arm kdump-tools service have a error log:
"systemctl status kdump-tools: Can't get the symbol of _text to calculate page_offset"
when trigger a panic, the kdump makedumpfile failed, and print some error:
Starting kdump-tools:
running makedumpfile --dump-dmesg /proc/vmcore /var/crash/202410291445/dmesg.202410291445.
read_from_vmcore: Can't seek the dump memory(/proc/vmcore). (offset: ffff800181f8b000) Invalid argument
readpage_elf: Can't read the dump memory(/proc/vmcore).
readmem: type_addr: 1, addr:1c7de8800, size:8
vaddr_to_paddr_arm64: Can't read pgd
readmem: Can't convert a virtual address(ffff80000a0abd88) to physical address.
readmem: type_addr: 0, addr:ffff80000a0abd88, size:390
check_release: Can't get the address of system_utsname.
makedumpfile Failed.
kdump-tools: makedumpfile --dump-dmesg failed. dmesg content will be unavailable ... failed!
kdump-tools: failed to save dmesg content in /var/crash/202410291445 ... failed!
running makedumpfile -F -c -d 31 /proc/vmcore | compress > /var/crash/202410291445/dump-incomplete.
read_from_vmcore: Can't seek the dump memory(/proc/vmcore). (offset: ffff800181f8b000) Invalid argument
readpage_elf: Can't read the dump memory(/proc/vmcore).
readmem: type_addr: 1, addr:1c7de8800, size:8
vaddr_to_paddr_arm64: Can't read pgd
readmem: Can't convert a virtual address(ffff80000a0abd88) to physical address.
readmem: type_addr: 0, addr:ffff80000a0abd88, size:390
check_release: Can't get the address of system_utsname.
makedumpfile Failed.
kdump-tools: saved vmcore in /var/crash/202410291445.
we found a patch : https://lore.kernel.org/all/CAF+s44THuTneZr3ny1_FeB8b1+rytySadU4HMLEthnfxzF_F1A@mail.gmail.com/T/#m77ab2cac669ea3c3e9a22892d30b37822cbb6345 <https://lore.kernel.org/all/CAF+s44THuTneZr3ny1_FeB8b1+rytySadU4HMLEthnfxzF_F1A@mail.gmail.com/T/#m77ab2cac669ea3c3e9a22892d30b37822cbb6345 >
and verify it works. It seems that the function iomem_range_callback calculation kernel code elf_info.kern_paddr_start is incorrect
cat /boot/config-6.1.0-17-arm64 |grep CONFIG_KALLSYMS_ALL # CONFIG_KALLSYMS_ALL is not set
cat /proc/kallsyms | grep -e ' _text$' -> no output