Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 4547

kernel-2.6.18-194.11.1.el5.src.rpm

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;