summaryrefslogtreecommitdiffstats
path: root/src/usr/errl
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2018-03-28 11:00:35 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-04-09 16:38:00 -0400
commit7383c3a4fbaff710ecbefb3e9eeeae7320d9f8b1 (patch)
treefabf0c55c9f4c048b330ec60ea97e97c5f2ebaea /src/usr/errl
parent519b09db143e87b3d43f39790486f6c5dc1be96b (diff)
downloadtalos-hostboot-7383c3a4fbaff710ecbefb3e9eeeae7320d9f8b1.tar.gz
talos-hostboot-7383c3a4fbaff710ecbefb3e9eeeae7320d9f8b1.zip
Get Hostboot Dump after Hostboot Crash
When Hostboot has a TI with a PLID rather than a Reason Code (RC), HWSV does not attempt the Hostboot Dump. Thought is that happens per the design as the error log related to the PLID sent by Hostboot should already have the required information. There are instances where the error log does not have sufficient data and a dump would be beneficial. A path is being added so an error log can be flagged as needing a Hostboot dump. Change-Id: I97972308c70e7210f578fb818563bb9b0cd940b4 CQ: SW420219 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56600 CI-Ready: Daniel M. Crowell <dcrowell@us.ibm.com> CI-Ready: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/errl')
-rw-r--r--src/usr/errl/errlentry.C6
-rw-r--r--src/usr/errl/errlmanager.C10
2 files changed, 13 insertions, 3 deletions
diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C
index 972c8b272..c05d10d1d 100644
--- a/src/usr/errl/errlentry.C
+++ b/src/usr/errl/errlentry.C
@@ -79,7 +79,8 @@ ErrlEntry::ErrlEntry(const errlSeverity_t i_sev,
const uint16_t i_reasonCode,
const uint64_t i_user1,
const uint64_t i_user2,
- const bool i_hbSwError ) :
+ const bool i_hbSwError,
+ const bool i_hbDump ) :
iv_Private( static_cast<compId_t>(i_reasonCode & 0xFF00)),
iv_User( i_sev ),
// The SRC_ERR_INFO becomes part of the SRC; example, B1 in SRC B180xxxx
@@ -88,7 +89,8 @@ ErrlEntry::ErrlEntry(const errlSeverity_t i_sev,
iv_termState(TERM_STATE_UNKNOWN),
iv_sevFinal(false),
iv_skipShowingLog(true),
- iv_eselCallhomeInfoEvent(false)
+ iv_eselCallhomeInfoEvent(false),
+ iv_doHbDump(i_hbDump)
{
#ifdef CONFIG_ERRL_ENTRY_TRACE
TRACFCOMP( g_trac_errl, ERR_MRK"Error created : PLID=%.8X, RC=%.4X, Mod=%.2X, Userdata=%.16llX %.16llX", plid(), i_reasonCode, i_modId, i_user1, i_user2 );
diff --git a/src/usr/errl/errlmanager.C b/src/usr/errl/errlmanager.C
index 724c03a63..24008e7ea 100644
--- a/src/usr/errl/errlmanager.C
+++ b/src/usr/errl/errlmanager.C
@@ -53,6 +53,7 @@
#include <config.h>
#include <functional>
#include <hwas/common/deconfigGard.H>
+#include <kernel/terminate.H>
namespace ERRORLOG
{
@@ -193,7 +194,7 @@ ErrlManager::~ErrlManager()
// Singleton destructor gets run when module gets unloaded.
// This errorlog module never gets unloaded. So rather to send a
- // message to error log daemon and tell it to shutdow and delete
+ // message to error log daemon and tell it to shutdown and delete
// the queue we will assert here because the destructor never gets
// call.
assert(0);
@@ -736,6 +737,13 @@ void ErrlManager::commitErrLog(errlHndl_t& io_err, compId_t i_committerComp )
//Ask ErrlEntry to check for any special deferred deconfigure callouts
io_err->deferredDeconfigure();
+ // Is error flagged for doing HB Dump during a shutdown / TI?
+ if (io_err->getDoHbDump() == true)
+ {
+ // Then set flag in TI data
+ termSetHbDump();
+ }
+
//Offload the error log to the errlog message queue
sendErrlogToMessageQueue ( io_err, i_committerComp );
io_err = NULL;
OpenPOWER on IntegriCloud