From e8e59ad9014f5fba6dd2b483fa34ebb137c2d6e4 Mon Sep 17 00:00:00 2001 From: zhuofeng Date: Tue, 30 Jan 2024 15:16:58 +0800 Subject: [PATCH] update version to 0.8.0 --- ...t-cpu-fault-isolation-for-corrected-.patch | 938 ------------------ ...andard-length-PATH_MAX-for-path-name.patch | 46 - ...ll-on-per_cpu-trace_pipe_raw-blocks-.patch | 85 -- ...t-cpu-fault-isolation-for-recoverabl.patch | 150 --- ...sue-of-signed-and-unsigned-integer-c.patch | 2 +- ...-recording-Hisilicon-common-error-da.patch | 228 ----- ...ur-modules-supported-by-HiSilicon-co.patch | 35 - ...-ctl-Modify-error-statistics-for-HiS.patch | 97 -- ...-ctl-Reformat-error-info-of-the-HiSi.patch | 56 -- ...-ctl-Add-printing-usage-if-necessary.patch | 37 - ...-ctl-Add-support-to-display-the-HiSi.patch | 274 ----- ...-ctl-Relocate-reading-and-display-Ku.patch | 150 --- ...-ctl-Updated-HiSilicon-platform-name.patch | 127 --- ...r-a-memory-out-of-bounds-issue-and-o.patch | 90 -- ...skerror-fix-incomplete-diskerror-log.patch | 18 +- ...mory-failure-handler-handle-localtim.patch | 34 - ...port-fix-possible-but-unlikely-file-.patch | 93 -- ...per-KBUFFER_TYPE_TIME_STAMP-handling.patch | 128 --- rasdaemon-0.6.8.tar.gz | Bin 161343 -> 0 bytes rasdaemon-0.8.0.tar.gz | Bin 0 -> 121660 bytes rasdaemon.spec | 44 +- 21 files changed, 27 insertions(+), 2605 deletions(-) delete mode 100644 0001-rasdaemon-Support-cpu-fault-isolation-for-corrected-.patch delete mode 100644 0001-rasdaemon-use-standard-length-PATH_MAX-for-path-name.patch delete mode 100644 0002-rasdaemon-Fix-poll-on-per_cpu-trace_pipe_raw-blocks-.patch delete mode 100644 0002-rasdaemon-Support-cpu-fault-isolation-for-recoverabl.patch delete mode 100644 0003-rasdaemon-Modify-recording-Hisilicon-common-error-da.patch delete mode 100644 0004-rasdaemon-Add-four-modules-supported-by-HiSilicon-co.patch delete mode 100644 0004-rasdaemon-ras-mc-ctl-Modify-error-statistics-for-HiS.patch delete mode 100644 0005-rasdaemon-ras-mc-ctl-Reformat-error-info-of-the-HiSi.patch delete mode 100644 0006-rasdaemon-ras-mc-ctl-Add-printing-usage-if-necessary.patch delete mode 100644 0007-rasdaemon-ras-mc-ctl-Add-support-to-display-the-HiSi.patch delete mode 100644 0008-rasdaemon-ras-mc-ctl-Relocate-reading-and-display-Ku.patch delete mode 100644 0009-rasdaemon-ras-mc-ctl-Updated-HiSilicon-platform-name.patch delete mode 100644 0010-rasdaemon-Fix-for-a-memory-out-of-bounds-issue-and-o.patch delete mode 100644 backport-rasdaemon-ras-memory-failure-handler-handle-localtim.patch delete mode 100644 backport-rasdaemon-ras-report-fix-possible-but-unlikely-file-.patch delete mode 100644 backport-traceevent-Add-proper-KBUFFER_TYPE_TIME_STAMP-handling.patch delete mode 100644 rasdaemon-0.6.8.tar.gz create mode 100644 rasdaemon-0.8.0.tar.gz diff --git a/0001-rasdaemon-Support-cpu-fault-isolation-for-corrected-.patch b/0001-rasdaemon-Support-cpu-fault-isolation-for-corrected-.patch deleted file mode 100644 index d17fb21..0000000 --- a/0001-rasdaemon-Support-cpu-fault-isolation-for-corrected-.patch +++ /dev/null @@ -1,938 +0,0 @@ -From b9999d40d73dfff8b1cfb515f3b81b2c2891f6a7 Mon Sep 17 00:00:00 2001 -From: Shengwei Luo -Date: Wed, 23 Feb 2022 17:21:58 +0800 -Subject: [PATCH 01/10] rasdaemon: Support cpu fault isolation for corrected - errors - -When the corrected errors exceed the set limit in cycle, try to -offline the related cpu core. - -Signed-off-by: Shengwei Luo -Signed-off-by: Junchong Pan -Signed-off-by: Lei Feng -Signed-off-by: Shiju Jose ---- - Makefile.am | 6 +- - configure.ac | 11 ++ - misc/rasdaemon.env | 17 ++ - queue.c | 119 ++++++++++++++ - queue.h | 39 +++++ - ras-arm-handler.c | 97 +++++++++++ - ras-arm-handler.h | 18 ++ - ras-cpu-isolation.c | 388 ++++++++++++++++++++++++++++++++++++++++++++ - ras-cpu-isolation.h | 68 ++++++++ - ras-events.c | 9 +- - 10 files changed, 770 insertions(+), 2 deletions(-) - create mode 100644 queue.c - create mode 100644 queue.h - create mode 100644 ras-cpu-isolation.c - create mode 100644 ras-cpu-isolation.h - -diff --git a/Makefile.am b/Makefile.am -index a322b9a..36e7d4e 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -69,13 +69,17 @@ endif - if WITH_AMP_NS_DECODE - rasdaemon_SOURCES += non-standard-ampere.c - endif -+if WITH_CPU_FAULT_ISOLATION -+ rasdaemon_SOURCES += ras-cpu-isolation.c queue.c -+endif - rasdaemon_LDADD = -lpthread $(SQLITE3_LIBS) libtrace/libtrace.a - - include_HEADERS = config.h ras-events.h ras-logger.h ras-mc-handler.h \ - ras-aer-handler.h ras-mce-handler.h ras-record.h bitfield.h ras-report.h \ - ras-extlog-handler.h ras-arm-handler.h ras-non-standard-handler.h \ - ras-devlink-handler.h ras-diskerror-handler.h rbtree.h ras-page-isolation.h \ -- non-standard-hisilicon.h non-standard-ampere.h ras-memory-failure-handler.h -+ non-standard-hisilicon.h non-standard-ampere.h ras-memory-failure-handler.h \ -+ ras-cpu-isolation.h queue.h - - # This rule can't be called with more than one Makefile job (like make -j8) - # I can't figure out a way to fix that -diff --git a/configure.ac b/configure.ac -index a77991f..e0ed751 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -161,6 +161,16 @@ AS_IF([test "x$enable_amp_ns_decode" = "xyes" || test "x$enable_all" == "xyes"], - AM_CONDITIONAL([WITH_AMP_NS_DECODE], [test x$enable_amp_ns_decode = xyes || test x$enable_all == xyes]) - AM_COND_IF([WITH_AMP_NS_DECODE], [USE_AMP_NS_DECODE="yes"], [USE_AMP_NS_DECODE="no"]) - -+AC_ARG_ENABLE([cpu_fault_isolation], -+ AS_HELP_STRING([--enable-cpu-fault-isolation], [enable cpu online fault isolation])) -+ -+AS_IF([test "x$enable_cpu_fault_isolation" = "xyes" || test "x$enable_all" == "xyes"], [ -+ AC_DEFINE(HAVE_CPU_FAULT_ISOLATION,1,"have cpu online fault isolation") -+ AC_SUBST([WITH_CPU_FAULT_ISOLATION]) -+]) -+AM_CONDITIONAL([WITH_CPU_FAULT_ISOLATION], [test x$enable_cpu_fault_isolation = xyes || test x$enable_all == xyes]) -+AM_COND_IF([WITH_CPU_FAULT_ISOLATION], [USE_CPU_FAULT_ISOLATION="yes"], [USE_CPU_FAULT_ISOLATION="no"]) -+ - test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc - - CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wstrict-prototypes" -@@ -201,4 +211,5 @@ compile time options summary - Memory Failure : $USE_MEMORY_FAILURE - Memory CE PFA : $USE_MEMORY_CE_PFA - AMP RAS errors : $USE_AMP_NS_DECODE -+ CPU fault isolation : $USE_CPU_FAULT_ISOLATION - EOF -diff --git a/misc/rasdaemon.env b/misc/rasdaemon.env -index 12fd766..7cb18e8 100644 ---- a/misc/rasdaemon.env -+++ b/misc/rasdaemon.env -@@ -27,3 +27,20 @@ PAGE_CE_THRESHOLD="50" - # soft-then-hard First try to soft offline, then try hard offlining. - # Note: default offline choice is "soft". - PAGE_CE_ACTION="soft" -+ -+# CPU Online Fault Isolation -+# Whether to enable cpu online fault isolation (yes|no). -+CPU_ISOLATION_ENABLE="no" -+# Specify the threshold of CE numbers. -+# -+# Format: -+# [0-9]+[unit] -+# -+# Supported units: -+# CPU_CE_THRESHOLD: no unit -+# CPU_ISOLATION_CYCLE: D|d (day), H|h (hour), M|m (minute), S|s (second), default is in second -+CPU_CE_THRESHOLD="18" -+CPU_ISOLATION_CYCLE="24h" -+ -+# Prevent excessive isolation from causing an avalanche effect -+CPU_ISOLATION_LIMIT="10" -\ No newline at end of file -diff --git a/queue.c b/queue.c -new file mode 100644 -index 0000000..65b6fb8 ---- /dev/null -+++ b/queue.c -@@ -0,0 +1,119 @@ -+/* -+ * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+#include -+#include -+#include "queue.h" -+#include "ras-logger.h" -+ -+int is_empty(struct link_queue *queue) -+{ -+ if (queue) -+ return queue->size == 0; -+ -+ return 1; -+} -+ -+struct link_queue *init_queue(void) -+{ -+ struct link_queue *queue = NULL; -+ -+ queue = (struct link_queue *)malloc(sizeof(struct link_queue)); -+ if (queue == NULL) { -+ log(TERM, LOG_ERR, "Failed to allocate memory for queue.\n"); -+ return NULL; -+ } -+ -+ queue->size = 0; -+ queue->head = NULL; -+ queue->tail = NULL; -+ -+ return queue; -+} -+ -+void clear_queue(struct link_queue *queue) -+{ -+ if (queue == NULL) -+ return; -+ -+ struct queue_node *node = queue->head; -+ struct queue_node *tmp = NULL; -+ -+ while (node != NULL) { -+ tmp = node; -+ node = node->next; -+ free(tmp); -+ } -+ -+ queue->head = NULL; -+ queue->tail = NULL; -+ queue->size = 0; -+} -+ -+void free_queue(struct link_queue *queue) -+{ -+ clear_queue(queue); -+ -+ if (queue) -+ free(queue); -+} -+ -+/* It should be guranteed that the param is not NULL */ -+void push(struct link_queue *queue, struct queue_node *node) -+{ -+ /* there is no element in the queue */ -+ if (queue->head == NULL) -+ queue->head = node; -+ else -+ queue->tail->next = node; -+ -+ queue->tail = node; -+ (queue->size)++; -+} -+ -+int pop(struct link_queue *queue) -+{ -+ struct queue_node *tmp = NULL; -+ -+ if (queue == NULL || is_empty(queue)) -+ return -1; -+ -+ tmp = queue->head; -+ queue->head = queue->head->next; -+ free(tmp); -+ (queue->size)--; -+ -+ return 0; -+} -+ -+struct queue_node *front(struct link_queue *queue) -+{ -+ if (queue == NULL) -+ return NULL; -+ -+ return queue->head; -+} -+ -+struct queue_node *node_create(time_t time, unsigned int value) -+{ -+ struct queue_node *node = NULL; -+ -+ node = (struct queue_node *)malloc(sizeof(struct queue_node)); -+ if (node != NULL) { -+ node->time = time; -+ node->value = value; -+ node->next = NULL; -+ } -+ -+ return node; -+} -diff --git a/queue.h b/queue.h -new file mode 100644 -index 0000000..5459f40 ---- /dev/null -+++ b/queue.h -@@ -0,0 +1,39 @@ -+/* -+ * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#ifndef __RAS_QUEUE_H -+#define __RAS_QUEUE_H -+ -+struct queue_node { -+ time_t time; -+ unsigned int value; -+ struct queue_node *next; -+}; -+ -+struct link_queue { -+ struct queue_node *head; -+ struct queue_node *tail; -+ int size; -+}; -+ -+int is_empty(struct link_queue *queue); -+struct link_queue *init_queue(void); -+void clear_queue(struct link_queue *queue); -+void free_queue(struct link_queue *queue); -+void push(struct link_queue *queue, struct queue_node *node); -+int pop(struct link_queue *queue); -+struct queue_node *front(struct link_queue *queue); -+struct queue_node *node_create(time_t time, unsigned int value); -+ -+#endif -diff --git a/ras-arm-handler.c b/ras-arm-handler.c -index 1149dc6..9c7a3c3 100644 ---- a/ras-arm-handler.c -+++ b/ras-arm-handler.c -@@ -22,6 +22,10 @@ - #include "ras-report.h" - #include "ras-non-standard-handler.h" - #include "non-standard-ampere.h" -+#include "ras-cpu-isolation.h" -+ -+#define ARM_ERR_VALID_ERROR_COUNT BIT(0) -+#define ARM_ERR_VALID_FLAGS BIT(1) - - void display_raw_data(struct trace_seq *s, - const uint8_t *buf, -@@ -42,6 +46,93 @@ void display_raw_data(struct trace_seq *s, - } - } - -+#ifdef HAVE_CPU_FAULT_ISOLATION -+static int count_errors(struct ras_arm_event *ev) -+{ -+ struct ras_arm_err_info *err_info; -+ int num_pei; -+ int err_info_size = sizeof(struct ras_arm_err_info); -+ int num = 0; -+ int i; -+ int error_count; -+ -+ if (ev->pei_len % err_info_size != 0) { -+ log(TERM, LOG_ERR, -+ "The event data does not match to the ARM Processor Error Information Structure\n"); -+ return num; -+ } -+ num_pei = ev->pei_len / err_info_size; -+ err_info = (struct ras_arm_err_info *)(ev->pei_error); -+ -+ for (i = 0; i < num_pei; ++i) { -+ error_count = 1; -+ if (err_info->validation_bits & ARM_ERR_VALID_ERROR_COUNT) { -+ /* -+ * The value of this field is defined as follows: -+ * 0: Single Error -+ * 1: Multiple Errors -+ * 2-65535: Error Count -+ */ -+ error_count = err_info->multiple_error + 1; -+ } -+ -+ num += error_count; -+ err_info += 1; -+ } -+ log(TERM, LOG_INFO, "%d error in cpu core catched\n", num); -+ return num; -+} -+ -+static int ras_handle_cpu_error(struct trace_seq *s, -+ struct pevent_record *record, -+ struct event_format *event, -+ struct ras_arm_event *ev, time_t now) -+{ -+ unsigned long long val; -+ int cpu; -+ char *severity; -+ struct error_info err_info; -+ -+ if (pevent_get_field_val(s, event, "cpu", record, &val, 1) < 0) -+ return -1; -+ cpu = val; -+ trace_seq_printf(s, "\n cpu: %d", cpu); -+ -+ /* record cpu error */ -+ if (pevent_get_field_val(s, event, "sev", record, &val, 1) < 0) -+ return -1; -+ /* refer to UEFI_2_9 specification chapter N2.2 Table N-5 */ -+ switch (val) { -+ case GHES_SEV_NO: -+ severity = "Informational"; -+ break; -+ case GHES_SEV_CORRECTED: -+ severity = "Corrected"; -+ break; -+ case GHES_SEV_RECOVERABLE: -+ severity = "Recoverable"; -+ break; -+ default: -+ case GHES_SEV_PANIC: -+ severity = "Fatal"; -+ } -+ trace_seq_printf(s, "\n severity: %s", severity); -+ -+ if (val == GHES_SEV_CORRECTED) { -+ int nums = count_errors(ev); -+ -+ if (nums > 0) { -+ err_info.nums = nums; -+ err_info.time = now; -+ err_info.err_type = val; -+ ras_record_cpu_error(&err_info, cpu); -+ } -+ } -+ -+ return 0; -+} -+#endif -+ - int ras_arm_event_handler(struct trace_seq *s, - struct pevent_record *record, - struct event_format *event, void *context) -@@ -52,6 +143,7 @@ int ras_arm_event_handler(struct trace_seq *s, - struct tm *tm; - struct ras_arm_event ev; - int len = 0; -+ - memset(&ev, 0, sizeof(ev)); - - /* -@@ -139,6 +231,11 @@ int ras_arm_event_handler(struct trace_seq *s, - display_raw_data(s, ev.vsei_error, ev.oem_len); - #endif - -+#ifdef HAVE_CPU_FAULT_ISOLATION -+ if (ras_handle_cpu_error(s, record, event, &ev, now) < 0) -+ return -1; -+#endif -+ - /* Insert data into the SGBD */ - #ifdef HAVE_SQLITE3 - ras_store_arm_record(ras, &ev); -diff --git a/ras-arm-handler.h b/ras-arm-handler.h -index 563a2d3..52813e7 100644 ---- a/ras-arm-handler.h -+++ b/ras-arm-handler.h -@@ -17,6 +17,24 @@ - #include "ras-events.h" - #include "libtrace/event-parse.h" - -+/* -+ * ARM Processor Error Information Structure, According to -+ * UEFI_2_9 specification chapter N2.4.4. -+ */ -+#pragma pack(1) -+struct ras_arm_err_info { -+ uint8_t version; -+ uint8_t length; -+ uint16_t validation_bits; -+ uint8_t type; -+ uint16_t multiple_error; -+ uint8_t flags; -+ uint64_t error_info; -+ uint64_t virt_fault_addr; -+ uint64_t physical_fault_addr; -+}; -+#pragma pack() -+ - int ras_arm_event_handler(struct trace_seq *s, - struct pevent_record *record, - struct event_format *event, void *context); -diff --git a/ras-cpu-isolation.c b/ras-cpu-isolation.c -new file mode 100644 -index 0000000..abcf451 ---- /dev/null -+++ b/ras-cpu-isolation.c -@@ -0,0 +1,388 @@ -+/* -+ * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "ras-logger.h" -+#include "ras-cpu-isolation.h" -+ -+#define SECOND_OF_MON (30 * 24 * 60 * 60) -+#define SECOND_OF_DAY (24 * 60 * 60) -+#define SECOND_OF_HOU (60 * 60) -+#define SECOND_OF_MIN (60) -+ -+#define LIMIT_OF_CPU_THRESHOLD 10000 -+#define INIT_OF_CPU_THRESHOLD 18 -+#define DEC_CHECK 10 -+#define LAST_BIT_OF_UL 5 -+ -+static struct cpu_info *cpu_infos; -+static unsigned int ncores; -+static unsigned int enabled = 1; -+static const char *cpu_path_format = "/sys/devices/system/cpu/cpu%d/online"; -+ -+static const struct param normal_units[] = { -+ {"", 1}, -+ {} -+}; -+ -+static const struct param cycle_units[] = { -+ {"d", SECOND_OF_DAY}, -+ {"h", SECOND_OF_HOU}, -+ {"m", SECOND_OF_MIN}, -+ {"s", 1}, -+ {} -+}; -+ -+static struct isolation_param threshold = { -+ .name = "CPU_CE_THRESHOLD", -+ .units = normal_units, -+ .value = INIT_OF_CPU_THRESHOLD, -+ .limit = LIMIT_OF_CPU_THRESHOLD -+}; -+ -+static struct isolation_param cpu_limit = { -+ .name = "CPU_ISOLATION_LIMIT", -+ .units = normal_units -+}; -+ -+static struct isolation_param cycle = { -+ .name = "CPU_ISOLATION_CYCLE", -+ .units = cycle_units, -+ .value = SECOND_OF_DAY, -+ .limit = SECOND_OF_MON -+}; -+ -+static const char * const cpu_state[] = { -+ [CPU_OFFLINE] = "offline", -+ [CPU_ONLINE] = "online", -+ [CPU_OFFLINE_FAILED] = "offline-failed", -+ [CPU_UNKNOWN] = "unknown" -+}; -+ -+static int open_sys_file(unsigned int cpu, int __oflag, const char *format) -+{ -+ int fd; -+ char path[MAX_PATH_LEN + 1] = ""; -+ char real_path[MAX_PATH_LEN + 1] = ""; -+ -+ snprintf(path, sizeof(path), format, cpu); -+ if (strlen(path) > MAX_PATH_LEN || realpath(path, real_path) == NULL) { -+ log(TERM, LOG_ERR, "[%s]:open file: %s failed\n", __func__, path); -+ return -1; -+ } -+ fd = open(real_path, __oflag); -+ if (fd == -1) { -+ log(TERM, LOG_ERR, "[%s]:open file: %s failed\n", __func__, real_path); -+ return -1; -+ } -+ -+ return fd; -+} -+ -+static int get_cpu_status(unsigned int cpu) -+{ -+ int fd, num; -+ char buf[2] = ""; -+ -+ fd = open_sys_file(cpu, O_RDONLY, cpu_path_format); -+ if (fd == -1) -+ return CPU_UNKNOWN; -+ -+ if (read(fd, buf, 1) <= 0 || sscanf(buf, "%d", &num) != 1) -+ num = CPU_UNKNOWN; -+ -+ close(fd); -+ -+ return (num < 0 || num > CPU_UNKNOWN) ? CPU_UNKNOWN : num; -+} -+ -+static int init_cpu_info(unsigned int cpus) -+{ -+ ncores = cpus; -+ cpu_infos = (struct cpu_info *)malloc(sizeof(*cpu_infos) * cpus); -+ if (!cpu_infos) { -+ log(TERM, LOG_ERR, -+ "Failed to allocate memory for cpu infos in %s.\n", __func__); -+ return -1; -+ } -+ -+ for (unsigned int i = 0; i < cpus; ++i) { -+ cpu_infos[i].ce_nums = 0; -+ cpu_infos[i].state = get_cpu_status(i); -+ cpu_infos[i].ce_queue = init_queue(); -+ -+ if (cpu_infos[i].ce_queue == NULL) { -+ log(TERM, LOG_ERR, -+ "Failed to allocate memory for cpu ce queue in %s.\n", __func__); -+ return -1; -+ } -+ } -+ /* set limit of offlined cpu limit according to number of cpu */ -+ cpu_limit.limit = cpus - 1; -+ cpu_limit.value = 0; -+ -+ return 0; -+} -+ -+static void check_config(struct isolation_param *config) -+{ -+ if (config->value > config->limit) { -+ log(TERM, LOG_WARNING, "Value: %lu exceed limit: %lu, set to limit\n", -+ config->value, config->limit); -+ config->value = config->limit; -+ } -+} -+ -+static int parse_ul_config(struct isolation_param *config, char *env, unsigned long *value) -+{ -+ char *unit = NULL; -+ int env_size, has_unit = 0; -+ -+ if (!env || strlen(env) == 0) -+ return -1; -+ -+ env_size = strlen(env); -+ unit = env + env_size - 1; -+ -+ if (isalpha(*unit)) { -+ has_unit = 1; -+ env_size--; -+ if (env_size <= 0) -+ return -1; -+ } -+ -+ for (int i = 0; i < env_size; ++i) { -+ if (isdigit(env[i])) { -+ if (*value > ULONG_MAX / DEC_CHECK || -+ (*value == ULONG_MAX / DEC_CHECK && env[i] - '0' > LAST_BIT_OF_UL)) { -+ log(TERM, LOG_ERR, "%s is out of range: %lu\n", env, ULONG_MAX); -+ return -1; -+ } -+ *value = DEC_CHECK * (*value) + (env[i] - '0'); -+ } else -+ return -1; -+ } -+ -+ if (!has_unit) -+ return 0; -+ -+ for (const struct param *units = config->units; units->name; units++) { -+ /* value character and unit character are both valid */ -+ if (!strcasecmp(unit, units->name)) { -+ if (*value > (ULONG_MAX / units->value)) { -+ log(TERM, LOG_ERR, -+ "%s is out of range: %lu\n", env, ULONG_MAX); -+ return -1; -+ } -+ *value = (*value) * units->value; -+ return 0; -+ } -+ } -+ log(TERM, LOG_ERR, "Invalid unit %s\n", unit); -+ return -1; -+} -+ -+static void init_config(struct isolation_param *config) -+{ -+ char *env = getenv(config->name); -+ unsigned long value = 0; -+ -+ if (parse_ul_config(config, env, &value) < 0) { -+ log(TERM, LOG_ERR, "Invalid %s: %s! Use default value %lu.\n", -+ config->name, env, config->value); -+ return; -+ } -+ -+ config->value = value; -+ check_config(config); -+} -+ -+static int check_config_status(void) -+{ -+ char *env = getenv("CPU_ISOLATION_ENABLE"); -+ -+ if (env == NULL || strcasecmp(env, "yes")) -+ return -1; -+ -+ return 0; -+} -+ -+void ras_cpu_isolation_init(unsigned int cpus) -+{ -+ if (init_cpu_info(cpus) < 0 || check_config_status() < 0) { -+ enabled = 0; -+ log(TERM, LOG_WARNING, "Cpu fault isolation is disabled\n"); -+ return; -+ } -+ -+ log(TERM, LOG_INFO, "Cpu fault isolation is enabled\n"); -+ init_config(&threshold); -+ init_config(&cpu_limit); -+ init_config(&cycle); -+} -+ -+void cpu_infos_free(void) -+{ -+ if (cpu_infos) { -+ for (int i = 0; i < ncores; ++i) -+ free_queue(cpu_infos[i].ce_queue); -+ -+ free(cpu_infos); -+ } -+} -+ -+static int do_cpu_offline(unsigned int cpu) -+{ -+ int fd, rc; -+ char buf[2] = ""; -+ -+ cpu_infos[cpu].state = CPU_OFFLINE_FAILED; -+ fd = open_sys_file(cpu, O_RDWR, cpu_path_format); -+ if (fd == -1) -+ return HANDLE_FAILED; -+ -+ strcpy(buf, "0"); -+ rc = write(fd, buf, strlen(buf)); -+ if (rc < 0) { -+ log(TERM, LOG_ERR, "cpu%u offline failed, errno:%d\n", cpu, errno); -+ close(fd); -+ return HANDLE_FAILED; -+ } -+ -+ close(fd); -+ /* check wthether the cpu is isolated successfully */ -+ cpu_infos[cpu].state = get_cpu_status(cpu); -+ -+ if (cpu_infos[cpu].state == CPU_OFFLINE) -+ return HANDLE_SUCCEED; -+ -+ return HANDLE_FAILED; -+} -+ -+static int do_ce_handler(unsigned int cpu) -+{ -+ struct link_queue *queue = cpu_infos[cpu].ce_queue; -+ unsigned int tmp; -+ /* -+ * Since we just count all error numbers in setted cycle, we store the time -+ * and error numbers from current event to the queue, then everytime we -+ * calculate the period from beginning time to ending time, if the period -+ * exceeds setted cycle, we pop the beginning time and error until the period -+ * from new beginning time to ending time is less than cycle. -+ */ -+ while (queue->head && queue->tail && queue->tail->time - queue->head->time > cycle.value) { -+ tmp = queue->head->value; -+ if (pop(queue) == 0) -+ cpu_infos[cpu].ce_nums -= tmp; -+ } -+ log(TERM, LOG_INFO, -+ "Current number of Corrected Errors in cpu%d in the cycle is %lu\n", -+ cpu, cpu_infos[cpu].ce_nums); -+ -+ if (cpu_infos[cpu].ce_nums >= threshold.value) { -+ log(TERM, LOG_INFO, -+ "Corrected Errors exceeded threshold %lu, try to offline cpu%u\n", -+ threshold.value, cpu); -+ return do_cpu_offline(cpu); -+ } -+ return HANDLE_NOTHING; -+} -+ -+static int error_handler(unsigned int cpu, struct error_info *err_info) -+{ -+ int ret = HANDLE_NOTHING; -+ -+ switch (err_info->err_type) { -+ case CE: -+ ret = do_ce_handler(cpu); -+ break; -+ default: -+ break; -+ } -+ -+ return ret; -+} -+ -+static void record_error_info(unsigned int cpu, struct error_info *err_info) -+{ -+ switch (err_info->err_type) { -+ case CE: -+ { -+ struct queue_node *node = node_create(err_info->time, err_info->nums); -+ -+ if (node == NULL) { -+ log(TERM, LOG_ERR, "Fail to allocate memory for queue node\n"); -+ return; -+ } -+ push(cpu_infos[cpu].ce_queue, node); -+ cpu_infos[cpu].ce_nums += err_info->nums; -+ break; -+ } -+ default: -+ break; -+ } -+} -+ -+void ras_record_cpu_error(struct error_info *err_info, int cpu) -+{ -+ int ret; -+ -+ if (enabled == 0) -+ return; -+ -+ if (cpu >= ncores || cpu < 0) { -+ log(TERM, LOG_ERR, -+ "The current cpu %d has exceed the total number of cpu:%u\n", cpu, ncores); -+ return; -+ } -+ -+ log(TERM, LOG_INFO, "Handling error on cpu%d\n", cpu); -+ cpu_infos[cpu].state = get_cpu_status(cpu); -+ -+ if (cpu_infos[cpu].state != CPU_ONLINE) { -+ log(TERM, LOG_INFO, "Cpu%d is not online or unknown, ignore\n", cpu); -+ return; -+ } -+ -+ record_error_info(cpu, err_info); -+ /* -+ * Since user may change cpu state, we get current offlined -+ * cpu numbers every recording time. -+ */ -+ if (ncores - sysconf(_SC_NPROCESSORS_ONLN) >= cpu_limit.value) { -+ log(TERM, LOG_WARNING, -+ "Offlined cpus have exceeded limit: %lu, choose to do nothing\n", -+ cpu_limit.value); -+ return; -+ } -+ -+ ret = error_handler(cpu, err_info); -+ if (ret == HANDLE_NOTHING) -+ log(TERM, LOG_WARNING, "Doing nothing in the cpu%d\n", cpu); -+ else if (ret == HANDLE_SUCCEED) { -+ log(TERM, LOG_INFO, "Offline cpu%d succeed, the state is %s\n", -+ cpu, cpu_state[cpu_infos[cpu].state]); -+ clear_queue(cpu_infos[cpu].ce_queue); -+ cpu_infos[cpu].ce_nums = 0; -+ } else -+ log(TERM, LOG_WARNING, "Offline cpu%d fail, the state is %s\n", -+ cpu, cpu_state[cpu_infos[cpu].state]); -+} -diff --git a/ras-cpu-isolation.h b/ras-cpu-isolation.h -new file mode 100644 -index 0000000..1159853 ---- /dev/null -+++ b/ras-cpu-isolation.h -@@ -0,0 +1,68 @@ -+/* -+ * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#ifndef __RAS_CPU_ISOLATION_H -+#define __RAS_CPU_ISOLATION_H -+ -+#include "queue.h" -+ -+#define MAX_PATH_LEN 100 -+#define MAX_BUF_LEN 1024 -+ -+struct param { -+ char *name; -+ unsigned long value; -+}; -+ -+struct isolation_param { -+ char *name; -+ const struct param *units; -+ unsigned long value; -+ unsigned long limit; -+}; -+ -+enum cpu_state { -+ CPU_OFFLINE, -+ CPU_ONLINE, -+ CPU_OFFLINE_FAILED, -+ CPU_UNKNOWN, -+}; -+ -+enum error_handle_result { -+ HANDLE_FAILED = -1, -+ HANDLE_SUCCEED, -+ HANDLE_NOTHING, -+}; -+ -+enum error_type { -+ CE = 1 -+}; -+ -+struct cpu_info { -+ unsigned long ce_nums; -+ struct link_queue *ce_queue; -+ enum cpu_state state; -+}; -+ -+struct error_info { -+ unsigned long nums; -+ time_t time; -+ enum error_type err_type; -+}; -+ -+void ras_cpu_isolation_init(unsigned int cpus); -+void ras_record_cpu_error(struct error_info *err_info, int cpu); -+void cpu_infos_free(void); -+ -+#endif -diff --git a/ras-events.c b/ras-events.c -index 39cab20..beda655 100644 ---- a/ras-events.c -+++ b/ras-events.c -@@ -42,6 +42,7 @@ - #include "ras-record.h" - #include "ras-logger.h" - #include "ras-page-isolation.h" -+#include "ras-cpu-isolation.h" - - /* - * Polling time, if read() doesn't block. Currently, trace_pipe_raw never -@@ -856,6 +857,10 @@ int handle_ras_events(int record_events) - - cpus = get_num_cpus(ras); - -+#ifdef HAVE_CPU_FAULT_ISOLATION -+ ras_cpu_isolation_init(cpus); -+#endif -+ - #ifdef HAVE_MCE - rc = register_mce_handler(ras, cpus); - if (rc) -@@ -982,6 +987,8 @@ err: - } - free(ras); - } -- -+#ifdef HAVE_CPU_FAULT_ISOLATION -+ cpu_infos_free(); -+#endif - return rc; - } --- -2.25.1 - diff --git a/0001-rasdaemon-use-standard-length-PATH_MAX-for-path-name.patch b/0001-rasdaemon-use-standard-length-PATH_MAX-for-path-name.patch deleted file mode 100644 index 2409a51..0000000 --- a/0001-rasdaemon-use-standard-length-PATH_MAX-for-path-name.patch +++ /dev/null @@ -1,46 +0,0 @@ -From: Xiaofei Tan -Date: Sat, 20 Aug 2022 09:49:25 +0000 -Subject: [PATCH] rasdaemon: use standard length PATH_MAX for path name - -Use standard length PATH_MAX for path name space allocation -to replace the macro MAX_PATH_LEN. - -Signed-off-by: Xiaofei Tan ---- - ras-cpu-isolation.c | 6 +++--- - ras-cpu-isolation.h | 1 - - 2 files changed, 3 insertions(+), 4 deletions(-) - -diff --git a/ras-cpu-isolation.c b/ras-cpu-isolation.c -index ba5ccd1..24c07e9 100644 ---- a/ras-cpu-isolation.c -+++ b/ras-cpu-isolation.c -@@ -80,11 +80,11 @@ static const char * const cpu_state[] = { - static int open_sys_file(unsigned int cpu, int __oflag, const char *format) - { - int fd; -- char path[MAX_PATH_LEN + 1] = ""; -- char real_path[MAX_PATH_LEN + 1] = ""; -+ char path[PATH_MAX] = ""; -+ char real_path[PATH_MAX] = ""; - - snprintf(path, sizeof(path), format, cpu); -- if (strlen(path) > MAX_PATH_LEN || realpath(path, real_path) == NULL) { -+ if (strlen(path) > PATH_MAX || realpath(path, real_path) == NULL) { - log(TERM, LOG_ERR, "[%s]:open file: %s failed\n", __func__, path); - return -1; - } -diff --git a/ras-cpu-isolation.h b/ras-cpu-isolation.h -index 024a68b..5682106 100644 ---- a/ras-cpu-isolation.h -+++ b/ras-cpu-isolation.h -@@ -17,7 +17,6 @@ - - #include "queue.h" - --#define MAX_PATH_LEN 100 - #define MAX_BUF_LEN 1024 - - struct param { --- -2.17.1 diff --git a/0002-rasdaemon-Fix-poll-on-per_cpu-trace_pipe_raw-blocks-.patch b/0002-rasdaemon-Fix-poll-on-per_cpu-trace_pipe_raw-blocks-.patch deleted file mode 100644 index 85ae07d..0000000 --- a/0002-rasdaemon-Fix-poll-on-per_cpu-trace_pipe_raw-blocks-.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 6986d818e6d2c846c001fc7211b5a4153e5ecd11 Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Sat, 4 Feb 2023 19:15:55 +0000 -Subject: [PATCH] rasdaemon: Fix poll() on per_cpu trace_pipe_raw blocks - indefinitely - -The error events are not received in the rasdaemon since kernel 6.1-rc6. -This issue is firstly detected and reported, when testing the CXL error -events in the rasdaemon. - -Debugging showed, poll() on trace_pipe_raw in the ras-events.c do not -return and this issue is seen after the commit -42fb0a1e84ff525ebe560e2baf9451ab69127e2b ("tracing/ring-buffer: Have -polling block on watermark"). - -This issue is also verified using a test application for poll() -and select() on per_cpu trace_pipe_raw. - -There is also a bug reported on this issue, -https://lore.kernel.org/all/31eb3b12-3350-90a4-a0d9-d1494db7cf74@oracle.com/ - -This issue occurs for the per_cpu case, which calls the ring_buffer_poll_wait(), -in kernel/trace/ring_buffer.c, with the buffer_percent > 0 and then wait until -the percentage of pages are available. The default value set for the -buffer_percent is 50 in the kernel/trace/trace.c. However poll() does not return -even met the percentage of pages condition. - -As a fix, rasdaemon set buffer_percent as 0 through the -/sys/kernel/debug/tracing/instances/rasdaemon/buffer_percent, then the -task will wake up as soon as data is added to any of the specific cpu -buffer and poll() on per_cpu/cpuX/trace_pipe_raw does not block -indefinitely. - -Dependency on the kernel fix commit -3e46d910d8acf94e5360126593b68bf4fee4c4a1("tracing: Fix poll() and select() -do not work on per_cpu trace_pipe and trace_pipe_raw") - -Signed-off-by: Shiju Jose ---- - ras-events.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/ras-events.c b/ras-events.c -index 39f9ce2..49e4f9a 100644 ---- a/ras-events.c -+++ b/ras-events.c -@@ -376,6 +376,8 @@ static int read_ras_event_all_cpus(struct pthread_data *pdata, - int warnonce[n_cpus]; - char pipe_raw[PATH_MAX]; - int legacy_kernel = 0; -+ int fd; -+ char buf[16]; - #if 0 - int need_sleep = 0; - #endif -@@ -395,6 +397,26 @@ static int read_ras_event_all_cpus(struct pthread_data *pdata, - return -ENOMEM; - } - -+ /* Fix for poll() on the per_cpu trace_pipe and trace_pipe_raw blocks -+ * indefinitely with the default buffer_percent in the kernel trace system, -+ * which is introduced by the following change in the kernel. -+ * https://lore.kernel.org/all/20221020231427.41be3f26@gandalf.local.home/T/#u. -+ * Set buffer_percent to 0 so that poll() will return immediately -+ * when the trace data is available in the ras per_cpu trace pipe_raw -+ */ -+ fd = open_trace(pdata[0].ras, "buffer_percent", O_WRONLY); -+ if (fd >= 0) { -+ /* For the backward compatibility to the old kernels, do not return -+ * if fail to set the buffer_percent. -+ */ -+ snprintf(buf, sizeof(buf), "0"); -+ size = write(fd, buf, strlen(buf)); -+ if (size <= 0) -+ log(TERM, LOG_WARNING, "can't write to buffer_percent\n"); -+ close(fd); -+ } else -+ log(TERM, LOG_WARNING, "Can't open buffer_percent\n"); -+ - for (i = 0; i < (n_cpus + 1); i++) - fds[i].fd = -1; - --- -2.25.1 - diff --git a/0002-rasdaemon-Support-cpu-fault-isolation-for-recoverabl.patch b/0002-rasdaemon-Support-cpu-fault-isolation-for-recoverabl.patch deleted file mode 100644 index e401fa9..0000000 --- a/0002-rasdaemon-Support-cpu-fault-isolation-for-recoverabl.patch +++ /dev/null @@ -1,150 +0,0 @@ -From fefa2d689f96302e64ad2375695703039e2ca951 Mon Sep 17 00:00:00 2001 -From: Shengwei Luo -Date: Wed, 23 Feb 2022 17:23:27 +0800 -Subject: [PATCH 02/10] rasdaemon: Support cpu fault isolation for recoverable - errors - -When the recoverable errors in cpu core occurred, try to offline -the related cpu core. - -Signed-off-by: Shengwei Luo -Signed-off-by: Junchong Pan -Signed-off-by: Lei Feng -Signed-off-by: Shiju Jose ---- - ras-arm-handler.c | 22 +++++++++++++++++++--- - ras-cpu-isolation.c | 17 +++++++++++++++++ - ras-cpu-isolation.h | 4 +++- - 3 files changed, 39 insertions(+), 4 deletions(-) - -diff --git a/ras-arm-handler.c b/ras-arm-handler.c -index 9c7a3c3..a0dfc51 100644 ---- a/ras-arm-handler.c -+++ b/ras-arm-handler.c -@@ -26,6 +26,7 @@ - - #define ARM_ERR_VALID_ERROR_COUNT BIT(0) - #define ARM_ERR_VALID_FLAGS BIT(1) -+#define BIT2 2 - - void display_raw_data(struct trace_seq *s, - const uint8_t *buf, -@@ -47,7 +48,20 @@ void display_raw_data(struct trace_seq *s, - } - - #ifdef HAVE_CPU_FAULT_ISOLATION --static int count_errors(struct ras_arm_event *ev) -+static int is_core_failure(struct ras_arm_err_info *err_info) -+{ -+ if (err_info->validation_bits & ARM_ERR_VALID_FLAGS) { -+ /* -+ * core failure: -+ * Bit 0\1\3: (at lease 1) -+ * Bit 2: 0 -+ */ -+ return (err_info->flags & 0xf) && !(err_info->flags & (0x1 << BIT2)); -+ } -+ return 0; -+} -+ -+static int count_errors(struct ras_arm_event *ev, int sev) - { - struct ras_arm_err_info *err_info; - int num_pei; -@@ -75,6 +89,8 @@ static int count_errors(struct ras_arm_event *ev) - */ - error_count = err_info->multiple_error + 1; - } -+ if (sev == GHES_SEV_RECOVERABLE && !is_core_failure(err_info)) -+ error_count = 0; - - num += error_count; - err_info += 1; -@@ -118,8 +134,8 @@ static int ras_handle_cpu_error(struct trace_seq *s, - } - trace_seq_printf(s, "\n severity: %s", severity); - -- if (val == GHES_SEV_CORRECTED) { -- int nums = count_errors(ev); -+ if (val == GHES_SEV_CORRECTED || val == GHES_SEV_RECOVERABLE) { -+ int nums = count_errors(ev, val); - - if (nums > 0) { - err_info.nums = nums; -diff --git a/ras-cpu-isolation.c b/ras-cpu-isolation.c -index abcf451..fd23e4e 100644 ---- a/ras-cpu-isolation.c -+++ b/ras-cpu-isolation.c -@@ -126,6 +126,7 @@ static int init_cpu_info(unsigned int cpus) - - for (unsigned int i = 0; i < cpus; ++i) { - cpu_infos[i].ce_nums = 0; -+ cpu_infos[i].uce_nums = 0; - cpu_infos[i].state = get_cpu_status(i); - cpu_infos[i].ce_queue = init_queue(); - -@@ -306,6 +307,15 @@ static int do_ce_handler(unsigned int cpu) - return HANDLE_NOTHING; - } - -+static int do_uce_handler(unsigned int cpu) -+{ -+ if (cpu_infos[cpu].uce_nums > 0) { -+ log(TERM, LOG_INFO, "Uncorrected Errors occurred, try to offline cpu%u\n", cpu); -+ return do_cpu_offline(cpu); -+ } -+ return HANDLE_NOTHING; -+} -+ - static int error_handler(unsigned int cpu, struct error_info *err_info) - { - int ret = HANDLE_NOTHING; -@@ -314,6 +324,9 @@ static int error_handler(unsigned int cpu, struct error_info *err_info) - case CE: - ret = do_ce_handler(cpu); - break; -+ case UCE: -+ ret = do_uce_handler(cpu); -+ break; - default: - break; - } -@@ -336,6 +349,9 @@ static void record_error_info(unsigned int cpu, struct error_info *err_info) - cpu_infos[cpu].ce_nums += err_info->nums; - break; - } -+ case UCE: -+ cpu_infos[cpu].uce_nums++; -+ break; - default: - break; - } -@@ -382,6 +398,7 @@ void ras_record_cpu_error(struct error_info *err_info, int cpu) - cpu, cpu_state[cpu_infos[cpu].state]); - clear_queue(cpu_infos[cpu].ce_queue); - cpu_infos[cpu].ce_nums = 0; -+ cpu_infos[cpu].uce_nums = 0; - } else - log(TERM, LOG_WARNING, "Offline cpu%d fail, the state is %s\n", - cpu, cpu_state[cpu_infos[cpu].state]); -diff --git a/ras-cpu-isolation.h b/ras-cpu-isolation.h -index 1159853..024a68b 100644 ---- a/ras-cpu-isolation.h -+++ b/ras-cpu-isolation.h -@@ -46,10 +46,12 @@ enum error_handle_result { - }; - - enum error_type { -- CE = 1 -+ CE = 1, -+ UCE - }; - - struct cpu_info { -+ unsigned long uce_nums; - unsigned long ce_nums; - struct link_queue *ce_queue; - enum cpu_state state; --- -2.25.1 - diff --git a/0002-rasdaemon-fix-issue-of-signed-and-unsigned-integer-c.patch b/0002-rasdaemon-fix-issue-of-signed-and-unsigned-integer-c.patch index 89ecf80..bd229cf 100644 --- a/0002-rasdaemon-fix-issue-of-signed-and-unsigned-integer-c.patch +++ b/0002-rasdaemon-fix-issue-of-signed-and-unsigned-integer-c.patch @@ -82,7 +82,7 @@ index 9941e68..8fd7117 100644 #include #include #include --#include "libtrace/kbuffer.h" +-#include -#include "ras-memory-failure-handler.h" #include "ras-record.h" #include "ras-logger.h" diff --git a/0003-rasdaemon-Modify-recording-Hisilicon-common-error-da.patch b/0003-rasdaemon-Modify-recording-Hisilicon-common-error-da.patch deleted file mode 100644 index c51e35a..0000000 --- a/0003-rasdaemon-Modify-recording-Hisilicon-common-error-da.patch +++ /dev/null @@ -1,228 +0,0 @@ -From 9c4665f33c39ea84db7d69079ab27205d2fbd07e Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Wed, 2 Mar 2022 12:20:40 +0000 -Subject: [PATCH 03/10] rasdaemon: Modify recording Hisilicon common error data - -The error statistics for the Hisilicon common -error need to do based on module, error severity etc. - -Modify recording Hisilicon common error data as separate fields -in the sql db table instead of the combined single field. - -Signed-off-by: Shiju Jose ---- - non-standard-hisilicon.c | 126 ++++++++++++++++++++++++++++++++------- - 1 file changed, 104 insertions(+), 22 deletions(-) - -diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c -index 1432163..d1e1774 100644 ---- a/non-standard-hisilicon.c -+++ b/non-standard-hisilicon.c -@@ -17,6 +17,7 @@ - #include "non-standard-hisilicon.h" - - #define HISI_BUF_LEN 2048 -+#define HISI_PCIE_INFO_BUF_LEN 256 - - struct hisi_common_error_section { - uint32_t val_bits; -@@ -63,12 +64,25 @@ enum { - enum { - HISI_COMMON_FIELD_ID, - HISI_COMMON_FIELD_TIMESTAMP, -- HISI_COMMON_FIELD_ERR_INFO, -+ HISI_COMMON_FIELD_VERSION, -+ HISI_COMMON_FIELD_SOC_ID, -+ HISI_COMMON_FIELD_SOCKET_ID, -+ HISI_COMMON_FIELD_TOTEM_ID, -+ HISI_COMMON_FIELD_NIMBUS_ID, -+ HISI_COMMON_FIELD_SUB_SYSTEM_ID, -+ HISI_COMMON_FIELD_MODULE_ID, -+ HISI_COMMON_FIELD_SUB_MODULE_ID, -+ HISI_COMMON_FIELD_CORE_ID, -+ HISI_COMMON_FIELD_PORT_ID, -+ HISI_COMMON_FIELD_ERR_TYPE, -+ HISI_COMMON_FIELD_PCIE_INFO, -+ HISI_COMMON_FIELD_ERR_SEVERITY, - HISI_COMMON_FIELD_REGS_DUMP, - }; - - struct hisi_event { - char error_msg[HISI_BUF_LEN]; -+ char pcie_info[HISI_PCIE_INFO_BUF_LEN]; - char reg_msg[HISI_BUF_LEN]; - }; - -@@ -132,14 +146,26 @@ int step_vendor_data_tab(struct ras_ns_ev_decoder *ev_decoder, const char *name) - - #ifdef HAVE_SQLITE3 - static const struct db_fields hisi_common_section_fields[] = { -- { .name = "id", .type = "INTEGER PRIMARY KEY" }, -- { .name = "timestamp", .type = "TEXT" }, -- { .name = "err_info", .type = "TEXT" }, -+ { .name = "id", .type = "INTEGER PRIMARY KEY" }, -+ { .name = "timestamp", .type = "TEXT" }, -+ { .name = "version", .type = "INTEGER" }, -+ { .name = "soc_id", .type = "INTEGER" }, -+ { .name = "socket_id", .type = "INTEGER" }, -+ { .name = "totem_id", .type = "INTEGER" }, -+ { .name = "nimbus_id", .type = "INTEGER" }, -+ { .name = "sub_system_id", .type = "INTEGER" }, -+ { .name = "module_id", .type = "TEXT" }, -+ { .name = "sub_module_id", .type = "INTEGER" }, -+ { .name = "core_id", .type = "INTEGER" }, -+ { .name = "port_id", .type = "INTEGER" }, -+ { .name = "err_type", .type = "INTEGER" }, -+ { .name = "pcie_info", .type = "TEXT" }, -+ { .name = "err_severity", .type = "TEXT" }, - { .name = "regs_dump", .type = "TEXT" }, - }; - - static const struct db_table_descriptor hisi_common_section_tab = { -- .name = "hisi_common_section", -+ .name = "hisi_common_section_v2", - .fields = hisi_common_section_fields, - .num_fields = ARRAY_SIZE(hisi_common_section_fields), - }; -@@ -199,12 +225,20 @@ static const char* get_soc_desc(uint8_t soc_id) - return soc_desc[soc_id]; - } - --static void decode_module(struct hisi_event *event, uint8_t module_id) -+static void decode_module(struct ras_ns_ev_decoder *ev_decoder, -+ struct hisi_event *event, uint8_t module_id) - { -- if (module_id >= sizeof(module_name)/sizeof(char *)) -+ if (module_id >= sizeof(module_name)/sizeof(char *)) { - HISI_SNPRINTF(event->error_msg, "module=unknown(id=%hhu) ", module_id); -- else -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, -+ HISI_COMMON_FIELD_MODULE_ID, -+ 0, "unknown"); -+ } else { - HISI_SNPRINTF(event->error_msg, "module=%s ", module_name[module_id]); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, -+ HISI_COMMON_FIELD_MODULE_ID, -+ 0, module_name[module_id]); -+ } - } - - static void decode_hisi_common_section_hdr(struct ras_ns_ev_decoder *ev_decoder, -@@ -212,43 +246,93 @@ static void decode_hisi_common_section_hdr(struct ras_ns_ev_decoder *ev_decoder, - struct hisi_event *event) - { - HISI_SNPRINTF(event->error_msg, "[ table_version=%hhu", err->version); -- if (err->val_bits & BIT(HISI_COMMON_VALID_SOC_ID)) -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_VERSION, -+ err->version, NULL); -+ if (err->val_bits & BIT(HISI_COMMON_VALID_SOC_ID)) { - HISI_SNPRINTF(event->error_msg, "soc=%s", get_soc_desc(err->soc_id)); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_SOC_ID, -+ err->soc_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_SOCKET_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_SOCKET_ID)) { - HISI_SNPRINTF(event->error_msg, "socket_id=%hhu", err->socket_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_SOCKET_ID, -+ err->socket_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_TOTEM_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_TOTEM_ID)) { - HISI_SNPRINTF(event->error_msg, "totem_id=%hhu", err->totem_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_TOTEM_ID, -+ err->totem_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_NIMBUS_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_NIMBUS_ID)) { - HISI_SNPRINTF(event->error_msg, "nimbus_id=%hhu", err->nimbus_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_NIMBUS_ID, -+ err->nimbus_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_SUBSYSTEM_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_SUBSYSTEM_ID)) { - HISI_SNPRINTF(event->error_msg, "subsystem_id=%hhu", err->subsystem_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_SUB_SYSTEM_ID, -+ err->subsystem_id, NULL); -+ } - - if (err->val_bits & BIT(HISI_COMMON_VALID_MODULE_ID)) -- decode_module(event, err->module_id); -+ decode_module(ev_decoder, event, err->module_id); - -- if (err->val_bits & BIT(HISI_COMMON_VALID_SUBMODULE_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_SUBMODULE_ID)) { - HISI_SNPRINTF(event->error_msg, "submodule_id=%hhu", err->submodule_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_SUB_MODULE_ID, -+ err->submodule_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_CORE_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_CORE_ID)) { - HISI_SNPRINTF(event->error_msg, "core_id=%hhu", err->core_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_CORE_ID, -+ err->core_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_PORT_ID)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_PORT_ID)) { - HISI_SNPRINTF(event->error_msg, "port_id=%hhu", err->port_id); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_PORT_ID, -+ err->port_id, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_ERR_TYPE)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_ERR_TYPE)) { - HISI_SNPRINTF(event->error_msg, "err_type=%hu", err->err_type); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_INT, -+ HISI_COMMON_FIELD_ERR_TYPE, -+ err->err_type, NULL); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_PCIE_INFO)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_PCIE_INFO)) { - HISI_SNPRINTF(event->error_msg, "pcie_device_id=%04x:%02x:%02x.%x", - err->pcie_info.segment, err->pcie_info.bus, - err->pcie_info.device, err->pcie_info.function); -+ HISI_SNPRINTF(event->pcie_info, "%04x:%02x:%02x.%x", -+ err->pcie_info.segment, err->pcie_info.bus, -+ err->pcie_info.device, err->pcie_info.function); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, -+ HISI_COMMON_FIELD_PCIE_INFO, -+ 0, event->pcie_info); -+ } - -- if (err->val_bits & BIT(HISI_COMMON_VALID_ERR_SEVERITY)) -+ if (err->val_bits & BIT(HISI_COMMON_VALID_ERR_SEVERITY)) { - HISI_SNPRINTF(event->error_msg, "err_severity=%s", err_severity(err->err_severity)); -+ record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, -+ HISI_COMMON_FIELD_ERR_SEVERITY, -+ 0, err_severity(err->err_severity)); -+ } - - HISI_SNPRINTF(event->error_msg, "]"); - } -@@ -293,8 +377,6 @@ static int decode_hisi_common_section(struct ras_events *ras, - record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, - HISI_COMMON_FIELD_TIMESTAMP, - 0, event->timestamp); -- record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, -- HISI_COMMON_FIELD_ERR_INFO, 0, hevent.error_msg); - record_vendor_data(ev_decoder, HISI_OEM_DATA_TYPE_TEXT, - HISI_COMMON_FIELD_REGS_DUMP, 0, hevent.reg_msg); - step_vendor_data_tab(ev_decoder, "hisi_common_section_tab"); --- -2.25.1 - diff --git a/0004-rasdaemon-Add-four-modules-supported-by-HiSilicon-co.patch b/0004-rasdaemon-Add-four-modules-supported-by-HiSilicon-co.patch deleted file mode 100644 index e1c86b4..0000000 --- a/0004-rasdaemon-Add-four-modules-supported-by-HiSilicon-co.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c46f65e1315aab8585e24d24223bd56c8931202a Mon Sep 17 00:00:00 2001 -From: Xiaofei Tan -Date: Mon, 31 Oct 2022 18:36:26 +0800 -Subject: [PATCH 4/4] rasdaemon: Add four modules supported by HiSilicon common - section - -Add four modules supported by HiSilicon common error section. - -Signed-off-by: Xiaofei Tan -Signed-off-by: Shiju Jose -Signed-off-by: Mauro Carvalho Chehab ---- - non-standard-hisilicon.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c -index 0ddb5ec..7296d28 100644 ---- a/non-standard-hisilicon.c -+++ b/non-standard-hisilicon.c -@@ -214,7 +214,11 @@ static const char* module_name[] = { - "Tsensor", - "ROH", - "BTC", -- "HILINK" -+ "HILINK", -+ "STARS", -+ "SDMA", -+ "UC", -+ "HBMC", - }; - - static const char* get_soc_desc(uint8_t soc_id) --- -2.25.1 - diff --git a/0004-rasdaemon-ras-mc-ctl-Modify-error-statistics-for-HiS.patch b/0004-rasdaemon-ras-mc-ctl-Modify-error-statistics-for-HiS.patch deleted file mode 100644 index 8963d91..0000000 --- a/0004-rasdaemon-ras-mc-ctl-Modify-error-statistics-for-HiS.patch +++ /dev/null @@ -1,97 +0,0 @@ -From 4f706ff3b1a04de3be506a309e153b99e04b3445 Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Thu, 24 Feb 2022 18:02:14 +0000 -Subject: [PATCH 04/10] rasdaemon: ras-mc-ctl: Modify error statistics for - HiSilicon KunPeng9xx common errors - -Modify the error statistics for the HiSilicon KunPeng9xx platforms common errors -to display the statistics and error info based on the module and the error severity. - -Signed-off-by: Shiju Jose ---- - util/ras-mc-ctl.in | 40 +++++++++++++++++++++++++++++----------- - 1 file changed, 29 insertions(+), 11 deletions(-) - -diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in -index b22dd60..08eb287 100755 ---- a/util/ras-mc-ctl.in -+++ b/util/ras-mc-ctl.in -@@ -1537,7 +1537,7 @@ sub vendor_errors_summary - require DBI; - my ($num_args, $platform_id); - my ($query, $query_handle, $count, $out); -- my ($module_id, $sub_module_id, $err_severity, $err_sev, $err_info); -+ my ($module_id, $sub_module_id, $err_severity, $err_sev); - - $num_args = $#ARGV + 1; - $platform_id = 0; -@@ -1614,13 +1614,18 @@ sub vendor_errors_summary - - # HiSilicon Kunpeng9xx common errors - if ($platform_id eq HISILICON_KUNPENG_9XX) { -- $query = "select err_info, count(*) from hisi_common_section"; -+ $query = "select err_severity, module_id, count(*) from hisi_common_section_v2 group by err_severity, module_id"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); -- $query_handle->bind_columns(\($err_info, $count)); -+ $query_handle->bind_columns(\($err_severity, $module_id, $count)); - $out = ""; -+ $err_sev = ""; - while($query_handle->fetch()) { -- $out .= "\terrors: $count\n"; -+ if ($err_severity ne $err_sev) { -+ $out .= "$err_severity errors:\n"; -+ $err_sev = $err_severity; -+ } -+ $out .= "\t$module_id: $count\n"; - } - if ($out ne "") { - print "HiSilicon Kunpeng9xx common error events summary:\n$out\n"; -@@ -1638,8 +1643,8 @@ sub vendor_errors - require DBI; - my ($num_args, $platform_id); - my ($query, $query_handle, $id, $timestamp, $out); -- my ($version, $soc_id, $socket_id, $nimbus_id, $core_id, $port_id); -- my ($module_id, $sub_module_id, $err_severity, $err_type, $err_info, $regs); -+ my ($version, $soc_id, $socket_id, $totem_id, $nimbus_id, $sub_system_id, $core_id, $port_id); -+ my ($module_id, $sub_module_id, $err_severity, $err_type, $pcie_info, $regs); - - $num_args = $#ARGV + 1; - $platform_id = 0; -@@ -1727,15 +1732,28 @@ sub vendor_errors - - # HiSilicon Kunpeng9xx common errors - if ($platform_id eq HISILICON_KUNPENG_9XX) { -- $query = "select id, timestamp, err_info, regs_dump from hisi_common_section order by id"; -+ $query = "select id, timestamp, version, soc_id, socket_id, totem_id, nimbus_id, sub_system_id, module_id, sub_module_id, core_id, port_id, err_type, pcie_info, err_severity, regs_dump from hisi_common_section_v2 order by id, module_id, err_severity"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); -- $query_handle->bind_columns(\($id, $timestamp, $err_info, $regs)); -+ $query_handle->bind_columns(\($id, $timestamp, $version, $soc_id, $socket_id, $totem_id, $nimbus_id, $sub_system_id, $module_id, $sub_module_id, $core_id, $port_id, $err_type, $pcie_info, $err_severity, $regs)); - $out = ""; - while($query_handle->fetch()) { -- $out .= "$id. $timestamp "; -- $out .= "Error Info:$err_info \n" if ($err_info); -- $out .= "Error Registers: $regs\n\n" if ($regs); -+ $out .= "$id. $timestamp Error Info: "; -+ $out .= "version=$version, "; -+ $out .= "soc_id=$soc_id, " if ($soc_id); -+ $out .= "socket_id=$socket_id, " if ($socket_id); -+ $out .= "totem_id=$totem_id, " if ($totem_id); -+ $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -+ $out .= "sub_system_id=$sub_system_id, " if ($sub_system_id); -+ $out .= "module_id=$module_id, " if ($module_id); -+ $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -+ $out .= "core_id=$core_id, " if ($core_id); -+ $out .= "port_id=$port_id, " if ($port_id); -+ $out .= "err_type=$err_type, " if ($err_type); -+ $out .= "pcie_info=$pcie_info, " if ($pcie_info); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "Error Registers: $regs" if ($regs); -+ $out .= "\n\n"; - } - if ($out ne "") { - print "HiSilicon Kunpeng9xx common error events:\n$out\n"; --- -2.25.1 - diff --git a/0005-rasdaemon-ras-mc-ctl-Reformat-error-info-of-the-HiSi.patch b/0005-rasdaemon-ras-mc-ctl-Reformat-error-info-of-the-HiSi.patch deleted file mode 100644 index 2ff9537..0000000 --- a/0005-rasdaemon-ras-mc-ctl-Reformat-error-info-of-the-HiSi.patch +++ /dev/null @@ -1,56 +0,0 @@ -From f5c3c03039be28bb6b5bbe00e12e9586b19a1060 Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Sat, 5 Mar 2022 16:18:55 +0000 -Subject: [PATCH 05/10] rasdaemon: ras-mc-ctl: Reformat error info of the - HiSilicon Kunpeng920 - -Reformat the code to display the error info of HiSilicon Kunpeng920. - -Signed-off-by: Shiju Jose ---- - util/ras-mc-ctl.in | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in -index 08eb287..8755b6f 100755 ---- a/util/ras-mc-ctl.in -+++ b/util/ras-mc-ctl.in -@@ -1671,8 +1671,9 @@ sub vendor_errors - $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); - $out .= "module_id=$module_id, " if ($module_id); - $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -- $out .= "err_severity=$err_severity, \n" if ($err_severity); -- $out .= "Error Registers: $regs\n\n" if ($regs); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "Error Registers: $regs " if ($regs); -+ $out .= "\n\n"; - } - if ($out ne "") { - print "HiSilicon Kunpeng920 OEM type1 error events:\n$out\n"; -@@ -1694,8 +1695,9 @@ sub vendor_errors - $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); - $out .= "module_id=$module_id, " if ($module_id); - $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -- $out .= "err_severity=$err_severity, \n" if ($err_severity); -- $out .= "Error Registers: $regs\n\n" if ($regs); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "Error Registers: $regs " if ($regs); -+ $out .= "\n\n"; - } - if ($out ne "") { - print "HiSilicon Kunpeng920 OEM type2 error events:\n$out\n"; -@@ -1719,8 +1721,9 @@ sub vendor_errors - $out .= "core_id=$core_id, " if ($core_id); - $out .= "port_id=$port_id, " if ($port_id); - $out .= "err_severity=$err_severity, " if ($err_severity); -- $out .= "err_type=$err_type, \n" if ($err_type); -- $out .= "Error Registers: $regs\n\n" if ($regs); -+ $out .= "err_type=$err_type, " if ($err_type); -+ $out .= "Error Registers: $regs " if ($regs); -+ $out .= "\n\n"; - } - if ($out ne "") { - print "HiSilicon Kunpeng920 PCIe controller error events:\n$out\n"; --- -2.25.1 - diff --git a/0006-rasdaemon-ras-mc-ctl-Add-printing-usage-if-necessary.patch b/0006-rasdaemon-ras-mc-ctl-Add-printing-usage-if-necessary.patch deleted file mode 100644 index 1ff38e3..0000000 --- a/0006-rasdaemon-ras-mc-ctl-Add-printing-usage-if-necessary.patch +++ /dev/null @@ -1,37 +0,0 @@ -From d595a9d61f9d8341a5e30d4d800e3237d6e0f390 Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Sat, 5 Mar 2022 17:01:35 +0000 -Subject: [PATCH 06/10] rasdaemon: ras-mc-ctl: Add printing usage if necessary - parameters are not passed for the vendor-error options - -Add printing usage if necessary parameters are not passed -for the vendor-errors options. - -Signed-off-by: Shiju Jose ---- - util/ras-mc-ctl.in | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in -index 8755b6f..959ea6b 100755 ---- a/util/ras-mc-ctl.in -+++ b/util/ras-mc-ctl.in -@@ -1544,6 +1544,7 @@ sub vendor_errors_summary - if ($num_args ne 0) { - $platform_id = $ARGV[0]; - } else { -+ usage(1); - return; - } - -@@ -1651,6 +1652,7 @@ sub vendor_errors - if ($num_args ne 0) { - $platform_id = $ARGV[0]; - } else { -+ usage(1); - return; - } - --- -2.25.1 - diff --git a/0007-rasdaemon-ras-mc-ctl-Add-support-to-display-the-HiSi.patch b/0007-rasdaemon-ras-mc-ctl-Add-support-to-display-the-HiSi.patch deleted file mode 100644 index 6af2ad0..0000000 --- a/0007-rasdaemon-ras-mc-ctl-Add-support-to-display-the-HiSi.patch +++ /dev/null @@ -1,274 +0,0 @@ -From 0643011831e5fb4e81edff16ad55f9a5196ec7a9 Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Sat, 5 Mar 2022 18:19:38 +0000 -Subject: [PATCH 07/10] rasdaemon: ras-mc-ctl: Add support to display the - HiSilicon vendor errors for a specified module - -Add support to display the HiSilicon vendor errors for a specified module. - -Signed-off-by: Shiju Jose ---- - util/ras-mc-ctl.in | 145 +++++++++++++++++++++++++++------------------ - 1 file changed, 87 insertions(+), 58 deletions(-) - -diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in -index 959ea6b..296eb87 100755 ---- a/util/ras-mc-ctl.in -+++ b/util/ras-mc-ctl.in -@@ -96,8 +96,9 @@ Usage: $prog [OPTIONS...] - --errors Shows the errors stored at the error database. - --error-count Shows the corrected and uncorrected error counts using sysfs. - --vendor-errors-summary Presents a summary of the vendor-specific logged errors. -- --vendor-errors Shows the vendor-specific errors stored in the error database. -- --vendor-platforms Shows the supported platforms with platform-ids for the vendor-specific errors. -+ --vendor-errors Shows the vendor-specific errors stored in the error database. -+ --vendor-errors Shows the vendor-specific errors for a specific module stored in the error database. -+ --vendor-platforms List the supported platforms with platform-ids for the vendor-specific errors. - --help This help message. - EOF - -@@ -1535,12 +1536,14 @@ use constant { - sub vendor_errors_summary - { - require DBI; -- my ($num_args, $platform_id); -+ my ($num_args, $platform_id, $found_platform); - my ($query, $query_handle, $count, $out); - my ($module_id, $sub_module_id, $err_severity, $err_sev); - - $num_args = $#ARGV + 1; - $platform_id = 0; -+ $found_platform = 0; -+ - if ($num_args ne 0) { - $platform_id = $ARGV[0]; - } else { -@@ -1552,6 +1555,7 @@ sub vendor_errors_summary - - # HiSilicon Kunpeng920 errors - if ($platform_id eq HISILICON_KUNPENG_920) { -+ $found_platform = 1; - $query = "select err_severity, module_id, count(*) from hip08_oem_type1_event_v2 group by err_severity, module_id"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); -@@ -1615,6 +1619,7 @@ sub vendor_errors_summary - - # HiSilicon Kunpeng9xx common errors - if ($platform_id eq HISILICON_KUNPENG_9XX) { -+ $found_platform = 1; - $query = "select err_severity, module_id, count(*) from hisi_common_section_v2 group by err_severity, module_id"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); -@@ -1636,21 +1641,31 @@ sub vendor_errors_summary - $query_handle->finish; - } - -+ if ($platform_id && !($found_platform)) { -+ print "Platform ID $platform_id is not valid\n"; -+ } -+ - undef($dbh); - } - - sub vendor_errors - { - require DBI; -- my ($num_args, $platform_id); -+ my ($num_args, $platform_id, $found_platform, $module, $found_module); - my ($query, $query_handle, $id, $timestamp, $out); - my ($version, $soc_id, $socket_id, $totem_id, $nimbus_id, $sub_system_id, $core_id, $port_id); - my ($module_id, $sub_module_id, $err_severity, $err_type, $pcie_info, $regs); - - $num_args = $#ARGV + 1; - $platform_id = 0; -+ $found_platform = 0; -+ $module = 0; -+ $found_module = 0; - if ($num_args ne 0) { - $platform_id = $ARGV[0]; -+ if ($num_args gt 1) { -+ $module = $ARGV[1]; -+ } - } else { - usage(1); - return; -@@ -1660,27 +1675,29 @@ sub vendor_errors - - # HiSilicon Kunpeng920 errors - if ($platform_id eq HISILICON_KUNPENG_920) { -+ $found_platform = 1; - $query = "select id, timestamp, version, soc_id, socket_id, nimbus_id, module_id, sub_module_id, err_severity, regs_dump from hip08_oem_type1_event_v2 order by id, module_id, err_severity"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); - $query_handle->bind_columns(\($id, $timestamp, $version, $soc_id, $socket_id, $nimbus_id, $module_id, $sub_module_id, $err_severity, $regs)); - $out = ""; - while($query_handle->fetch()) { -- $out .= "$id. $timestamp Error Info: "; -- $out .= "version=$version, "; -- $out .= "soc_id=$soc_id, " if ($soc_id); -- $out .= "socket_id=$socket_id, " if ($socket_id); -- $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -- $out .= "module_id=$module_id, " if ($module_id); -- $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -- $out .= "err_severity=$err_severity, " if ($err_severity); -- $out .= "Error Registers: $regs " if ($regs); -- $out .= "\n\n"; -+ if ($module eq 0 || ($module_id && uc($module) eq uc($module_id))) { -+ $out .= "$id. $timestamp Error Info: "; -+ $out .= "version=$version, "; -+ $out .= "soc_id=$soc_id, " if ($soc_id); -+ $out .= "socket_id=$socket_id, " if ($socket_id); -+ $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -+ $out .= "module_id=$module_id, " if ($module_id); -+ $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "Error Registers: $regs " if ($regs); -+ $out .= "\n\n"; -+ $found_module = 1; -+ } - } - if ($out ne "") { - print "HiSilicon Kunpeng920 OEM type1 error events:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng920 OEM type1 errors.\n"; - } - $query_handle->finish; - -@@ -1690,21 +1707,22 @@ sub vendor_errors - $query_handle->bind_columns(\($id, $timestamp, $version, $soc_id, $socket_id, $nimbus_id, $module_id, $sub_module_id, $err_severity, $regs)); - $out = ""; - while($query_handle->fetch()) { -- $out .= "$id. $timestamp Error Info: "; -- $out .= "version=$version, "; -- $out .= "soc_id=$soc_id, " if ($soc_id); -- $out .= "socket_id=$socket_id, " if ($socket_id); -- $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -- $out .= "module_id=$module_id, " if ($module_id); -- $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -- $out .= "err_severity=$err_severity, " if ($err_severity); -- $out .= "Error Registers: $regs " if ($regs); -- $out .= "\n\n"; -+ if ($module eq 0 || ($module_id && uc($module) eq uc($module_id))) { -+ $out .= "$id. $timestamp Error Info: "; -+ $out .= "version=$version, "; -+ $out .= "soc_id=$soc_id, " if ($soc_id); -+ $out .= "socket_id=$socket_id, " if ($socket_id); -+ $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -+ $out .= "module_id=$module_id, " if ($module_id); -+ $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "Error Registers: $regs " if ($regs); -+ $out .= "\n\n"; -+ $found_module = 1; -+ } - } - if ($out ne "") { - print "HiSilicon Kunpeng920 OEM type2 error events:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng920 OEM type2 errors.\n"; - } - $query_handle->finish; - -@@ -1714,51 +1732,56 @@ sub vendor_errors - $query_handle->bind_columns(\($id, $timestamp, $version, $soc_id, $socket_id, $nimbus_id, $sub_module_id, $core_id, $port_id, $err_severity, $err_type, $regs)); - $out = ""; - while($query_handle->fetch()) { -- $out .= "$id. $timestamp Error Info: "; -- $out .= "version=$version, "; -- $out .= "soc_id=$soc_id, " if ($soc_id); -- $out .= "socket_id=$socket_id, " if ($socket_id); -- $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -- $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -- $out .= "core_id=$core_id, " if ($core_id); -- $out .= "port_id=$port_id, " if ($port_id); -- $out .= "err_severity=$err_severity, " if ($err_severity); -- $out .= "err_type=$err_type, " if ($err_type); -- $out .= "Error Registers: $regs " if ($regs); -- $out .= "\n\n"; -+ if ($module eq 0 || ($sub_module_id && uc($module) eq uc($sub_module_id))) { -+ $out .= "$id. $timestamp Error Info: "; -+ $out .= "version=$version, "; -+ $out .= "soc_id=$soc_id, " if ($soc_id); -+ $out .= "socket_id=$socket_id, " if ($socket_id); -+ $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -+ $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -+ $out .= "core_id=$core_id, " if ($core_id); -+ $out .= "port_id=$port_id, " if ($port_id); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "err_type=$err_type, " if ($err_type); -+ $out .= "Error Registers: $regs " if ($regs); -+ $out .= "\n\n"; -+ $found_module = 1; -+ } - } - if ($out ne "") { - print "HiSilicon Kunpeng920 PCIe controller error events:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng920 PCIe controller errors.\n"; - } - $query_handle->finish; - } - - # HiSilicon Kunpeng9xx common errors - if ($platform_id eq HISILICON_KUNPENG_9XX) { -+ $found_platform = 1; - $query = "select id, timestamp, version, soc_id, socket_id, totem_id, nimbus_id, sub_system_id, module_id, sub_module_id, core_id, port_id, err_type, pcie_info, err_severity, regs_dump from hisi_common_section_v2 order by id, module_id, err_severity"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); - $query_handle->bind_columns(\($id, $timestamp, $version, $soc_id, $socket_id, $totem_id, $nimbus_id, $sub_system_id, $module_id, $sub_module_id, $core_id, $port_id, $err_type, $pcie_info, $err_severity, $regs)); - $out = ""; - while($query_handle->fetch()) { -- $out .= "$id. $timestamp Error Info: "; -- $out .= "version=$version, "; -- $out .= "soc_id=$soc_id, " if ($soc_id); -- $out .= "socket_id=$socket_id, " if ($socket_id); -- $out .= "totem_id=$totem_id, " if ($totem_id); -- $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -- $out .= "sub_system_id=$sub_system_id, " if ($sub_system_id); -- $out .= "module_id=$module_id, " if ($module_id); -- $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -- $out .= "core_id=$core_id, " if ($core_id); -- $out .= "port_id=$port_id, " if ($port_id); -- $out .= "err_type=$err_type, " if ($err_type); -- $out .= "pcie_info=$pcie_info, " if ($pcie_info); -- $out .= "err_severity=$err_severity, " if ($err_severity); -- $out .= "Error Registers: $regs" if ($regs); -- $out .= "\n\n"; -+ if ($module eq 0 || ($module_id && uc($module) eq uc($module_id))) { -+ $out .= "$id. $timestamp Error Info: "; -+ $out .= "version=$version, "; -+ $out .= "soc_id=$soc_id, " if ($soc_id); -+ $out .= "socket_id=$socket_id, " if ($socket_id); -+ $out .= "totem_id=$totem_id, " if ($totem_id); -+ $out .= "nimbus_id=$nimbus_id, " if ($nimbus_id); -+ $out .= "sub_system_id=$sub_system_id, " if ($sub_system_id); -+ $out .= "module_id=$module_id, " if ($module_id); -+ $out .= "sub_module_id=$sub_module_id, " if ($sub_module_id); -+ $out .= "core_id=$core_id, " if ($core_id); -+ $out .= "port_id=$port_id, " if ($port_id); -+ $out .= "err_type=$err_type, " if ($err_type); -+ $out .= "pcie_info=$pcie_info, " if ($pcie_info); -+ $out .= "err_severity=$err_severity, " if ($err_severity); -+ $out .= "Error Registers: $regs" if ($regs); -+ $out .= "\n\n"; -+ $found_module = 1; -+ } - } - if ($out ne "") { - print "HiSilicon Kunpeng9xx common error events:\n$out\n"; -@@ -1768,6 +1791,12 @@ sub vendor_errors - $query_handle->finish; - } - -+ if ($platform_id && !($found_platform)) { -+ print "Platform ID $platform_id is not valid\n"; -+ } elsif ($module && !($found_module)) { -+ print "No error record for the module $module\n"; -+ } -+ - undef($dbh); - } - --- -2.25.1 - diff --git a/0008-rasdaemon-ras-mc-ctl-Relocate-reading-and-display-Ku.patch b/0008-rasdaemon-ras-mc-ctl-Relocate-reading-and-display-Ku.patch deleted file mode 100644 index 0453e04..0000000 --- a/0008-rasdaemon-ras-mc-ctl-Relocate-reading-and-display-Ku.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 2f23b5dc6e5831c8ef2e179bb936e13502f75041 Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Mon, 7 Mar 2022 12:38:45 +0000 -Subject: [PATCH 08/10] rasdaemon: ras-mc-ctl: Relocate reading and display - Kunpeng920 errors to under Kunpeng9xx - -Relocate reading and display Kunpeng920 errors to under Kunpeng9xx. - -Signed-off-by: Shiju Jose ---- - util/ras-mc-ctl.in | 40 ++++++++++------------------------------ - 1 file changed, 10 insertions(+), 30 deletions(-) - -diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in -index 296eb87..75981a0 100755 ---- a/util/ras-mc-ctl.in -+++ b/util/ras-mc-ctl.in -@@ -1529,7 +1529,6 @@ sub errors - - # Definitions of the vendor platform IDs. - use constant { -- HISILICON_KUNPENG_920 => "Kunpeng920", - HISILICON_KUNPENG_9XX => "Kunpeng9xx", - }; - -@@ -1553,8 +1552,8 @@ sub vendor_errors_summary - - my $dbh = DBI->connect("dbi:SQLite:dbname=$dbname", "", "", {}); - -- # HiSilicon Kunpeng920 errors -- if ($platform_id eq HISILICON_KUNPENG_920) { -+ # HiSilicon Kunpeng9xx errors -+ if ($platform_id eq HISILICON_KUNPENG_9XX) { - $found_platform = 1; - $query = "select err_severity, module_id, count(*) from hip08_oem_type1_event_v2 group by err_severity, module_id"; - $query_handle = $dbh->prepare($query); -@@ -1570,9 +1569,7 @@ sub vendor_errors_summary - $out .= "\t$module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng920 OEM type1 error events summary:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng920 OEM type1 errors.\n\n"; -+ print "HiSilicon Kunpeng9xx OEM type1 error events summary:\n$out\n"; - } - $query_handle->finish; - -@@ -1590,9 +1587,7 @@ sub vendor_errors_summary - $out .= "\t$module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng920 OEM type2 error events summary:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng920 OEM type2 errors.\n\n"; -+ print "HiSilicon Kunpeng9xx OEM type2 error events summary:\n$out\n"; - } - $query_handle->finish; - -@@ -1610,16 +1605,10 @@ sub vendor_errors_summary - $out .= "\t$sub_module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng920 PCIe controller error events summary:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng920 PCIe controller errors.\n\n"; -+ print "HiSilicon Kunpeng9xx PCIe controller error events summary:\n$out\n"; - } - $query_handle->finish; -- } - -- # HiSilicon Kunpeng9xx common errors -- if ($platform_id eq HISILICON_KUNPENG_9XX) { -- $found_platform = 1; - $query = "select err_severity, module_id, count(*) from hisi_common_section_v2 group by err_severity, module_id"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); -@@ -1635,8 +1624,6 @@ sub vendor_errors_summary - } - if ($out ne "") { - print "HiSilicon Kunpeng9xx common error events summary:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng9xx common errors.\n\n"; - } - $query_handle->finish; - } -@@ -1673,8 +1660,8 @@ sub vendor_errors - - my $dbh = DBI->connect("dbi:SQLite:dbname=$dbname", "", "", {}); - -- # HiSilicon Kunpeng920 errors -- if ($platform_id eq HISILICON_KUNPENG_920) { -+ # HiSilicon Kunpeng9xx errors -+ if ($platform_id eq HISILICON_KUNPENG_9XX) { - $found_platform = 1; - $query = "select id, timestamp, version, soc_id, socket_id, nimbus_id, module_id, sub_module_id, err_severity, regs_dump from hip08_oem_type1_event_v2 order by id, module_id, err_severity"; - $query_handle = $dbh->prepare($query); -@@ -1697,7 +1684,7 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng920 OEM type1 error events:\n$out\n"; -+ print "HiSilicon Kunpeng9xx OEM type1 error events:\n$out\n"; - } - $query_handle->finish; - -@@ -1722,7 +1709,7 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng920 OEM type2 error events:\n$out\n"; -+ print "HiSilicon Kunpeng9xx OEM type2 error events:\n$out\n"; - } - $query_handle->finish; - -@@ -1749,14 +1736,10 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng920 PCIe controller error events:\n$out\n"; -+ print "HiSilicon Kunpeng9xx PCIe controller error events:\n$out\n"; - } - $query_handle->finish; -- } - -- # HiSilicon Kunpeng9xx common errors -- if ($platform_id eq HISILICON_KUNPENG_9XX) { -- $found_platform = 1; - $query = "select id, timestamp, version, soc_id, socket_id, totem_id, nimbus_id, sub_system_id, module_id, sub_module_id, core_id, port_id, err_type, pcie_info, err_severity, regs_dump from hisi_common_section_v2 order by id, module_id, err_severity"; - $query_handle = $dbh->prepare($query); - $query_handle->execute(); -@@ -1785,8 +1768,6 @@ sub vendor_errors - } - if ($out ne "") { - print "HiSilicon Kunpeng9xx common error events:\n$out\n"; -- } else { -- print "No HiSilicon Kunpeng9xx common errors.\n"; - } - $query_handle->finish; - } -@@ -1803,7 +1784,6 @@ sub vendor_errors - sub vendor_platforms - { - print "\nSupported platforms for the vendor-specific errors:\n"; -- print "\tHiSilicon Kunpeng920, platform-id=\"", HISILICON_KUNPENG_920, "\"\n"; - print "\tHiSilicon Kunpeng9xx, platform-id=\"", HISILICON_KUNPENG_9XX, "\"\n"; - print "\n"; - } --- -2.25.1 - diff --git a/0009-rasdaemon-ras-mc-ctl-Updated-HiSilicon-platform-name.patch b/0009-rasdaemon-ras-mc-ctl-Updated-HiSilicon-platform-name.patch deleted file mode 100644 index e34f89f..0000000 --- a/0009-rasdaemon-ras-mc-ctl-Updated-HiSilicon-platform-name.patch +++ /dev/null @@ -1,127 +0,0 @@ -From df6011fed2bb45989f9e5c2ea30b33937b08d06c Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Thu, 28 Apr 2022 18:58:43 +0100 -Subject: [PATCH 09/10] rasdaemon: ras-mc-ctl: Updated HiSilicon platform name - -Updated the HiSilicon platform name as KunPeng9xx. - -Signed-off-by: Shiju Jose ---- - util/ras-mc-ctl.in | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in -index 75981a0..1cc19b3 100755 ---- a/util/ras-mc-ctl.in -+++ b/util/ras-mc-ctl.in -@@ -1529,7 +1529,7 @@ sub errors - - # Definitions of the vendor platform IDs. - use constant { -- HISILICON_KUNPENG_9XX => "Kunpeng9xx", -+ HISILICON_KUNPENG_9XX => "KunPeng9xx", - }; - - sub vendor_errors_summary -@@ -1552,7 +1552,7 @@ sub vendor_errors_summary - - my $dbh = DBI->connect("dbi:SQLite:dbname=$dbname", "", "", {}); - -- # HiSilicon Kunpeng9xx errors -+ # HiSilicon KunPeng9xx errors - if ($platform_id eq HISILICON_KUNPENG_9XX) { - $found_platform = 1; - $query = "select err_severity, module_id, count(*) from hip08_oem_type1_event_v2 group by err_severity, module_id"; -@@ -1569,7 +1569,7 @@ sub vendor_errors_summary - $out .= "\t$module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx OEM type1 error events summary:\n$out\n"; -+ print "HiSilicon KunPeng9xx OEM type1 error events summary:\n$out\n"; - } - $query_handle->finish; - -@@ -1587,7 +1587,7 @@ sub vendor_errors_summary - $out .= "\t$module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx OEM type2 error events summary:\n$out\n"; -+ print "HiSilicon KunPeng9xx OEM type2 error events summary:\n$out\n"; - } - $query_handle->finish; - -@@ -1605,7 +1605,7 @@ sub vendor_errors_summary - $out .= "\t$sub_module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx PCIe controller error events summary:\n$out\n"; -+ print "HiSilicon KunPeng9xx PCIe controller error events summary:\n$out\n"; - } - $query_handle->finish; - -@@ -1623,7 +1623,7 @@ sub vendor_errors_summary - $out .= "\t$module_id: $count\n"; - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx common error events summary:\n$out\n"; -+ print "HiSilicon KunPeng9xx common error events summary:\n$out\n"; - } - $query_handle->finish; - } -@@ -1660,7 +1660,7 @@ sub vendor_errors - - my $dbh = DBI->connect("dbi:SQLite:dbname=$dbname", "", "", {}); - -- # HiSilicon Kunpeng9xx errors -+ # HiSilicon KunPeng9xx errors - if ($platform_id eq HISILICON_KUNPENG_9XX) { - $found_platform = 1; - $query = "select id, timestamp, version, soc_id, socket_id, nimbus_id, module_id, sub_module_id, err_severity, regs_dump from hip08_oem_type1_event_v2 order by id, module_id, err_severity"; -@@ -1684,7 +1684,7 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx OEM type1 error events:\n$out\n"; -+ print "HiSilicon KunPeng9xx OEM type1 error events:\n$out\n"; - } - $query_handle->finish; - -@@ -1709,7 +1709,7 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx OEM type2 error events:\n$out\n"; -+ print "HiSilicon KunPeng9xx OEM type2 error events:\n$out\n"; - } - $query_handle->finish; - -@@ -1736,7 +1736,7 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx PCIe controller error events:\n$out\n"; -+ print "HiSilicon KunPeng9xx PCIe controller error events:\n$out\n"; - } - $query_handle->finish; - -@@ -1767,7 +1767,7 @@ sub vendor_errors - } - } - if ($out ne "") { -- print "HiSilicon Kunpeng9xx common error events:\n$out\n"; -+ print "HiSilicon KunPeng9xx common error events:\n$out\n"; - } - $query_handle->finish; - } -@@ -1784,7 +1784,7 @@ sub vendor_errors - sub vendor_platforms - { - print "\nSupported platforms for the vendor-specific errors:\n"; -- print "\tHiSilicon Kunpeng9xx, platform-id=\"", HISILICON_KUNPENG_9XX, "\"\n"; -+ print "\tHiSilicon KunPeng9xx, platform-id=\"", HISILICON_KUNPENG_9XX, "\"\n"; - print "\n"; - } - --- -2.25.1 - diff --git a/0010-rasdaemon-Fix-for-a-memory-out-of-bounds-issue-and-o.patch b/0010-rasdaemon-Fix-for-a-memory-out-of-bounds-issue-and-o.patch deleted file mode 100644 index 48a62cc..0000000 --- a/0010-rasdaemon-Fix-for-a-memory-out-of-bounds-issue-and-o.patch +++ /dev/null @@ -1,90 +0,0 @@ -From c019f2f82b7f224e95968037f2afc16f63cc1d1d Mon Sep 17 00:00:00 2001 -From: Shiju Jose -Date: Thu, 28 Apr 2022 22:59:04 +0100 -Subject: [PATCH 10/10] rasdaemon: Fix for a memory out-of-bounds issue and - optimized code to remove duplicate function. - -Fixed a memory out-of-bounds issue with string pointers and -optimized code structure to remove duplicate function. - -Signed-off-by: Lei Feng -Signed-off-by: Shiju Jose ---- - non-standard-hisi_hip08.c | 6 +++--- - non-standard-hisilicon.c | 2 +- - ras-non-standard-handler.c | 16 +--------------- - 3 files changed, 5 insertions(+), 19 deletions(-) - -diff --git a/non-standard-hisi_hip08.c b/non-standard-hisi_hip08.c -index 9092183..4ef47ea 100644 ---- a/non-standard-hisi_hip08.c -+++ b/non-standard-hisi_hip08.c -@@ -1014,15 +1014,15 @@ static int decode_hip08_pcie_local_error(struct ras_events *ras, - - static struct ras_ns_ev_decoder hip08_ns_ev_decoder[] = { - { -- .sec_type = "1f8161e155d641e6bd107afd1dc5f7c5", -+ .sec_type = "1f8161e1-55d6-41e6-bd10-7afd1dc5f7c5", - .decode = decode_hip08_oem_type1_error, - }, - { -- .sec_type = "45534ea6ce2341158535e07ab3aef91d", -+ .sec_type = "45534ea6-ce23-4115-8535-e07ab3aef91d", - .decode = decode_hip08_oem_type2_error, - }, - { -- .sec_type = "b2889fc9e7d74f9da867af42e98be772", -+ .sec_type = "b2889fc9-e7d7-4f9d-a867-af42e98be772", - .decode = decode_hip08_pcie_local_error, - }, - }; -diff --git a/non-standard-hisilicon.c b/non-standard-hisilicon.c -index d1e1774..6ee9271 100644 ---- a/non-standard-hisilicon.c -+++ b/non-standard-hisilicon.c -@@ -387,7 +387,7 @@ static int decode_hisi_common_section(struct ras_events *ras, - - static struct ras_ns_ev_decoder hisi_section_ns_ev_decoder[] = { - { -- .sec_type = "c8b328a899174af69a132e08ab2e7586", -+ .sec_type = "c8b328a8-9917-4af6-9a13-2e08ab2e7586", - .decode = decode_hisi_common_section, - }, - }; -diff --git a/ras-non-standard-handler.c b/ras-non-standard-handler.c -index 6d5a6f8..6932e58 100644 ---- a/ras-non-standard-handler.c -+++ b/ras-non-standard-handler.c -@@ -52,20 +52,6 @@ static char *uuid_le(const char *uu) - return uuid; - } - --static int uuid_le_cmp(const char *sec_type, const char *uuid2) --{ -- static char uuid1[32]; -- char *p = uuid1; -- int i; -- static const unsigned char le[16] = { -- 3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15}; -- -- for (i = 0; i < 16; i++) -- p += sprintf(p, "%.2x", (unsigned char) sec_type[le[i]]); -- *p = 0; -- return strncmp(uuid1, uuid2, 32); --} -- - int register_ns_ev_decoder(struct ras_ns_ev_decoder *ns_ev_decoder) - { - struct ras_ns_ev_decoder *list; -@@ -96,7 +82,7 @@ static int find_ns_ev_decoder(const char *sec_type, struct ras_ns_ev_decoder **p - - ns_ev_decoder = ras_ns_ev_dec_list; - while (ns_ev_decoder) { -- if (uuid_le_cmp(sec_type, ns_ev_decoder->sec_type) == 0) { -+ if (strcmp(uuid_le(sec_type), ns_ev_decoder->sec_type) == 0) { - *p_ns_ev_dec = ns_ev_decoder; - match = 1; - break; --- -2.25.1 - diff --git a/backport-rasdaemon-diskerror-fix-incomplete-diskerror-log.patch b/backport-rasdaemon-diskerror-fix-incomplete-diskerror-log.patch index da344f3..14d9405 100644 --- a/backport-rasdaemon-diskerror-fix-incomplete-diskerror-log.patch +++ b/backport-rasdaemon-diskerror-fix-incomplete-diskerror-log.patch @@ -13,7 +13,7 @@ Fix incomplete diskerror log just like block_rq_complete tracepoint output forma 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ras-diskerror-handler.c b/ras-diskerror-handler.c -index b46f859..07805f7 100644 +index 638cb4d..82e8ec0 100644 --- a/ras-diskerror-handler.c +++ b/ras-diskerror-handler.c @@ -97,26 +97,32 @@ int ras_diskerror_event_handler(struct trace_seq *s, @@ -22,35 +22,35 @@ index b46f859..07805f7 100644 return -1; + trace_seq_printf(s, "%s ", ev.dev); + -+ ev.rwbs = pevent_get_field_raw(s, event, "rwbs", record, &len, 1); ++ ev.rwbs = tep_get_field_raw(s, event, "rwbs", record, &len, 1); + if (!ev.rwbs) + return -1; + trace_seq_printf(s, "%s ", ev.rwbs); + -+ ev.cmd = pevent_get_field_raw(s, event, "cmd", record, &len, 1); ++ ev.cmd = tep_get_field_raw(s, event, "cmd", record, &len, 1); + if (!ev.cmd) + return -1; + trace_seq_printf(s, "(%s) ", ev.cmd); - if (pevent_get_field_val(s, event, "sector", record, &val, 1) < 0) + if (tep_get_field_val(s, event, "sector", record, &val, 1) < 0) return -1; ev.sector = val; + trace_seq_printf(s, "%llu ", ev.sector); - if (pevent_get_field_val(s, event, "nr_sector", record, &val, 1) < 0) + if (tep_get_field_val(s, event, "nr_sector", record, &val, 1) < 0) return -1; ev.nr_sector = (unsigned int)val; + trace_seq_printf(s, "+ %u ", ev.nr_sector); - if (pevent_get_field_val(s, event, "error", record, &val, 1) < 0) + if (tep_get_field_val(s, event, "error", record, &val, 1) < 0) return -1; ev.error = get_blk_error((int)val); - -- ev.rwbs = pevent_get_field_raw(s, event, "rwbs", record, &len, 1); +- ev.rwbs = tep_get_field_raw(s, event, "rwbs", record, &len, 1); - if (!ev.rwbs) - return -1; - -- ev.cmd = pevent_get_field_raw(s, event, "cmd", record, &len, 1); +- ev.cmd = tep_get_field_raw(s, event, "cmd", record, &len, 1); - if (!ev.cmd) - return -1; + trace_seq_printf(s, "[%s]", ev.error); @@ -58,5 +58,5 @@ index b46f859..07805f7 100644 /* Insert data into the SGBD */ #ifdef HAVE_SQLITE3 -- -2.35.3 +2.30.3 diff --git a/backport-rasdaemon-ras-memory-failure-handler-handle-localtim.patch b/backport-rasdaemon-ras-memory-failure-handler-handle-localtim.patch deleted file mode 100644 index ed749fe..0000000 --- a/backport-rasdaemon-ras-memory-failure-handler-handle-localtim.patch +++ /dev/null @@ -1,34 +0,0 @@ -From ce33041e0abfa20054ff5d6874ffbd1ab592558d Mon Sep 17 00:00:00 2001 -From: Aristeu Rozanski -Date: Thu, 19 Jan 2023 08:45:57 -0500 -Subject: [PATCH] rasdaemon: ras-memory-failure-handler: handle localtime() - failure correctly - -We could just have an empty string but keeping the format could prevent -issues if someone is actually parsing this. -Found with covscan. - -v2: fixed the timestamp as pointed by Robert Elliott - -Signed-off-by: Aristeu Rozanski -Signed-off-by: Mauro Carvalho Chehab ---- - ras-memory-failure-handler.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/ras-memory-failure-handler.c b/ras-memory-failure-handler.c -index 9941e68..1951456 100644 ---- a/ras-memory-failure-handler.c -+++ b/ras-memory-failure-handler.c -@@ -148,6 +148,8 @@ int ras_memory_failure_event_handler(struct trace_seq *s, - if (tm) - strftime(ev.timestamp, sizeof(ev.timestamp), - "%Y-%m-%d %H:%M:%S %z", tm); -+ else -+ strncpy(ev.timestamp, "1970-01-01 00:00:00 +0000", sizeof(ev.timestamp)); - trace_seq_printf(s, "%s ", ev.timestamp); - - if (pevent_get_field_val(s, event, "pfn", record, &val, 1) < 0) --- -2.27.0 - diff --git a/backport-rasdaemon-ras-report-fix-possible-but-unlikely-file-.patch b/backport-rasdaemon-ras-report-fix-possible-but-unlikely-file-.patch deleted file mode 100644 index 4c7953c..0000000 --- a/backport-rasdaemon-ras-report-fix-possible-but-unlikely-file-.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 899fcc2cf21c86b5462c8f4441cd9c92b3d75f7d Mon Sep 17 00:00:00 2001 -From: Aristeu Rozanski -Date: Thu, 19 Jan 2023 08:45:57 -0500 -Subject: [PATCH] rasdaemon: ras-report: fix possible but unlikely file - descriptor leak - -Found with covscan. - -Signed-off-by: Aristeu Rozanski -Signed-off-by: Mauro Carvalho Chehab ---- - ras-report.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/ras-report.c b/ras-report.c -index ea3a9b6..62d5eb7 100644 ---- a/ras-report.c -+++ b/ras-report.c -@@ -434,7 +434,7 @@ int ras_report_mc_event(struct ras_events *ras, struct ras_mc_event *ev){ - - mc_fail: - -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -484,7 +484,7 @@ int ras_report_aer_event(struct ras_events *ras, struct ras_aer_event *ev){ - - aer_fail: - -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -533,7 +533,7 @@ int ras_report_non_standard_event(struct ras_events *ras, struct ras_non_standar - - non_standard_fail: - -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -578,7 +578,7 @@ int ras_report_arm_event(struct ras_events *ras, struct ras_arm_event *ev){ - - arm_fail: - -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -624,7 +624,7 @@ int ras_report_mce_event(struct ras_events *ras, struct mce_event *ev){ - - mce_fail: - -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -674,7 +674,7 @@ int ras_report_devlink_event(struct ras_events *ras, struct devlink_event *ev){ - - devlink_fail: - -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -723,7 +723,7 @@ int ras_report_diskerror_event(struct ras_events *ras, struct diskerror_event *e - done = 1; - - diskerror_fail: -- if(sockfd > 0){ -+ if(sockfd >= 0){ - close(sockfd); - } - -@@ -768,7 +768,7 @@ int ras_report_mf_event(struct ras_events *ras, struct ras_mf_event *ev) - done = 1; - - mf_fail: -- if (sockfd > 0) -+ if (sockfd >= 0) - close(sockfd); - - if (done) --- -2.27.0 - diff --git a/backport-traceevent-Add-proper-KBUFFER_TYPE_TIME_STAMP-handling.patch b/backport-traceevent-Add-proper-KBUFFER_TYPE_TIME_STAMP-handling.patch deleted file mode 100644 index bbb5e00..0000000 --- a/backport-traceevent-Add-proper-KBUFFER_TYPE_TIME_STAMP-handling.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 2cf6aa4bfa3b2e7efbc15741d2c0327651082223 Mon Sep 17 00:00:00 2001 -From: Tom Zanussi -Date: Thu, 2 Jul 2020 14:53:46 -0400 -Subject: tools lib traceevent: Add proper KBUFFER_TYPE_TIME_STAMP handling - -Kernel commit dc4e2801d400 (ring-buffer: Redefine the unimplemented -RINGBUF_TYPE_TIME_STAMP) changed the way the ring buffer timestamps work -- after that commit the previously unimplemented RINGBUF_TYPE_TIME_STAMP -type causes the time delta to be used as a timestamp rather than a delta -to be added to the timestamp. - -The trace-cmd code didn't get updated to handle this, so misinterprets -the event data for this case, which causes a cascade of errors, -including trace-report not being able to identify synthetic (or any -other) events generated by the histogram code (which uses TIME_STAMP -mode). For example, the following triggers along with the trace-cmd -shown cause an UNKNOWN_EVENT error and trace-cmd report crash: - - # echo 'wakeup_latency u64 lat pid_t pid char comm[16]' > /sys/kernel/debug/tracing/synthetic_events - - # echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="ping"' > /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger - # echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmatch(sched.sched_wakeup).trace(wakeup_latency,$wakeup_lat,next_pid,next_comm) if next_comm=="ping"' > /sys/kernel/debug/tracing/events/sched/sched_switch/trigger - # echo 'hist:keys=comm,pid,lat:wakeup_lat=lat:sort=lat' > /sys/kernel/debug/tracing/events/synthetic/wakeup_latency/trigger - - # trace-cmd record -e wakeup_latency -e sched_wakeup -f comm==\"ping\" ping localhost -c 5 - - # trace-cmd report - CPU 0 is empty - CPU 1 is empty - CPU 2 is empty - CPU 3 is empty - CPU 5 is empty - CPU 6 is empty - CPU 7 is empty - cpus=8 - ug! no event found for type 0 - [UNKNOWN TYPE 0] - ug! no event found for type 11520 - Segmentation fault (core dumped) - -After this patch we get the correct interpretation and the events are -shown properly: - - # trace-cmd report - CPU 0 is empty - CPU 1 is empty - CPU 2 is empty - CPU 3 is empty - CPU 5 is empty - CPU 6 is empty - CPU 7 is empty - cpus=8 - -0 [004] 23284.341392: sched_wakeup: ping:12031 [120] success=1 CPU:004 - -0 [004] 23284.341464: wakeup_latency: lat=58, pid=12031, comm=ping - -0 [004] 23285.365303: sched_wakeup: ping:12031 [120] success=1 CPU:004 - -0 [004] 23285.365382: wakeup_latency: lat=64, pid=12031, comm=ping - -0 [004] 23286.389290: sched_wakeup: ping:12031 [120] success=1 CPU:004 - -0 [004] 23286.389378: wakeup_latency: lat=72, pid=12031, comm=ping - -0 [004] 23287.413213: sched_wakeup: ping:12031 [120] success=1 CPU:004 - -0 [004] 23287.413291: wakeup_latency: lat=64, pid=12031, comm=ping - -Link: http://lkml.kernel.org/r/1567628224.13841.4.camel@kernel.org -Link: http://lore.kernel.org/linux-trace-devel/20200625100516.365338-3-tz.stoyanov@gmail.com - -Signed-off-by: Tom Zanussi -[ Ported from trace-cmd.git ] -Cc: Andrew Morton -Cc: Jiri Olsa -Cc: Namhyung Kim -Cc: linux-trace-devel@vger.kernel.org -Link: http://lore.kernel.org/lkml/20200702185703.785094515@goodmis.org -Signed-off-by: Tzvetomir Stoyanov (VMware) -Signed-off-by: Steven Rostedt (VMware) -Signed-off-by: Arnaldo Carvalho de Melo ---- - libtrace/kbuffer-parse.c | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/libtrace/kbuffer-parse.c b/libtrace/kbuffer-parse.c -index 583db99..f1640d6 100644 ---- a/libtrace/kbuffer-parse.c -+++ b/libtrace/kbuffer-parse.c -@@ -361,6 +361,7 @@ translate_data(struct kbuffer *kbuf, void *data, void **rptr, - break; - - case KBUFFER_TYPE_TIME_EXTEND: -+ case KBUFFER_TYPE_TIME_STAMP: - extend = read_4(kbuf, data); - data += 4; - extend <<= TS_SHIFT; -@@ -369,10 +370,6 @@ translate_data(struct kbuffer *kbuf, void *data, void **rptr, - *length = 0; - break; - -- case KBUFFER_TYPE_TIME_STAMP: -- data += 12; -- *length = 0; -- break; - case 0: - *length = read_4(kbuf, data) - 4; - *length = (*length + 3) & ~3; -@@ -397,7 +394,11 @@ static unsigned int update_pointers(struct kbuffer *kbuf) - - type_len = translate_data(kbuf, ptr, &ptr, &delta, &length); - -- kbuf->timestamp += delta; -+ if (type_len == KBUFFER_TYPE_TIME_STAMP) -+ kbuf->timestamp = delta; -+ else -+ kbuf->timestamp += delta; -+ - kbuf->index = calc_index(kbuf, ptr); - kbuf->next = kbuf->index + length; - -@@ -454,7 +455,9 @@ static int __next_event(struct kbuffer *kbuf) - if (kbuf->next >= kbuf->size) - return -1; - type = update_pointers(kbuf); -- } while (type == KBUFFER_TYPE_TIME_EXTEND || type == KBUFFER_TYPE_PADDING); -+ } while (type == KBUFFER_TYPE_TIME_EXTEND || -+ type == KBUFFER_TYPE_TIME_STAMP || -+ type == KBUFFER_TYPE_PADDING); - - return 0; - } --- -cgit - diff --git a/rasdaemon-0.6.8.tar.gz b/rasdaemon-0.6.8.tar.gz deleted file mode 100644 index 54e1d4fc4dd58b56639877ee3b63c962b91bad88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161343 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

=<#c0KfT7IsHZN}2Jx==t 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 diff --git a/rasdaemon-0.8.0.tar.gz b/rasdaemon-0.8.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..131fb173302ca700e36aeda969ec48cbf6644e03 GIT binary patch literal 121660 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

    j+s#$P5Nl&j;^N1 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 ZLmlc+hdR`u4s}>5{6CK0Y&QVd2>@jwSOow8 literal 0 HcmV?d00001 diff --git a/rasdaemon.spec b/rasdaemon.spec index 34bee66..2934e8e 100644 --- a/rasdaemon.spec +++ b/rasdaemon.spec @@ -1,16 +1,17 @@ Name: rasdaemon -Version: 0.6.8 -Release: 6 +Version: 0.8.0 +Release: 1 License: GPLv2 Summary: Utility to get Platform Reliability, Availability and Serviceability (RAS) reports via the Kernel tracing events URL: https://github.com/mchehab/rasdaemon.git Source0: https://github.com/mchehab/rasdaemon/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz ExcludeArch: s390 s390x -BuildRequires: gcc, gettext-devel, perl-generators, sqlite-devel, systemd, git, libtool +BuildRequires: gcc, gettext-devel, perl-generators, sqlite-devel, systemd, git, libtool, libtraceevent-devel Provides: bundled(kernel-event-lib) Requires: hwdata Requires: perl-DBD-SQLite +Requires: libtraceevent %ifarch %{ix86} x86_64 Requires: dmidecode %endif @@ -19,32 +20,15 @@ Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -Patch6000: backport-rasdaemon-ras-memory-failure-handler-handle-localtim.patch -Patch6001: backport-rasdaemon-ras-report-fix-possible-but-unlikely-file-.patch -Patch6002: backport-traceevent-Add-proper-KBUFFER_TYPE_TIME_STAMP-handling.patch - Patch9000: bugfix-rasdaemon-wait-for-file-access.patch Patch9001: bugfix-fix-fd-check.patch Patch9002: bugfix-fix-disk-error-log-storm.patch -Patch9003: 0001-rasdaemon-Support-cpu-fault-isolation-for-corrected-.patch -Patch9004: 0002-rasdaemon-Support-cpu-fault-isolation-for-recoverabl.patch -Patch9005: 0003-rasdaemon-Modify-recording-Hisilicon-common-error-da.patch -Patch9006: 0004-rasdaemon-ras-mc-ctl-Modify-error-statistics-for-HiS.patch -Patch9007: 0005-rasdaemon-ras-mc-ctl-Reformat-error-info-of-the-HiSi.patch -Patch9008: 0006-rasdaemon-ras-mc-ctl-Add-printing-usage-if-necessary.patch -Patch9009: 0007-rasdaemon-ras-mc-ctl-Add-support-to-display-the-HiSi.patch -Patch9010: 0008-rasdaemon-ras-mc-ctl-Relocate-reading-and-display-Ku.patch -Patch9011: 0009-rasdaemon-ras-mc-ctl-Updated-HiSilicon-platform-name.patch -Patch9012: 0010-rasdaemon-Fix-for-a-memory-out-of-bounds-issue-and-o.patch -Patch9013: 0001-rasdaemon-use-standard-length-PATH_MAX-for-path-name.patch -Patch9014: 0001-rasdaemon-Fix-for-regression-in-ras_mc_create_table-.patch -Patch9015: 0002-rasdaemon-Fix-poll-on-per_cpu-trace_pipe_raw-blocks-.patch -Patch9016: 0001-rasdaemon-fix-return-value-type-issue-of-read-write-.patch -Patch9017: 0002-rasdaemon-fix-issue-of-signed-and-unsigned-integer-c.patch -Patch9018: 0003-rasdaemon-Add-support-for-creating-the-vendor-error-.patch -Patch9019: 0004-rasdaemon-Add-four-modules-supported-by-HiSilicon-co.patch -Patch9020: backport-Check-CPUs-online-not-configured.patch -Patch9021: backport-rasdaemon-diskerror-fix-incomplete-diskerror-log.patch +Patch9003: 0001-rasdaemon-Fix-for-regression-in-ras_mc_create_table-.patch +Patch9004: 0001-rasdaemon-fix-return-value-type-issue-of-read-write-.patch +Patch9005: 0002-rasdaemon-fix-issue-of-signed-and-unsigned-integer-c.patch +Patch9006: 0003-rasdaemon-Add-support-for-creating-the-vendor-error-.patch +Patch9007: backport-Check-CPUs-online-not-configured.patch +Patch9008: backport-rasdaemon-diskerror-fix-incomplete-diskerror-log.patch %description The rasdaemon program is a daemon which monitors the platform @@ -77,7 +61,7 @@ install -D -p -m 0644 misc/ras-mc-ctl.service %{buildroot}%{_unitdir}/ras-mc-ctl rm INSTALL %{buildroot}/usr/include/*.h %files -%doc ChangeLog README TODO +%doc ChangeLog README.md TODO %license AUTHORS COPYING %{_sbindir}/rasdaemon %{_sbindir}/ras-mc-ctl @@ -96,6 +80,12 @@ fi /usr/bin/systemctl disable rasdaemon.service >/dev/null 2>&1 || : %changelog +* Mon Jan 29 2024 zhuofeng - 0.8.0-1 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:update version to 0.8.0 + * Sun Dec 31 2023 Lv Ying - 0.6.8-7 - Type:bugfix - ID:NA -- Gitee