[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Dump machine check context for fatal machine check



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1265624331 0
# Node ID 5b895c3f4386fc551bcfa3688d255af6561165f9
# Parent  391cb20b6ea96d6f36b3647927744bf0e4057c5b
Dump machine check context for fatal machine check

This small patches enable Xen hypervisor to always dump machine check
ontext, previously it will not print anything if fatal MCE happens. It
also add checking for NULL pointer.

It also change the address passing to guest to always use guest
mfn. It should benifit non-translated guest.

Signed-off-by: Jiang, Yunhong <yunhong.jiang@xxxxxxxxx>
---
 xen/arch/x86/cpu/mcheck/mce_intel.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff -r 391cb20b6ea9 -r 5b895c3f4386 xen/arch/x86/cpu/mcheck/mce_intel.c
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c       Mon Feb 08 10:18:14 2010 +0000
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c       Mon Feb 08 10:18:51 2010 +0000
@@ -370,7 +370,7 @@ static void intel_UCR_handler(struct mci
                           }
 
                           gfn =
-                              mfn_to_gmfn(d, ((bank->mc_addr) >> PAGE_SHIFT));
+                              get_gpfn_from_mfn((bank->mc_addr) >> PAGE_SHIFT);
                           bank->mc_addr =  gfn << PAGE_SHIFT |
                                         (bank->mc_addr & (PAGE_SIZE -1 ));
                           if (fill_vmsr_data(bank, global->mc_gstatus) == -1)
@@ -663,6 +663,10 @@ static void intel_machine_check(struct c
     mctc = mcheck_mca_logout(MCA_MCE_SCAN, mca_allbanks, &bs, &clear_bank);
 
     if (bs.errcnt) {
+        /* dump MCE error */
+        if (mctc != NULL)
+            x86_mcinfo_dump(mctelem_dataptr(mctc));
+
         /*
          * Uncorrected errors must be dealth with in softirq context.
          */
@@ -690,9 +694,6 @@ static void intel_machine_check(struct c
         mce_printk(MCE_CRITICAL, "MCE: clear_bank map %lx on CPU%d\n",
                 *((unsigned long*)clear_bank), smp_processor_id());
         mcheck_mca_clearbanks(clear_bank);
-       /* Print MCE error */
-        x86_mcinfo_dump(mctelem_dataptr(mctc));
-
     } else {
         if (mctc != NULL)
             mctelem_dismiss(mctc);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.