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

[Xen-changelog] [xen-4.0-testing] mce: Replace BUG() with a console warning in the MCE handler.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1278675832 -3600
# Node ID a68f837a9dd884075505e252fcfa6eec88e1cade
# Parent  1cf6d4f98f7a8d6a6e0a444135b70d2ba7da4fe0
mce: Replace BUG() with a console warning in the MCE handler.

If the hardware reports corrected errors that we didn't see through
the status MSRs, complain on the console but don't BUG() the machine.

Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
xen-unstable changeset:   21757:50cf787b70eb
xen-unstable date:        Fri Jul 09 12:21:31 2010 +0100
---
 xen/arch/x86/cpu/mcheck/amd_nonfatal.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff -r 1cf6d4f98f7a -r a68f837a9dd8 xen/arch/x86/cpu/mcheck/amd_nonfatal.c
--- a/xen/arch/x86/cpu/mcheck/amd_nonfatal.c    Fri Jul 09 12:41:16 2010 +0100
+++ b/xen/arch/x86/cpu/mcheck/amd_nonfatal.c    Fri Jul 09 12:43:52 2010 +0100
@@ -152,14 +152,19 @@ static void mce_amd_work_fn(void *data)
 
                /* HW does not count *all* kinds of correctable errors.
                 * Thus it is possible, that the polling routine finds an
-                * correctable error even if the HW reports nothing.
-                * However, the other way around is not possible (= BUG).
-                */ 
+                * correctable error even if the HW reports nothing. */ 
                if (counter > 0) {
                        /* HW reported correctable errors,
                         * the polling routine did not find...
                         */
-                       BUG_ON(adjust == 0);
+                       if (adjust == 0) {
+                               printk("CPU counter reports %"PRIu32
+                                       " correctable hardware error%s that %s"
+                                       " not reported by the status MSRs\n",
+                                       counter,
+                                       (counter == 1 ? "" : "s"),
+                                       (counter == 1 ? "was" : "were"));
+                       }
                        /* subtract 1 to not double count the error 
                         * from the polling service routine */ 
                        adjust += (counter - 1);

_______________________________________________
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®.