diff options
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() ); |