diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2018-09-24 10:40:03 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-09-28 08:28:28 -0500 |
commit | 2cfc8b1e8aa68b4bb305e58aee89196007ffc63e (patch) | |
tree | 60ee9af8699f92d158099ff0d39ed7660b1ec5b6 /src/usr/errl/runtime | |
parent | e82eda284f016036b5e2192dd234db12da7559f2 (diff) | |
download | talos-hostboot-2cfc8b1e8aa68b4bb305e58aee89196007ffc63e.tar.gz talos-hostboot-2cfc8b1e8aa68b4bb305e58aee89196007ffc63e.zip |
Increment HBRT EID on every commit
When HBRT first boots we read ATTR_HOSTSVC_PLID to set our starting
PLID/EID number. However, we never increment that attribute as we
create new logs. This will result in HBRT reusing PLIDs if it ever
reboots (e.g. after a crash or as part of a code update) and also
when it restarts after a mpipl.
Change-Id: I9f3b83f2be793908b62f3fb959fbbe590a4a1464
CQ: SW446539
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66611
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Disable-CI: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/errl/runtime')
-rw-r--r-- | src/usr/errl/runtime/rt_errlmanager.C | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/usr/errl/runtime/rt_errlmanager.C b/src/usr/errl/runtime/rt_errlmanager.C index 1435401d6..9fb624608 100644 --- a/src/usr/errl/runtime/rt_errlmanager.C +++ b/src/usr/errl/runtime/rt_errlmanager.C @@ -101,6 +101,7 @@ ErrlManager::ErrlManager() : if(sys) { iv_currLogId = sys->getAttr<TARGETING::ATTR_HOSTSVC_PLID>(); + TRACFCOMP( g_trac_errl,"Initial Error Log ID = %.8X", iv_currLogId ); // set whether we want to skip certain error logs or not. iv_hiddenErrLogsEnable = @@ -304,6 +305,15 @@ void ErrlManager::commitErrLog(errlHndl_t& io_err, compId_t i_committerComp ) break; } + // Increment our persistent counter so we don't reuse EIDs + // after reboots or mpipl + TARGETING::Target * sys = NULL; + if( TARGETING::targetService().isInitialized() ) + { + TARGETING::targetService().getTopLevelTarget( sys ); + sys->setAttr<TARGETING::ATTR_HOSTSVC_PLID>(io_err->eid()+1); + } + TRACFCOMP(g_trac_errl, "commitErrLog() called by %.4X for plid=0x%X," "Reasoncode=%.4X", i_committerComp, io_err->plid(), io_err->reasonCode() ); |