linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kdump, x86: report actual value of phys_base in VMCOREINFO
@ 2014-11-12  6:40 HATAYAMA Daisuke
  2014-11-12  8:14 ` Petr Tesarik
  2014-11-12 22:12 ` Vivek Goyal
  0 siblings, 2 replies; 16+ messages in thread
From: HATAYAMA Daisuke @ 2014-11-12  6:40 UTC (permalink / raw)
  To: ebiederm, vgoyal; +Cc: linux-kernel, kexec, kumagai-atsushi, anderson

Currently, VMCOREINFO note information reports the virtual address of
phys_base that is assigned to symbol phys_base. But this doesn't make
sense because to refer to value of the phys_base, it's necessary to
get the value of phys_base itself we are now about to refer to.

Userland tools related to kdump such as makedumpfile and crash utility
so far have made some efforts to calculate phys_base from memory
mapping information on a variety of crash dump formats. But there's no
guarantee to keep maintaining it in the future.

This is also useful for crash dump mechanism running outside Linux
kernel such as virtual machine hypervisor such as qemu dump, which
ordinary users use via virsh dump, or ones implemented on vendor
specific firmware. They cannot get phys_base without special mechanism
because phys_base is kernel information.

To get VMCOREINFO in vmcore, it's easy to use strings and grep
commands like this; VMCOREINFO consists of simple string:

$ strings vmcore-3.10.0-121.el7.x86_64 | grep -E ".*VMCOREINFO.*" -A 100
VMCOREINFO
OSRELEASE=3.10.0-121.el7.x86_64
PAGESIZE=4096
...

Similarly, this is also useful to get value of phys_base in kdump 2nd
kernel contained in vmcore using the above-mentioned external crash
dump mechanism; kdump 2nd kernel is an inherently relocated kernel.

This commit doesn't remove VMCOREINFO_SYMBOL(phys_base) line because
makedumpfile refers to it and if removing it, old versions
makedumpfile doesn't work well.

Signed-off-by: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
---
 arch/x86/kernel/machine_kexec_64.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index 4859810..e6d00a4 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -334,6 +334,7 @@ void arch_crash_save_vmcoreinfo(void)
 #endif
 	vmcoreinfo_append_str("KERNELOFFSET=%lx\n",
 			      (unsigned long)&_text - __START_KERNEL);
+	VMCOREINFO_LENGTH(phys_base, phys_base);
 }
 
 /* arch-dependent functionality related to kexec file-based syscall */
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2014-11-17 20:39 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-12  6:40 [PATCH] kdump, x86: report actual value of phys_base in VMCOREINFO HATAYAMA Daisuke
2014-11-12  8:14 ` Petr Tesarik
2014-11-13  0:32   ` HATAYAMA Daisuke
2014-11-12 22:12 ` Vivek Goyal
2014-11-13  0:17   ` HATAYAMA Daisuke
2014-11-13  8:06     ` Petr Tesarik
2014-11-13  8:30       ` HATAYAMA, Daisuke
2014-11-13 14:25         ` Vivek Goyal
2014-11-13 14:48           ` Petr Tesarik
2014-11-14  1:42             ` HATAYAMA Daisuke
2014-11-14  8:31               ` Petr Tesarik
2014-11-14  9:54                 ` HATAYAMA Daisuke
2014-11-14 12:36                   ` Petr Tesarik
2014-11-17  5:22                     ` HATAYAMA Daisuke
2014-11-14  1:31           ` HATAYAMA Daisuke
2014-11-17 20:38             ` Vivek Goyal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).