199 lines
9.9 KiB
Diff
199 lines
9.9 KiB
Diff
From 4007c95f8a8d570542ffc11676b619ea5649d0e7 Mon Sep 17 00:00:00 2001
|
|
From: Shiju Jose <shiju.jose@huawei.com>
|
|
Date: Sat, 5 Mar 2022 18:19:38 +0000
|
|
Subject: [PATCH 5/6] 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 <shiju.jose@huawei.com>
|
|
---
|
|
util/ras-mc-ctl.in | 119 ++++++++++++++++++++++++---------------------
|
|
1 file changed, 63 insertions(+), 56 deletions(-)
|
|
|
|
diff --git a/util/ras-mc-ctl.in b/util/ras-mc-ctl.in
|
|
index 0e32cb1..d728300 100755
|
|
--- a/util/ras-mc-ctl.in
|
|
+++ b/util/ras-mc-ctl.in
|
|
@@ -96,7 +96,8 @@ 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 <platform-id> Presents a summary of the vendor-specific logged errors.
|
|
- --vendor-errors <platform-id> Shows the vendor-specific errors stored in the error database.
|
|
+ --vendor-errors <platform-id> Shows the vendor-specific errors stored in the error database.
|
|
+ --vendor-errors <platform-id> <module-name> Shows the vendor-specific errors for a specific module stored in the error database.
|
|
--vendor-platforms Shows the supported platforms with platform-ids for the vendor-specific errors.
|
|
--help This help message.
|
|
EOF
|
|
@@ -1640,15 +1641,19 @@ sub vendor_errors_summary
|
|
sub vendor_errors
|
|
{
|
|
require DBI;
|
|
- my ($num_args, $platform_id);
|
|
+ my ($num_args, $platform_id, $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;
|
|
+ $module = 0;
|
|
if ($num_args ne 0) {
|
|
$platform_id = $ARGV[0];
|
|
+ if ($num_args gt 1) {
|
|
+ $module = $ARGV[1];
|
|
+ }
|
|
} else {
|
|
usage(1);
|
|
return;
|
|
@@ -1664,21 +1669,21 @@ 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 && ($module eq $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";
|
|
+ }
|
|
}
|
|
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;
|
|
|
|
@@ -1688,21 +1693,21 @@ 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 && ($module eq $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";
|
|
+ }
|
|
}
|
|
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;
|
|
|
|
@@ -1712,23 +1717,23 @@ 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 && ($module eq $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";
|
|
+ }
|
|
}
|
|
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;
|
|
}
|
|
@@ -1741,22 +1746,24 @@ sub vendor_errors
|
|
$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 && ($module eq $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";
|
|
+ }
|
|
}
|
|
if ($out ne "") {
|
|
print "HiSilicon Kunpeng9xx common error events:\n$out\n";
|
|
--
|
|
2.25.1
|
|
|