mcelog/mcelog-thermal

43 lines
929 B
Plaintext

--- mcelog/p4.c~ 2005-02-09 12:20:20.000000000 +0100
+++ mcelog/p4.c 2006-05-27 06:22:06.000000000 +0200
@@ -24,6 +24,8 @@
#include <stdio.h>
#include "mcelog.h"
+#define BANK_THERMAL 128
+
/* decode mce for P4/Xeon family */
static inline int test_prefix(int nr, __u32 value)
@@ -272,8 +274,21 @@
Wprintf("\n");
}
+static void decode_thermal(struct mce *log)
+{
+ if (log->status & 1)
+ Wprintf("Processor core is above trip temperature. Throttling enabled.\n");
+ else
+ Wprintf("Processor core below trip temperature. Throttling disabled\n");
+}
+
void decode_p4_mc(struct mce *log)
{
+ if (log->bank == BANK_THERMAL) {
+ decode_thermal(log);
+ return;
+ }
+
decode_mcg(log->mcgstatus);
decode_mci(log->status);
}
@@ -281,6 +296,8 @@
char *p4_bank_name(int num)
{
static char bname[64];
+ if (num == BANK_THERMAL)
+ return "THERMAL EVENT";
sprintf(bname, "BANK %d", num);
return bname;
}