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

Reply via email to