Merge pull request #125 from vasilykh-arista/master
1) EDAC drivers say SOCKET instead of SOCKETID. Handle both.
2) Parse PPIN (processor identifier) instead of bailing out
diff --git a/input/icxd_uc_scrub b/input/icxd_uc_scrub
new file mode 100644
index 0000000..c1b0468
--- /dev/null
+++ b/input/icxd_uc_scrub
@@ -0,0 +1,4 @@
+CPU 0: Machine Check Exception: 5 Bank 14: be000f42001000c1
+RIP !INEXACT! 10:<ffffffff81d56ca9> {intel_idle+0x59/0xa0}
+TSC 9b34d209b1e46f ADDR 63a6bdf80 MISC 9000a05ba58fc86 PPIN 67d6735bd52bf4b1
+PROCESSOR 0:606c1 TIME 1774372375 SOCKET 0 APIC 0 microcode 1000211
diff --git a/mcelog.c b/mcelog.c
index 95c9ad8..81fcb7f 100644
--- a/mcelog.c
+++ b/mcelog.c
@@ -756,6 +756,12 @@
else
FIELD(socketid);
}
+ else if (!strncmp(s, "SOCKET", 6)) {
+ if ((n = sscanf(s, "SOCKET %u%n", &m.socketid, &next)) != 1)
+ missing++;
+ else
+ FIELD(socketid);
+ }
else if (!strncmp(s, "CPUID", 5)) {
unsigned fam, mod;
char vendor[31];
@@ -792,6 +798,12 @@
FIELD(addr);
}
}
+ else if (!strncmp(s, "PPIN", 4)) {
+ if ((n = sscanf(s, "PPIN %llx%n", &m.ppin, &next)) < 1)
+ missing++;
+ else
+ FIELD(ppin);
+ }
else if (!match_patterns(s, skip_patterns))
n = 0;
else {