[PATCH] fix missing Crash note in /proc/iomem

Itsuro ODA oda at valinux.co.jp
Mon Jul 13 00:01:41 EDT 2009


Hi,

Missing "Crash note" in /proc/iomem (dom 0) happens on the Xen 3.4.*.
This causes a crash dump cannot be analyzed normally.

This patch fixes this problem.
This patch is for linux-2.6.18-xen.hg.

The range of "Crash note" is within the "Hypervisor code and data" 
on the Xen 3.3.* and before. The code assumed this.
It is not true for the Xen 3.4.

== example: before patch: one of two "Crash note" is missing
# cat /proc/iomem 
...
00100000-c779ffff : System RAM
  02000000-09ffffff : Crash kernel
  c7300000-c74aa35f : Hypervisor code and data
    c7456080-c7456213 : Crash note
c77a0000-c77adfff : ACPI Tables
...

== example: after patch: two "Crash note" are showed normally
# cat /proc/iomem 
...
00100000-c779ffff : System RAM
  02000000-09ffffff : Crash kernel
  c7300000-c74aa35f : Hypervisor code and data
    c7456080-c7456213 : Crash note
  c7791c00-c7791df3 : Crash note
c77a0000-c77adfff : ACPI Tables
...

This problem is occured on the x86_64 only. This patch has no bad effect for
other architectures and is backword compatible.

Please apply this patch to the newer dom-0 kernel too.

Thanks.
Itsuro Oda

---
Signed-off-by: Itsuro Oda <oda at valinux.co.jp>

diff -r b086278a4406 drivers/xen/core/machine_kexec.c
--- a/drivers/xen/core/machine_kexec.c	Mon Jun 29 10:57:46 2009 +0100
+++ b/drivers/xen/core/machine_kexec.c	Fri Jul 10 16:57:34 2009 +0900
@@ -144,7 +144,15 @@ void __init xen_machine_kexec_setup_reso
 
 void __init xen_machine_kexec_register_resources(struct resource *res)
 {
+	int k;
+	struct resource *r;
+
 	request_resource(res, &xen_hypervisor_res);
+	for (k = 0; k < xen_max_nr_phys_cpus; k++) {
+		r = xen_phys_cpus + k;
+		if (r->parent == NULL) /* out of xen_hypervisor_res range */
+			request_resource(res, r);
+	} 
 	machine_kexec_register_resources(res);
 }

-- 
Itsuro ODA <oda at valinux.co.jp>




More information about the kexec mailing list