SHA256
1
0
forked from pool/mcelog

Accepting request 728979 from home:MMuschner:branches:Base:System

OBS-URL: https://build.opensuse.org/request/show/728979
OBS-URL: https://build.opensuse.org/package/show/Base:System/mcelog?expand=0&rev=75
This commit is contained in:
Thomas Renninger 2019-09-09 09:10:17 +00:00 committed by Git OBS Bridge
parent 56a4e46443
commit b5ebe45a82
9 changed files with 78 additions and 104 deletions

View File

@ -16,11 +16,9 @@ Signed-off-by: Borislav Petkov <bp@suse.de>
rename k8.c => amd.c (97%)
rename k8.h => amd.h (79%)
Index: mcelog-1.60/Makefile
===================================================================
--- mcelog-1.60.orig/Makefile 2018-09-24 15:14:09.591339926 +0200
+++ mcelog-1.60/Makefile 2018-09-24 15:14:18.771885991 +0200
@@ -30,7 +30,7 @@ all: mcelog
--- mcelog-1.64+git20190805.e53631f.orig/Makefile 2019-09-06 14:06:56.229228424 +0200
+++ mcelog-1.64+git20190805.e53631f/Makefile 2019-09-06 14:09:39.241237130 +0200
@@ -30,7 +30,7 @@
.PHONY: install clean depend FORCE
@ -29,9 +27,7 @@ Index: mcelog-1.60/Makefile
nehalem.o dunnington.o tulsa.o config.o memutil.o msg.o \
eventloop.o leaky-bucket.o memdb.o server.o trigger.o \
client.o cache.o sysfs.o yellow.o page.o rbtree.o \
Index: mcelog-1.60/k8.c
===================================================================
--- mcelog-1.60.orig/k8.c 2018-08-09 23:49:49.000000000 +0200
--- mcelog-1.64+git20190805.e53631f.orig/k8.c 2019-09-06 14:06:51.681228181 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,281 +0,0 @@
-/* Based on K8 decoding code written for the 2.4 kernel by Andi Kleen and
@ -315,10 +311,8 @@ Index: mcelog-1.60/k8.c
- }
- return 1;
-}
Index: mcelog-1.60/amd.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.60/amd.c 2018-09-24 15:14:18.771885991 +0200
+++ mcelog-1.64+git20190805.e53631f/amd.c 2019-09-06 14:09:39.241237130 +0200
@@ -0,0 +1,282 @@
+/* Based on K8 decoding code written for the 2.4 kernel by Andi Kleen and
+ * Eric Morton. Hacked and extended for mcelog by AK.
@ -602,9 +596,7 @@ Index: mcelog-1.60/amd.c
+ }
+ return 1;
+}
Index: mcelog-1.60/k8.h
===================================================================
--- mcelog-1.60.orig/k8.h 2018-08-09 23:49:49.000000000 +0200
--- mcelog-1.64+git20190805.e53631f.orig/k8.h 2019-09-06 14:06:51.681228181 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,11 +0,0 @@
-char *k8_bank_name(unsigned num);
@ -618,10 +610,8 @@ Index: mcelog-1.60/k8.h
-#define K8_MCELOG_THRESHOLD_LINK (4 * 9 + 1)
-#define K8_MCELOG_THRESHOLD_L3_CACHE (4 * 9 + 2)
-#define K8_MCELOG_THRESHOLD_FBDIMM (4 * 9 + 3)
Index: mcelog-1.60/amd.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.60/amd.h 2018-09-24 15:14:18.775886227 +0200
+++ mcelog-1.64+git20190805.e53631f/amd.h 2019-09-06 14:09:39.245237130 +0200
@@ -0,0 +1,14 @@
+char *k8_bank_name(unsigned num);
+void decode_amd_mc(enum cputype, struct mce *mce, int *ismemerr);
@ -637,10 +627,8 @@ Index: mcelog-1.60/amd.h
+
+#define CASE_AMD_CPUS \
+ case CPU_K8
Index: mcelog-1.60/mcelog.c
===================================================================
--- mcelog-1.60.orig/mcelog.c 2018-09-24 15:14:09.599340401 +0200
+++ mcelog-1.60/mcelog.c 2018-09-24 15:14:18.775886227 +0200
--- mcelog-1.64+git20190805.e53631f.orig/mcelog.c 2019-09-06 14:06:56.229228424 +0200
+++ mcelog-1.64+git20190805.e53631f/mcelog.c 2019-09-06 14:09:39.245237130 +0200
@@ -41,7 +41,7 @@
#include <fnmatch.h>
#include "mcelog.h"
@ -650,7 +638,7 @@ Index: mcelog-1.60/mcelog.c
#include "intel.h"
#include "p4.h"
#include "dmi.h"
@@ -429,9 +429,9 @@ static void dump_mce(struct mce *m, unsi
@@ -430,9 +430,9 @@
time_t t = m->time;
Wprintf("TIME %llu %s", m->time, ctime(&t));
}

View File

@ -4,9 +4,12 @@
<param name="url">https://github.com/andikleen/mcelog</param>
<param name="subdir"></param>
<param name="filename">mcelog</param>
<param name="versionformat">1.62</param>
<param name="changesgenerate">enable</param>
<param name="revision">refs/tags/v162</param>
<param name="revision">refs/tags/v164</param>
<param name="versionformat">1.64</param>
<!--
<param name="versionformat">1.64+git%cd.%h</param>
-->
</service>
<service name="recompress" mode="disabled">
<param name="file">mcelog*.tar</param>

View File

@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/andikleen/mcelog</param>
<param name="changesrevision">0062f7cb3ff0f94709087ac302d502f5e39f6e60</param></service></servicedata>
<param name="changesrevision">e53631f84a181be371c08e0b961180bff77fd2ab</param></service></servicedata>

View File

@ -1,11 +1,9 @@
Add AMD-specific defines and helpers
Signed-off-by: Borislav Petkov <bp@suse.de>
Index: mcelog/amd.h
===================================================================
--- mcelog.orig/amd.h 2014-05-08 01:10:26.000000000 +0200
+++ mcelog/amd.h 2014-05-08 01:18:50.000000000 +0200
@@ -10,5 +10,65 @@ int mce_filter_k8(struct mce *m);
--- mcelog-1.64+git20190805.e53631f.orig/amd.h 2019-09-06 14:09:39.245237130 +0200
+++ mcelog-1.64+git20190805.e53631f/amd.h 2019-09-06 14:09:40.217237182 +0200
@@ -10,5 +10,65 @@
#define K8_MCELOG_THRESHOLD_L3_CACHE (4 * 9 + 2)
#define K8_MCELOG_THRESHOLD_FBDIMM (4 * 9 + 3)

View File

@ -1,10 +1,8 @@
Add F10h decoding support
Signed-off-by: Borislav Petkov <bp@suse.de>
Index: mcelog-1.60/amd.c
===================================================================
--- mcelog-1.60.orig/amd.c 2018-09-24 15:14:18.771885991 +0200
+++ mcelog-1.60/amd.c 2018-09-24 15:15:05.902689347 +0200
--- mcelog-1.64+git20190805.e53631f.orig/amd.c 2019-09-06 14:09:39.241237130 +0200
+++ mcelog-1.64+git20190805.e53631f/amd.c 2019-09-06 14:09:42.485237303 +0200
@@ -14,7 +14,7 @@
#include "mcelog.h"
#include "amd.h"
@ -14,7 +12,7 @@ Index: mcelog-1.60/amd.c
"data cache",
"instruction cache",
"bus unit",
@@ -22,28 +22,34 @@ static char *k8bank[] = {
@@ -22,28 +22,34 @@
"northbridge",
"fixed-issue reoder"
};
@ -58,7 +56,7 @@ Index: mcelog-1.60/amd.c
static char *nbextendederr[] = {
"RAM ECC error",
"CRC error",
@@ -65,6 +71,46 @@ static char *nbextendederr[] = {
@@ -65,6 +71,46 @@
"L3 Cache Tag Error",
"L3 Cache LRU Error"
};
@ -105,7 +103,7 @@ Index: mcelog-1.60/amd.c
static char *highbits[32] = {
[31] = "valid",
[30] = "error overflow (multiple errors)",
@@ -100,6 +146,21 @@ static char *k8threshold[] = {
@@ -100,6 +146,21 @@
"Unknown threshold counter",
};
@ -127,7 +125,7 @@ Index: mcelog-1.60/amd.c
static void decode_k8_generic_errcode(u64 status)
{
@@ -245,21 +306,393 @@ static decoder_t decoders[] = {
@@ -245,21 +306,393 @@
[5] = decode_k8_fr_mc,
};
@ -529,7 +527,7 @@ Index: mcelog-1.60/amd.c
if (num < NELE(k8bank))
s = k8bank[num];
else if (num >= K8_MCE_THRESHOLD_BASE &&
@@ -270,13 +703,16 @@ char *k8_bank_name(unsigned num)
@@ -270,13 +703,16 @@
return buf;
}
@ -554,10 +552,8 @@ Index: mcelog-1.60/amd.c
+ }
+ return 1;
}
Index: mcelog-1.60/amd.h
===================================================================
--- mcelog-1.60.orig/amd.h 2018-09-24 15:14:55.678081186 +0200
+++ mcelog-1.60/amd.h 2018-09-24 15:15:05.902689347 +0200
--- mcelog-1.64+git20190805.e53631f.orig/amd.h 2019-09-06 14:09:40.217237182 +0200
+++ mcelog-1.64+git20190805.e53631f/amd.h 2019-09-06 14:09:42.485237303 +0200
@@ -1,6 +1,25 @@
+#include <stdbool.h>
+
@ -585,7 +581,7 @@ Index: mcelog-1.60/amd.h
#define K8_MCE_THRESHOLD_BASE (MCE_EXTENDED_BANK + 1) /* MCE_AMD */
#define K8_MCE_THRESHOLD_TOP (K8_MCE_THRESHOLD_BASE + 6 * 9)
@@ -10,6 +29,8 @@ int mce_filter_k8(struct mce *m);
@@ -10,6 +29,8 @@
#define K8_MCELOG_THRESHOLD_L3_CACHE (4 * 9 + 2)
#define K8_MCELOG_THRESHOLD_FBDIMM (4 * 9 + 3)
@ -594,7 +590,7 @@ Index: mcelog-1.60/amd.h
#define EC(x) ((x) & 0xffff)
#define XEC(x, mask) (((x) >> 16) & mask)
@@ -22,23 +43,20 @@ int mce_filter_k8(struct mce *m);
@@ -22,23 +43,20 @@
#define INT_ERROR(x) (((x) & 0xF4FF) == 0x0400)
#define TT(x) (((x) >> 2) & 0x3)
@ -624,7 +620,7 @@ Index: mcelog-1.60/amd.h
enum tt_ids {
TT_INSTR = 0,
@@ -72,3 +90,7 @@ enum rrrr_ids {
@@ -72,3 +90,7 @@
R4_EVICT,
R4_SNOOP,
};
@ -632,11 +628,9 @@ Index: mcelog-1.60/amd.h
+#define CASE_AMD_CPUS \
+ case CPU_K8: \
+ case CPU_F10H
Index: mcelog-1.60/mcelog.h
===================================================================
--- mcelog-1.60.orig/mcelog.h 2018-09-24 15:14:09.599340401 +0200
+++ mcelog-1.60/mcelog.h 2018-09-24 15:15:05.902689347 +0200
@@ -117,6 +117,7 @@ enum cputype {
--- mcelog-1.64+git20190805.e53631f.orig/mcelog.h 2019-09-06 14:06:56.229228424 +0200
+++ mcelog-1.64+git20190805.e53631f/mcelog.h 2019-09-06 14:09:42.485237303 +0200
@@ -117,6 +117,7 @@
CPU_P6OLD,
CPU_CORE2, /* 65nm and 45nm */
CPU_K8,
@ -644,11 +638,9 @@ Index: mcelog-1.60/mcelog.h
CPU_P4,
CPU_NEHALEM,
CPU_DUNNINGTON,
Index: mcelog-1.60/mcelog.c
===================================================================
--- mcelog-1.60.orig/mcelog.c 2018-09-24 15:14:18.775886227 +0200
+++ mcelog-1.60/mcelog.c 2018-09-24 15:15:05.906689585 +0200
@@ -147,19 +147,20 @@ static void resolveaddr(unsigned long lo
--- mcelog-1.64+git20190805.e53631f.orig/mcelog.c 2019-09-06 14:09:39.245237130 +0200
+++ mcelog-1.64+git20190805.e53631f/mcelog.c 2019-09-06 14:09:42.485237303 +0200
@@ -147,19 +147,20 @@
static int mce_filter(struct mce *m, unsigned recordlen)
{
@ -673,7 +665,7 @@ Index: mcelog-1.60/mcelog.c
}
static void print_tsc(int cpunum, __u64 tsc, unsigned long time)
@@ -226,6 +227,7 @@ static char *cputype_name[] = {
@@ -226,6 +227,7 @@
[CPU_P6OLD] = "Intel PPro/P2/P3/old Xeon",
[CPU_CORE2] = "Intel Core", /* 65nm and 45nm */
[CPU_K8] = "AMD K8 and derivates",
@ -681,7 +673,7 @@ Index: mcelog-1.60/mcelog.c
[CPU_P4] = "Intel P4",
[CPU_NEHALEM] = "Intel Xeon 5500 series / Core i3/5/7 (\"Nehalem/Westmere\")",
[CPU_DUNNINGTON] = "Intel Xeon 7400 series",
@@ -255,6 +257,7 @@ static struct config_choice cpu_choices[
@@ -256,6 +258,7 @@
{ "p6old", CPU_P6OLD },
{ "core2", CPU_CORE2 },
{ "k8", CPU_K8 },
@ -689,7 +681,7 @@ Index: mcelog-1.60/mcelog.c
{ "p4", CPU_P4 },
{ "dunnington", CPU_DUNNINGTON },
{ "xeon74xx", CPU_DUNNINGTON },
@@ -366,9 +369,7 @@ static enum cputype setup_cpuid(u32 cpuv
@@ -367,9 +370,7 @@
case X86_VENDOR_INTEL:
return select_intel_cputype(family, model);
case X86_VENDOR_AMD:
@ -700,7 +692,7 @@ Index: mcelog-1.60/mcelog.c
default:
Eprintf("Unknown CPU type vendor %u family %u model %u",
cpuvendor, family, model);
@@ -551,14 +552,9 @@ int is_cpu_supported(void)
@@ -552,14 +553,9 @@
}
if (seen == ALL) {
@ -711,10 +703,10 @@ Index: mcelog-1.60/mcelog.c
- Eprintf("ERROR: AMD Processor family %d: mcelog does not support this processor. Please use the edac_mce_amd module instead.\n", family);
- return 0;
- }
- } else if (!strcmp(vendor,"GenuineIntel"))
- } else if (!strcmp(vendor,"HygonGenuine")) {
+ if (!strcmp(vendor,"AuthenticAMD"))
+ cputype = select_amd_cputype(family);
+ else if (!strcmp(vendor,"GenuineIntel"))
cputype = select_intel_cputype(family, model);
/* Add checks for other CPUs here */
} else {
+ else if (!strcmp(vendor,"HygonGenuine")) {
Eprintf("ERROR: Hygon Processor family %d: mcelog does not support this processor. Please use the edac_mce_amd module instead.\n", family);
return 0;
} else if (!strcmp(vendor,"GenuineIntel"))

View File

@ -7,16 +7,14 @@
msg.c | 8 ++
6 files changed, 343 insertions(+), 2 deletions(-)
Index: mcelog-1.60/Makefile
===================================================================
--- mcelog-1.60.orig/Makefile 2018-09-24 15:06:48.757117766 +0200
+++ mcelog-1.60/Makefile 2018-09-24 15:07:38.900100531 +0200
--- mcelog-1.64+git20190805.e53631f.orig/Makefile 2019-09-06 14:06:51.841228190 +0200
+++ mcelog-1.64+git20190805.e53631f/Makefile 2019-09-06 14:06:56.229228424 +0200
@@ -1,3 +1,4 @@
+CONFIG_EMAIL := 1
CFLAGS := -g -Os
prefix := /usr
etcprefix :=
@@ -37,15 +38,23 @@ OBJ := p4.o k8.o mcelog.o dmi.o tsc.o co
@@ -37,15 +38,23 @@
broadwell_de.o broadwell_epex.o skylake_xeon.o \
denverton.o \
msr.o bus.o unknown.o
@ -41,7 +39,7 @@ Index: mcelog-1.60/Makefile
# dbquery intentionally not installed by default
install: mcelog mcelog.conf mcelog.conf.5 mcelog.triggers.5
@@ -80,7 +89,7 @@ dbquery: db.o dbquery.o memutil.o
@@ -80,7 +89,7 @@
depend: .depend
%.o: %.c
@ -50,10 +48,8 @@ Index: mcelog-1.60/Makefile
version.tmp: FORCE
( printf "char version[] = \"" ; \
Index: mcelog-1.60/email.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.60/email.c 2018-09-24 15:07:38.904100771 +0200
+++ mcelog-1.64+git20190805.e53631f/email.c 2019-09-06 14:06:56.229228424 +0200
@@ -0,0 +1,200 @@
+#include <unistd.h>
+#include <signal.h>
@ -255,10 +251,8 @@ Index: mcelog-1.60/email.c
+ smtp_destroy_session (session);
+ return 0;
+}
Index: mcelog-1.60/email.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.60/email.h 2018-09-24 15:07:38.904100771 +0200
+++ mcelog-1.64+git20190805.e53631f/email.h 2019-09-06 14:06:56.229228424 +0200
@@ -0,0 +1,34 @@
+#ifndef _MCELOG_EMAIL_H_
+#define _MCELOG_EMAIL_H_
@ -294,10 +288,8 @@ Index: mcelog-1.60/email.h
+#endif
+
+#endif
Index: mcelog-1.60/mcelog.c
===================================================================
--- mcelog-1.60.orig/mcelog.c 2018-09-24 15:06:48.765118243 +0200
+++ mcelog-1.60/mcelog.c 2018-09-24 15:12:49.910600461 +0200
--- mcelog-1.64+git20190805.e53631f.orig/mcelog.c 2019-09-06 14:06:51.841228190 +0200
+++ mcelog-1.64+git20190805.e53631f/mcelog.c 2019-09-06 14:06:56.229228424 +0200
@@ -37,6 +37,7 @@
#include <assert.h>
#include <signal.h>
@ -316,7 +308,7 @@ Index: mcelog-1.60/mcelog.c
enum cputype cputype = CPU_GENERIC;
char *logfn = LOG_DEV_FILENAME;
@@ -71,7 +75,7 @@ static double cpumhz;
@@ -71,7 +75,7 @@
static int cpumhz_forced;
int ascii_mode;
int dump_raw_ascii;
@ -325,7 +317,7 @@ Index: mcelog-1.60/mcelog.c
static char *inputfile;
char *processor_flags;
static int foreground;
@@ -990,6 +994,7 @@ void usage(void)
@@ -994,6 +998,7 @@
"--is-cpu-supported Exit with return code indicating whether the CPU is supported\n"
"--help Display this message.\n"
);
@ -333,7 +325,7 @@ Index: mcelog-1.60/mcelog.c
printf("\n");
print_cputypes();
}
@@ -1059,6 +1064,7 @@ static struct option options[] = {
@@ -1063,6 +1068,7 @@
{ "no-imc-log", 0, NULL, O_NO_IMC_LOG },
{ "help", 0, NULL, O_HELP },
{ "is-cpu-supported", 0, NULL, O_IS_CPU_SUPPORTED },
@ -341,7 +333,7 @@ Index: mcelog-1.60/mcelog.c
{}
};
@@ -1250,11 +1256,86 @@ static void drop_cred(void)
@@ -1254,11 +1260,86 @@
}
}
@ -428,7 +420,7 @@ Index: mcelog-1.60/mcelog.c
if (recordlen == 0) {
Wprintf("no data in mce record\n");
@@ -1281,12 +1362,16 @@ static void process(int fd, unsigned rec
@@ -1285,12 +1366,16 @@
finish = 1;
if (!mce_filter(mce, recordlen))
continue;
@ -445,7 +437,7 @@ Index: mcelog-1.60/mcelog.c
flushlog();
}
@@ -1400,6 +1485,8 @@ int main(int ac, char **av)
@@ -1404,6 +1489,8 @@
noargs(ac, av);
fprintf(stderr, "mcelog %s\n", MCELOG_VERSION);
exit(0);
@ -454,7 +446,7 @@ Index: mcelog-1.60/mcelog.c
} else if (opt == 0)
break;
}
@@ -1434,6 +1521,10 @@ int main(int ac, char **av)
@@ -1438,6 +1525,10 @@
usage();
exit(1);
}
@ -465,11 +457,9 @@ Index: mcelog-1.60/mcelog.c
checkdmi();
general_setup();
Index: mcelog-1.60/mcelog.h
===================================================================
--- mcelog-1.60.orig/mcelog.h 2018-09-24 15:06:48.769118480 +0200
+++ mcelog-1.60/mcelog.h 2018-09-24 15:07:38.908101010 +0200
@@ -144,6 +144,7 @@ enum cputype {
--- mcelog-1.64+git20190805.e53631f.orig/mcelog.h 2019-09-06 14:06:51.841228190 +0200
+++ mcelog-1.64+git20190805.e53631f/mcelog.h 2019-09-06 14:06:56.229228424 +0200
@@ -145,6 +145,7 @@
enum option_ranges {
O_COMMON = 500,
O_DISKDB = 1000,
@ -477,10 +467,8 @@ Index: mcelog-1.60/mcelog.h
};
enum syslog_opt {
Index: mcelog-1.60/msg.c
===================================================================
--- mcelog-1.60.orig/msg.c 2018-09-24 15:06:48.769118480 +0200
+++ mcelog-1.60/msg.c 2018-09-24 15:07:38.908101010 +0200
--- mcelog-1.64+git20190805.e53631f.orig/msg.c 2019-09-06 14:06:51.841228190 +0200
+++ mcelog-1.64+git20190805.e53631f/msg.c 2019-09-06 14:06:56.229228424 +0200
@@ -8,10 +8,13 @@
#include "mcelog.h"
#include "msg.h"
@ -495,7 +483,7 @@ Index: mcelog-1.60/msg.c
static char *output_fn;
int need_stdout(void)
@@ -135,6 +138,11 @@ int Wprintf(char *fmt, ...)
@@ -135,6 +138,11 @@
n = vfprintf(output_fh ? output_fh : stdout, fmt, ap);
va_end(ap);
}

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Fri Sep 06 11:25:34 UTC 2019 - MMuschner@suse.com
- Update to version 1.64:
* mcelog: Add Icelake client model numbers.
* add Hygon Dhyana support to not use mcelog, as Hygon Dhyana(0x18h) share similiar arch with AMD Family 17h
-------------------------------------------------------------------
Mon Mar 25 11:31:24 UTC 2019 - christian.voegl@suse.com

View File

@ -22,7 +22,7 @@
%endif
Name: mcelog
Version: 1.62
Version: 1.64
Release: 0
Summary: Log Machine Check Events
License: GPL-2.0-only

View File

@ -2,11 +2,9 @@
memdb.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: mcelog-1.29/memdb.c
===================================================================
--- mcelog-1.29.orig/memdb.c 2016-01-20 18:33:20.000000000 +0100
+++ mcelog-1.29/memdb.c 2016-01-28 15:33:46.958564233 +0100
@@ -430,11 +430,11 @@ void prefill_memdb(int do_dmi)
--- mcelog-1.64+git20190805.e53631f.orig/memdb.c 2019-09-06 14:06:51.757228185 +0200
+++ mcelog-1.64+git20190805.e53631f/memdb.c 2019-09-06 14:09:38.197237074 +0200
@@ -430,11 +430,11 @@
md->location = xstrdup(bl);
md->name = xstrdup(dmi_getstring(&d->header, d->device_locator));
}