aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Ying <ying.huang@intel.com>2009-05-26 15:55:25 +0800
committerHuang Ying <ying.huang@intel.com>2009-05-26 15:55:25 +0800
commit86d15fd02c989f09d1b94861748d4aff82294a5e (patch)
tree4eedeb4b3191dd98d9bdf66c9e2866c84f3c16f3
parent77b4b23826e5430edd0efc5f90443f4fa128f541 (diff)
downloadmce-inject-86d15fd02c989f09d1b94861748d4aff82294a5e.tar.gz
Support new fields of struct mce
For parsing output of mcelog. Signed-off-by: Huang Ying <ying.huang@intel.com>
-rw-r--r--mce.h3
-rw-r--r--mce.lex3
-rw-r--r--mce.y5
3 files changed, 10 insertions, 1 deletions
diff --git a/mce.h b/mce.h
index f6f9c07..2edc936 100644
--- a/mce.h
+++ b/mce.h
@@ -63,6 +63,9 @@ struct mce {
__u8 cpu; /* cpu that raised the error */
__u8 finished; /* entry is valid */
__u32 extcpu; /* extended CPU number */
+ __u32 socketid; /* CPU socket ID */
+ __u32 apicid; /* CPU initial apic ID */
+ __u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */
};
/*
diff --git a/mce.lex b/mce.lex
index ace3d57..9e350ad 100644
--- a/mce.lex
+++ b/mce.lex
@@ -65,6 +65,9 @@ static struct key {
KEY(RIP),
KEY(TSC),
KEY(TIME),
+ KEY(SOCKETID),
+ KEY(APICID),
+ KEY(MCGCAP),
KEY(ADDR),
KEY(MISC),
KEY(CPU),
diff --git a/mce.y b/mce.y
index e2d8a3c..5499eb3 100644
--- a/mce.y
+++ b/mce.y
@@ -40,7 +40,7 @@ static void init(void);
%}
%token STATUS RIP TSC ADDR MISC CPU BANK MCGSTATUS NOBROADCAST HOLD
-%token IN_IRQ IN_PROC PROCESSOR TIME
+%token IN_IRQ IN_PROC PROCESSOR TIME SOCKETID APICID MCGCAP
%token CORRECTED UNCORRECTED FATAL MCE
%token NUMBER
%token SYMBOL
@@ -74,6 +74,9 @@ mce_term: STATUS status_list { m.status = $2; }
| TSC NUMBER { m.tsc = $2; }
| TIME NUMBER { m.time = $2; }
+ | SOCKETID NUMBER { m.socketid = $2; }
+ | APICID NUMBER { m.apicid = $2; }
+ | MCGCAP NUMBER { m.mcgcap = $2; }
| RIP NUMBER { m.ip = $2; }
| RIP NUMBER ':' NUMBER { m.ip = $4; m.cs = $2; }
| RIP NUMBER ':' '<' NUMBER '>' '{' SYMBOL '}'