- Update to latest v120 git tag and name the version 1.20:

New supported CPUs:
     - Add model number for Broadwell-DE
     - Added Knights Landing (Xeon Phi) 
     - Add all current Atom cpuids
     - Support Broadwell-U
     - New manpages: mcelog.conf.5 and mcelog.triggers.5
  And quite some undocumented bugfixes, see git log for details

OBS-URL: https://build.opensuse.org/package/show/Base:System/mcelog?expand=0&rev=51
This commit is contained in:
Thomas Renninger 2015-06-15 16:24:28 +00:00 committed by Git OBS Bridge
parent a4f58851e2
commit 49d6db02db
8 changed files with 97 additions and 81 deletions

View File

@ -16,11 +16,11 @@ Signed-off-by: Borislav Petkov <bp@suse.de>
rename k8.c => amd.c (97%)
rename k8.h => amd.h (79%)
Index: mcelog-1.0.1/Makefile
Index: mcelog-1.20/Makefile
===================================================================
--- mcelog-1.0.1.orig/Makefile
+++ mcelog-1.0.1/Makefile
@@ -29,7 +29,7 @@ all: mcelog
--- mcelog-1.20.orig/Makefile 2015-06-15 15:15:14.281052761 +0200
+++ mcelog-1.20/Makefile 2015-06-15 15:15:52.523239254 +0200
@@ -33,7 +33,7 @@
.PHONY: install clean depend
@ -29,10 +29,10 @@ Index: mcelog-1.0.1/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.0.1/k8.c
Index: mcelog-1.20/k8.c
===================================================================
--- mcelog-1.0.1.orig/k8.c
+++ /dev/null
--- mcelog-1.20.orig/k8.c 2015-06-15 14:25:23.000000000 +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
- * Eric Morton. Hacked and extended for mcelog by AK.
@ -315,10 +315,10 @@ Index: mcelog-1.0.1/k8.c
- }
- return 1;
-}
Index: mcelog-1.0.1/amd.c
Index: mcelog-1.20/amd.c
===================================================================
--- /dev/null
+++ mcelog-1.0.1/amd.c
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.20/amd.c 2015-06-15 15:15:52.531239713 +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,10 +602,10 @@ Index: mcelog-1.0.1/amd.c
+ }
+ return 1;
+}
Index: mcelog-1.0.1/k8.h
Index: mcelog-1.20/k8.h
===================================================================
--- mcelog-1.0.1.orig/k8.h
+++ /dev/null
--- mcelog-1.20.orig/k8.h 2015-06-15 14:25:23.000000000 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,11 +0,0 @@
-char *k8_bank_name(unsigned num);
-void decode_k8_mc(struct mce *mce, int *ismemerr);
@ -618,10 +618,10 @@ Index: mcelog-1.0.1/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.0.1/amd.h
Index: mcelog-1.20/amd.h
===================================================================
--- /dev/null
+++ mcelog-1.0.1/amd.h
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.20/amd.h 2015-06-15 15:15:52.539240159 +0200
@@ -0,0 +1,14 @@
+char *k8_bank_name(unsigned num);
+void decode_amd_mc(enum cputype, struct mce *mce, int *ismemerr);
@ -637,10 +637,10 @@ Index: mcelog-1.0.1/amd.h
+
+#define CASE_AMD_CPUS \
+ case CPU_K8
Index: mcelog-1.0.1/mcelog.c
Index: mcelog-1.20/mcelog.c
===================================================================
--- mcelog-1.0.1.orig/mcelog.c
+++ mcelog-1.0.1/mcelog.c
--- mcelog-1.20.orig/mcelog.c 2015-06-15 15:15:14.293053554 +0200
+++ mcelog-1.20/mcelog.c 2015-06-15 15:15:52.543240384 +0200
@@ -41,7 +41,7 @@
#include <fnmatch.h>
#include "mcelog.h"
@ -650,7 +650,7 @@ Index: mcelog-1.0.1/mcelog.c
#include "intel.h"
#include "p4.h"
#include "dmi.h"
@@ -397,9 +397,9 @@ static void dump_mce(struct mce *m, unsi
@@ -410,9 +410,9 @@
time_t t = m->time;
Wprintf("TIME %llu %s", m->time, ctime(&t));
}

View File

@ -1,10 +1,10 @@
Add F10h decoding support
Signed-off-by: Borislav Petkov <bp@suse.de>
Index: mcelog-1.0.1/amd.c
Index: mcelog-1.20/amd.c
===================================================================
--- mcelog-1.0.1.orig/amd.c
+++ mcelog-1.0.1/amd.c
--- mcelog-1.20.orig/amd.c 2015-06-15 15:16:07.712107628 +0200
+++ mcelog-1.20/amd.c 2015-06-15 15:16:14.564499430 +0200
@@ -14,7 +14,7 @@
#include "mcelog.h"
#include "amd.h"
@ -14,7 +14,7 @@ Index: mcelog-1.0.1/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 +58,7 @@ Index: mcelog-1.0.1/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 +105,7 @@ Index: mcelog-1.0.1/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 +127,7 @@ Index: mcelog-1.0.1/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 +529,7 @@ Index: mcelog-1.0.1/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 +554,10 @@ Index: mcelog-1.0.1/amd.c
+ }
+ return 1;
}
Index: mcelog-1.0.1/amd.h
Index: mcelog-1.20/amd.h
===================================================================
--- mcelog-1.0.1.orig/amd.h
+++ mcelog-1.0.1/amd.h
--- mcelog-1.20.orig/amd.h 2015-06-15 15:16:07.728108543 +0200
+++ mcelog-1.20/amd.h 2015-06-15 15:16:14.576500082 +0200
@@ -1,6 +1,25 @@
+#include <stdbool.h>
+
@ -585,7 +585,7 @@ Index: mcelog-1.0.1/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 +594,7 @@ Index: mcelog-1.0.1/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 +624,7 @@ Index: mcelog-1.0.1/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 +632,11 @@ Index: mcelog-1.0.1/amd.h
+#define CASE_AMD_CPUS \
+ case CPU_K8: \
+ case CPU_F10H
Index: mcelog-1.0.1/mcelog.h
Index: mcelog-1.20/mcelog.h
===================================================================
--- mcelog-1.0.1.orig/mcelog.h
+++ mcelog-1.0.1/mcelog.h
@@ -107,6 +107,7 @@ enum cputype {
--- mcelog-1.20.orig/mcelog.h 2015-06-15 15:16:07.740109229 +0200
+++ mcelog-1.20/mcelog.h 2015-06-15 15:16:14.580500307 +0200
@@ -111,6 +111,7 @@
CPU_P6OLD,
CPU_CORE2, /* 65nm and 45nm */
CPU_K8,
@ -644,11 +644,11 @@ Index: mcelog-1.0.1/mcelog.h
CPU_P4,
CPU_NEHALEM,
CPU_DUNNINGTON,
Index: mcelog-1.0.1/mcelog.c
Index: mcelog-1.20/mcelog.c
===================================================================
--- mcelog-1.0.1.orig/mcelog.c
+++ mcelog-1.0.1/mcelog.c
@@ -142,19 +142,20 @@ static void resolveaddr(unsigned long ad
--- mcelog-1.20.orig/mcelog.c 2015-06-15 15:16:07.752109915 +0200
+++ mcelog-1.20/mcelog.c 2015-06-15 15:19:18.771031150 +0200
@@ -144,19 +144,20 @@
static int mce_filter(struct mce *m, unsigned recordlen)
{
@ -673,7 +673,7 @@ Index: mcelog-1.0.1/mcelog.c
}
static void print_tsc(int cpunum, __u64 tsc, unsigned long time)
@@ -221,6 +222,7 @@ static char *cputype_name[] = {
@@ -223,6 +224,7 @@
[CPU_P6OLD] = "Intel PPro/P2/P3/old Xeon",
[CPU_CORE2] = "Intel Core", /* 65nm and 45nm */
[CPU_K8] = "AMD K8 and derivates",
@ -681,7 +681,7 @@ Index: mcelog-1.0.1/mcelog.c
[CPU_P4] = "Intel P4",
[CPU_NEHALEM] = "Intel Xeon 5500 series / Core i3/5/7 (\"Nehalem/Westmere\")",
[CPU_DUNNINGTON] = "Intel Xeon 7400 series",
@@ -239,6 +241,7 @@ static struct config_choice cpu_choices[
@@ -245,6 +247,7 @@
{ "p6old", CPU_P6OLD },
{ "core2", CPU_CORE2 },
{ "k8", CPU_K8 },
@ -689,7 +689,7 @@ Index: mcelog-1.0.1/mcelog.c
{ "p4", CPU_P4 },
{ "dunnington", CPU_DUNNINGTON },
{ "xeon74xx", CPU_DUNNINGTON },
@@ -330,15 +333,13 @@ static enum cputype setup_cpuid(u32 cpuv
@@ -343,15 +346,13 @@
parse_cpuid(cpuid, &family, &model);
@ -708,7 +708,7 @@ Index: mcelog-1.0.1/mcelog.c
cpuvendor, family, model);
return CPU_GENERIC;
}
@@ -511,14 +512,9 @@ int is_cpu_supported(void)
@@ -526,14 +527,9 @@
}
if (seen == ALL) {
@ -716,7 +716,7 @@ Index: mcelog-1.0.1/mcelog.c
- if (family == 15) {
- cputype = CPU_K8;
- } else if (family >= 16) {
- SYSERRprintf("AMD Processor family %d: Please use the edac_mce_amd module instead.\n", family);
- SYSERRprintf("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"))

View File

@ -7,16 +7,16 @@
msg.c | 8 ++
6 files changed, 343 insertions(+), 2 deletions(-)
Index: mcelog-1.0.8/Makefile
Index: mcelog-1.20/Makefile
===================================================================
--- mcelog-1.0.8.orig/Makefile 2014-12-20 19:35:05.000000000 +0100
+++ mcelog-1.0.8/Makefile 2015-01-22 14:55:13.323708502 +0100
--- mcelog-1.20.orig/Makefile 2015-06-15 14:25:23.000000000 +0200
+++ mcelog-1.20/Makefile 2015-06-15 15:15:14.281052761 +0200
@@ -1,3 +1,4 @@
+CONFIG_EMAIL := 1
CFLAGS := -g -Os
prefix := /usr
etcprefix :=
@@ -37,7 +38,8 @@
@@ -38,7 +39,8 @@
client.o cache.o sysfs.o yellow.o page.o rbtree.o \
xeon75xx.o sandy-bridge.o ivy-bridge.o haswell.o msr.o bus.o unknown.o
DISKDB_OBJ := diskdb.o dimm.o db.o
@ -26,7 +26,7 @@ Index: mcelog-1.0.8/Makefile
DOC := mce.pdf
ADD_DEFINES :=
@@ -49,6 +51,12 @@
@@ -50,6 +52,12 @@
all: dbquery
endif
@ -39,10 +39,10 @@ Index: mcelog-1.0.8/Makefile
SRC := $(OBJ:.o=.c)
mcelog: ${OBJ}
Index: mcelog-1.0.8/email.c
Index: mcelog-1.20/email.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.0.8/email.c 2015-01-22 14:55:13.327708502 +0100
+++ mcelog-1.20/email.c 2015-06-15 15:15:14.285053019 +0200
@@ -0,0 +1,199 @@
+#include <unistd.h>
+#include <signal.h>
@ -243,10 +243,10 @@ Index: mcelog-1.0.8/email.c
+ smtp_destroy_session (session);
+ return 0;
+}
Index: mcelog-1.0.8/email.h
Index: mcelog-1.20/email.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mcelog-1.0.8/email.h 2015-01-22 14:55:13.331708502 +0100
+++ mcelog-1.20/email.h 2015-06-15 15:15:14.289053315 +0200
@@ -0,0 +1,34 @@
+#ifndef _MCELOG_EMAIL_H_
+#define _MCELOG_EMAIL_H_
@ -282,10 +282,10 @@ Index: mcelog-1.0.8/email.h
+#endif
+
+#endif
Index: mcelog-1.0.8/mcelog.c
Index: mcelog-1.20/mcelog.c
===================================================================
--- mcelog-1.0.8.orig/mcelog.c 2014-12-20 19:35:05.000000000 +0100
+++ mcelog-1.0.8/mcelog.c 2015-01-22 14:55:13.335708502 +0100
--- mcelog-1.20.orig/mcelog.c 2015-06-15 14:25:23.000000000 +0200
+++ mcelog-1.20/mcelog.c 2015-06-15 15:15:14.293053554 +0200
@@ -37,6 +37,7 @@
#include <assert.h>
#include <signal.h>
@ -313,7 +313,7 @@ Index: mcelog-1.0.8/mcelog.c
static char *inputfile;
char *processor_flags;
static int foreground;
@@ -944,6 +948,7 @@
@@ -949,6 +953,7 @@
"--pidfile file Write pid of daemon into file\n"
"--no-imc-log Disable extended iMC logging\n"
);
@ -321,7 +321,7 @@ Index: mcelog-1.0.8/mcelog.c
diskdb_usage();
print_cputypes();
exit(1);
@@ -1011,6 +1016,7 @@
@@ -1016,6 +1021,7 @@
{ "debug-numerrors", 0, NULL, O_DEBUG_NUMERRORS }, /* undocumented: for testing */
{ "no-imc-log", 0, NULL, O_NO_IMC_LOG },
DISKDB_OPTIONS
@ -329,7 +329,7 @@ Index: mcelog-1.0.8/mcelog.c
{}
};
@@ -1188,11 +1194,86 @@
@@ -1193,11 +1199,86 @@
}
}
@ -416,7 +416,7 @@ Index: mcelog-1.0.8/mcelog.c
if (recordlen == 0) {
Wprintf("no data in mce record\n");
@@ -1219,12 +1300,16 @@
@@ -1224,12 +1305,16 @@
finish = 1;
if (!mce_filter(mce, recordlen))
continue;
@ -433,7 +433,7 @@ Index: mcelog-1.0.8/mcelog.c
flushlog();
}
@@ -1335,6 +1420,8 @@
@@ -1340,6 +1425,8 @@
exit(0);
} else if (diskdb_cmd(opt, ac, av)) {
exit(0);
@ -442,7 +442,7 @@ Index: mcelog-1.0.8/mcelog.c
} else if (opt == 0)
break;
}
@@ -1363,6 +1450,10 @@
@@ -1368,6 +1455,10 @@
logfn = av[optind++];
if (av[optind])
usage();
@ -453,11 +453,11 @@ Index: mcelog-1.0.8/mcelog.c
checkdmi();
general_setup();
Index: mcelog-1.0.8/mcelog.h
Index: mcelog-1.20/mcelog.h
===================================================================
--- mcelog-1.0.8.orig/mcelog.h 2014-12-20 19:35:05.000000000 +0100
+++ mcelog-1.0.8/mcelog.h 2015-01-22 14:55:13.339708502 +0100
@@ -125,6 +125,7 @@
--- mcelog-1.20.orig/mcelog.h 2015-06-15 14:25:23.000000000 +0200
+++ mcelog-1.20/mcelog.h 2015-06-15 15:15:14.297053784 +0200
@@ -131,6 +131,7 @@
enum option_ranges {
O_COMMON = 500,
O_DISKDB = 1000,
@ -465,10 +465,10 @@ Index: mcelog-1.0.8/mcelog.h
};
enum syslog_opt {
Index: mcelog-1.0.8/msg.c
Index: mcelog-1.20/msg.c
===================================================================
--- mcelog-1.0.8.orig/msg.c 2014-12-20 19:35:05.000000000 +0100
+++ mcelog-1.0.8/msg.c 2015-01-22 14:55:13.343708502 +0100
--- mcelog-1.20.orig/msg.c 2015-06-15 14:25:23.000000000 +0200
+++ mcelog-1.20/msg.c 2015-06-15 15:15:14.301053996 +0200
@@ -8,10 +8,13 @@
#include "mcelog.h"
#include "msg.h"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7185b745b7ec4510f1e6ba75a03a5ee9ea9f41e6c088475574e24118e27fb825
size 277189

3
mcelog-1.20.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1dc7df5d971acab054646289cf2c42d220b890f07f428bb09ad814e86cd688d8
size 281226

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Mon Jun 15 16:18:55 UTC 2015 - trenn@suse.de
- Update to latest v120 git tag and name the version 1.20:
New supported CPUs:
- Add model number for Broadwell-DE
- Added Knights Landing (Xeon Phi)
- Add all current Atom cpuids
- Support Broadwell-U
- New manpages: mcelog.conf.5 and mcelog.triggers.5
And quite some undocumented bugfixes, see git log for details
-------------------------------------------------------------------
Fri Jan 23 11:04:40 UTC 2015 - trenn@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package mcelog
#
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -20,7 +20,7 @@ Name: mcelog
Summary: Log Machine Check Events
License: GPL-2.0
Group: System/Monitoring
Version: 1.0.8
Version: 1.20
Release: 0
ExclusiveArch: %{ix86} x86_64
BuildRequires: libesmtp-devel
@ -45,6 +45,7 @@ Patch9: patches/add-f15h-support.patch
Patch10: patches/add-f16h-support.patch
Patch11: mcelog-socket-path.patch
Patch12: fix_setgroups_missing_call.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: %fillup_prereq
Url: https://git.kernel.org/cgit/utils/cpu/mce/mcelog.git
@ -82,6 +83,7 @@ Authors:
%patch10 -p1
%patch11 -p1
%patch12 -p1
%build
export SUSE_ASNEEDED=0
make CFLAGS="$RPM_OPT_FLAGS"
@ -126,6 +128,7 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr (-,root,root,755)
%{_mandir}/man8/*
%{_mandir}/man5/*
/usr/sbin/mcelog
%config /etc/logrotate.d/mcelog
%dir /etc/mcelog
@ -137,5 +140,6 @@ rm -rf $RPM_BUILD_ROOT
%{_tmpfilesdir}/mcelog.conf
%_docdir/%name
%_sbindir/rcmcelog
%ghost /run/mcelog
%changelog

View File

@ -2,11 +2,11 @@
memdb.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: mcelog-1.0.1/memdb.c
Index: mcelog-1.20/memdb.c
===================================================================
--- mcelog-1.0.1.orig/memdb.c
+++ mcelog-1.0.1/memdb.c
@@ -421,11 +421,11 @@ void prefill_memdb(void)
--- mcelog-1.20.orig/memdb.c 2015-06-15 14:25:23.000000000 +0200
+++ mcelog-1.20/memdb.c 2015-06-15 15:15:25.925718586 +0200
@@ -422,11 +422,11 @@
md->location = xstrdup(bl);
md->name = xstrdup(dmi_getstring(&d->header, d->device_locator));
}