From: Wang Nan <wangnan0@huawei.com>
To: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>,
Simon Horman <horms@verge.net.au>,
"kexec@lists.infradead.org" <kexec@lists.infradead.org>
Subject: [BUG REPORT] kexec and makedumpfile can't detect PAGE_OFFSET on arm
Date: Mon, 19 May 2014 19:59:30 +0800 [thread overview]
Message-ID: <5379F222.4090604@huawei.com> (raw)
Hi Atsushi and Simon,
I find a problem about VMSPLIT on arm plarform, related to kexec and
makedumpfile.
When CONFIG_VMSPLIT_1G/2G is selected by kernel, PAGE_OFFSET is actually
0x40000000 or 0x80000000. However, kexec hard codes PAGE_OFFSET to
0xc0000000 (in kexec/arch/arm/crashdump-arm.h), which is incorrect in
these situations. For example, on realview-pbx board with 1G/3G VMSPLIT,
PHDRs in generated /proc/vmcore is as follow:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
NOTE 0x001000 0x00000000 0x00000000 0x00690 0x00690 0
LOAD 0x002000 0xc0000000 0x00000000 0x10000000 0x10000000 RWE 0
LOAD 0x10002000 0xe0000000 0x20000000 0x8000000 0x8000000 RWE 0
LOAD 0x18002000 0xf0000000 0x30000000 0x10000000 0x10000000 RWE 0
LOAD 0x28002000 0x40000000 0x80000000 0x10000000 0x10000000 RWE 0
Which should be:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
...
LOAD ... 0x40000000 0x00000000 0x10000000 0x10000000 RWE 0
LOAD ... 0x60000000 0x20000000 0x8000000 0x8000000 RWE 0
LOAD ... 0x70000000 0x30000000 0x10000000 0x10000000 RWE 0
LOAD ... 0xc0000000 0x80000000 0x10000000 0x10000000 RWE 0
I don't know why crash utility can deal with it without problem, but in
makedumpfile such VMSPLIT setting causes segfault:
$ ./makedumpfile -c -d 31 /proc/vmcore ./out -f
The kernel version is not supported.
The created dumpfile may be incomplete.
Excluding unnecessary pages : [ 0.0 %] /Segmentation fault
There are many ways to deal with it, I want discuss them in the maillist and
make a decision:
1. Kexec changes, detect PAGE_OFFSET dynamically. However, I don't know
whether there is a reliably way for this purpose, here I suggest
kernel to export PAGE_OFFSET through sysfs, such as
/sys/kernel/page_offset.
2. Or, kexec accepts PAGE_OFFSET as a command line arguments, let user
provide correct information.
3. Or, makedumpfile changes, don't trust EHDR anymore. Kernel should
export PAGE_OFFSET through VMCOREINFO.
How do you feel?
Thank you!
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
reply other threads:[~2014-05-19 12:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5379F222.4090604@huawei.com \
--to=wangnan0@huawei.com \
--cc=horms@verge.net.au \
--cc=kexec@lists.infradead.org \
--cc=kumagai-atsushi@mxc.nes.nec.co.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.