I have a arm64 system, I can find the virtural memory layout during booting:
Virtual kernel memory layout:
.............................
memory : 0xffff800000200000 - 0xffff801800000000 ( 98302 MB)
Then I can read the elf_info in vmcore:
readelf -l vmcore
Program Headers:
Type Offset VirtAddr PhysAddr FileSize
...............................................................................
LOAD 0x0000000076d40000 0xffff80017fe00000 0x0000000180000000 0x0000001680000000
The end of vmcore's VirtAddr is
(0xffff80017fe00000 + 0x0000001680000000) = 0xFFFF8017FFE00000
The end of vmlinux's VirtAddr is
0xffff801800000000
They have 0x20000 offset.
If we use vmcore-dmesg to read the log_buf from vmcore, we would get
the below error:
vmcore-dmesg vmcore
"No program header covering vaddr 0xffff8017ffe90000 found kexec bug?"
Since on my system, log_buf is in 0xffff8017ffe90000, it exceeds the end
of vmcore VirtAddr.
With my patch, vmcore-dmesg can read all dmesg info happily.
Yanjiang Jin (1):
arm64: update PHYS_OFFSET to conform to kernel
kexec/arch/arm64/kexec-arm64.c | 100 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 100 insertions(+)
--
1.8.3.1
This email is intended only for the named addressee. It may contain information
that is confidential/private, legally privileged, or copyright-protected, and
you should handle it accordingly. If you are not the intended recipient, you do
not have legal rights to retain, copy, or distribute this email or its
contents, and should promptly delete the email and all electronic copies in
your system; do not retain copies in any media. If you have received this email
in error, please notify the sender promptly. Thank you.
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec