From: Bill Burns <bburns@redhat.com> Date: Wed, 4 Jun 2008 07:07:47 -0400 Subject: [xen] save phys addr for crash utility Message-id: 20080604110746.30379.13760.sendpatchset@localhost.localdomain O-Subject: [RHEL5.3 PATCH] Xen - Save Xen phys addr for crash utility Bugzilla: 443618 RH-Acked-by: Dave Anderson <anderson@redhat.com> RH-Acked-by: Rik van Riel <riel@redhat.com> RH-Acked-by: Don Dutile <ddutile@redhat.com> Fixes bz 443618 Problem description: Crash could not open a vmcore of xen-kdump with crash due to a memory layout change we inherited with the Hypervisr 3.1.2 rebase doe for RHEL 5.2. There were two proposed fixes and the one taken was to save the physical start address of Xen in the crash_xen_info structure. Upstream status: Xen unstable changeset 17757 http://xenbits.xensource.com/xen-unstable.hg?rev/439a3e9459f2 Brew build: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=1340613 Testing: Booted and run on test system. Please review and ACK. Thanks, Bill Derived from Xen unstable changeset: Add xen_phys_start value in the crash info note changeset 17757: 439a3e9459f2 parent 17756: c76e7f396c03 child 17758: 9c14ba60616d author: Keir Fraser <keir.fraser@citrix.com> date: Fri May 30 16:04:20 2008 +0100 (3 days ago) files: xen/arch/x86/crash.c xen/include/xen/elfcore.h description: Add xen_phys_start value in the crash info note This patch makes the vmcore utilities (ex. crash, makedumpfile) be able to get the relocation address of the xen hypervisor from a vmcore. It is necessary for the utilities to find the data of the hypervisor structures. Note that this patch does not raise any comptibility issue for the utilities (which I know) nor the other components of xen. Signed-off-by: Itsuro Oda <oda@valinux.co.jp> diff --git a/arch/x86/crash.c b/arch/x86/crash.c index 57e3af4..990b742 100644 --- a/arch/x86/crash.c +++ b/arch/x86/crash.c @@ -102,6 +102,7 @@ void machine_crash_shutdown(void) hvm_disable(); info = kexec_crash_save_info(); + info->xen_phys_start = xen_phys_start; info->dom0_pfn_to_mfn_frame_list_list = arch_get_pfn_to_mfn_frame_list_list(dom0); } diff --git a/include/xen/elfcore.h b/include/xen/elfcore.h index fbe8ed1..f6c2ceb 100644 --- a/include/xen/elfcore.h +++ b/include/xen/elfcore.h @@ -66,6 +66,7 @@ typedef struct { unsigned long xen_compile_time; unsigned long tainted; #ifdef CONFIG_X86 + unsigned long xen_phys_start; unsigned long dom0_pfn_to_mfn_frame_list_list; #endif } crash_xen_info_t;