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

[Xen-devel] Re: [PATCH 6/6] Dump the MCE information in mc_panic and softirq



Acked-By: Christoph Egger <Christoph.Egger@xxxxxxx>


On Wednesday 09 June 2010 16:35:12 Jiang, Yunhong wrote:
> Sorry, forgot the attachment.
>
> --jyh
>
> >-----Original Message-----
> >From: Jiang, Yunhong
> >Sent: Wednesday, June 09, 2010 10:32 PM
> >To: Keir Fraser
> >Cc: xen-devel; Christoph Egger
> >Subject: [PATCH 6/6] Dump the MCE information in mc_panic and softirq
> >
> >Dump the MCE information in mc_panic and softirq
> >
> >We should not dump the mcinfo in mce handler, instead, we should do that
> > in mc_panic for fatal error or softirq for other errors.
> >
> >Signed-off-by: Jiang, Yunhong <yunhong.jiang@xxxxxxxxx>
> >
> > mce.c       |   24 ++++++++++++++++++++++++
> > mce_intel.c |    7 +++----
> >
> >diff -r 898279853894 xen/arch/x86/cpu/mcheck/mce.c
> >--- a/xen/arch/x86/cpu/mcheck/mce.c  Wed Jun 09 21:09:24 2010 +0800
> >+++ b/xen/arch/x86/cpu/mcheck/mce.c  Wed Jun 09 21:32:32 2010 +0800
> >@@ -1509,15 +1509,39 @@ long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u
> >     return ret;
> > }
> >
> >+int mcinfo_dumpped;
> >+static int x86_mcinfo_dump_panic(mctelem_cookie_t mctc)
> >+{
> >+    struct mc_info *mcip = mctelem_dataptr(mctc);
> >+
> >+    x86_mcinfo_dump(mcip);
> >+    mcinfo_dumpped++;
> >+
> >+    return 0;
> >+}
> >+
> >+/* XXX shall we dump commited mc_info?? */
> >+static void mc_panic_dump(void)
> >+{
> >+    int cpu;
> >+
> >+    dprintk(XENLOG_ERR, "Begin dump mc_info\n");
> >+    for_each_online_cpu(cpu)
> >+        mctelem_process_deferred(cpu, x86_mcinfo_dump_panic);
> >+    dprintk(XENLOG_ERR, "End dump mc_info, %x mcinfo dumped\n",
> >mcinfo_dumpped);
> >+}
> >+
> > void mc_panic(char *s)
> > {
> >     is_mc_panic = 1;
> >     console_force_unlock();
> >+
> >     printk("Fatal machine check: %s\n", s);
> >     printk("\n"
> >            "****************************************\n"
> >            "\n"
> >            "   The processor has reported a hardware error which
> > cannot\n" "   be recovered from.  Xen will now reboot the machine.\n"); +
> >    mc_panic_dump();
> >     panic("HARDWARE ERROR");
> > }
> >diff -r 898279853894 xen/arch/x86/cpu/mcheck/mce_intel.c
> >--- a/xen/arch/x86/cpu/mcheck/mce_intel.c    Wed Jun 09 21:09:24 2010 +0800
> >+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c    Wed Jun 09 21:23:08 2010 +0800
> >@@ -257,6 +257,8 @@ static int mce_delayed_action(mctelem_co
> >     switch (result)
> >     {
> >     case MCER_RESET:
> >+        dprintk(XENLOG_ERR, "MCE delayed action failed\n");
> >+        x86_mcinfo_dump(mctelem_dataptr(mctc));
> >         panic("MCE: Software recovery failed for the UCR\n");
> >         break;
> >     case MCER_RECOVERED:
> >@@ -266,6 +268,7 @@ static int mce_delayed_action(mctelem_co
> >     case MCER_CONTINUE:
> >         dprintk(XENLOG_INFO, "MCE: Error can't be recovered, "
> >             "system is tainted\n");
> >+        x86_mcinfo_dump(mctelem_dataptr(mctc));
> >         ret = 1;
> >         break;
> >     default:
> >@@ -755,10 +758,6 @@ 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.
> >          */



-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Andrew Bowd, Thomas M. McCoy, Giuliano Meroni
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632


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


 


Rackspace

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