Skip to content

Commit c24fa8d

Browse files
velozrNicholas E Bofferding
authored andcommitted
Force the refresh/update of attribute overrides at the point of retrieval
This commit will refresh/update the attribute override for the Error Log Manager (ErrlManager) after it has been immediately retrieved via the Istep Dispatcher (IStepDispatcher). Change-Id: I010de99bd66361b2bf4c37fd9dfc7ddd84156d85 CQ: SW491378 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/98149 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@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: Ilya Smirnov <ismirno@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Nicholas E Bofferding <bofferdn@us.ibm.com>
1 parent a75cc46 commit c24fa8d

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

src/include/usr/errl/errlmanager.H

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/* */
66
/* OpenPOWER HostBoot Project */
77
/* */
8-
/* Contributors Listed Below - COPYRIGHT 2011,2019 */
8+
/* Contributors Listed Below - COPYRIGHT 2011,2020 */
99
/* [+] Google Inc. */
1010
/* [+] International Business Machines Corp. */
1111
/* */
@@ -116,6 +116,7 @@ enum errlManagerNeeds
116116
MBOX,
117117
IPMI,
118118
ERRLDISP,
119+
UPDATE_ATTRIB_VARS, // Force the refresh/update of attribute variables
119120
} ;
120121

121122

@@ -307,6 +308,7 @@ private:
307308
ERRLOG_ACCESS_ERRLDISP_TYPE = 0x00000037 | MBOX::FIRST_SECURE_MSG,
308309
ERRLOG_ACCESS_IPMI_TYPE = 0x00000038 | MBOX::FIRST_SECURE_MSG,
309310
ERRLOG_FLUSH_TYPE = 0x00000039 | MBOX::FIRST_SECURE_MSG,
311+
ERRLOG_UPDATE_ATTRIB_VARS_TYPE = 0x00000040 | MBOX::FIRST_SECURE_MSG,
310312
};
311313

312314
/**

src/usr/errl/errlmanager.C

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,10 +357,21 @@ void ErrlManager::errlogMsgHndlr ()
357357
TARGETING::Target * sys = NULL;
358358
TARGETING::targetService().getTopLevelTarget( sys );
359359

360+
// Cache current 'hidden error log enable' value for tracing
361+
auto l_hiddenErrLogsEnableOldValue = iv_hiddenErrLogsEnable;
362+
360363
// set whether we want to skip certain error logs or not.
361364
iv_hiddenErrLogsEnable =
362365
sys->getAttr<TARGETING::ATTR_HIDDEN_ERRLOGS_ENABLE>();
363366

367+
TRACFCOMP( g_trac_errl, INFO_MRK
368+
"ErrlManager::errlogMsgHndlr(ERRLOG_ACCESS_TARG_TYPE"
369+
"(0x%02X)) - updating 'hidden error logs enable' "
370+
"from 0x%02X to 0x%02X",
371+
ERRLOG_ACCESS_TARG_TYPE,
372+
l_hiddenErrLogsEnableOldValue,
373+
iv_hiddenErrLogsEnable );
374+
364375
TARGETING::SpFunctions spfn;
365376

366377
if (!(sys &&
@@ -384,6 +395,29 @@ void ErrlManager::errlogMsgHndlr ()
384395
//We are done with the msg
385396
msg_free(theMsg);
386397

398+
// go back and wait for a next msg
399+
break;
400+
}
401+
case ERRLOG_UPDATE_ATTRIB_VARS_TYPE:
402+
{
403+
TARGETING::Target * sys(nullptr);
404+
TARGETING::targetService().getTopLevelTarget( sys );
405+
406+
// Cache current 'hidden error log enable' value for tracing
407+
auto l_hiddenErrLogsEnableOldValue = iv_hiddenErrLogsEnable;
408+
409+
// Refresh/update attribute vars
410+
iv_hiddenErrLogsEnable =
411+
sys->getAttr<TARGETING::ATTR_HIDDEN_ERRLOGS_ENABLE>();
412+
413+
TRACFCOMP( g_trac_errl, INFO_MRK
414+
"ErrlManager::errlogMsgHndlr(ERRLOG_UPDATE_ATTRIB_VARS_TYPE"
415+
"(0x%02X)) - updating 'hidden error logs enable' "
416+
"from 0x%02X to 0x%02X",
417+
ERRLOG_UPDATE_ATTRIB_VARS_TYPE,
418+
l_hiddenErrLogsEnableOldValue,
419+
iv_hiddenErrLogsEnable );
420+
387421
// go back and wait for a next msg
388422
break;
389423
}
@@ -941,6 +975,9 @@ void ErrlManager::sendResourcesMsg(errlManagerNeeds i_needs)
941975
case ERRLDISP:
942976
msg->type = ERRORLOG::ErrlManager::ERRLOG_ACCESS_ERRLDISP_TYPE;
943977
break;
978+
case UPDATE_ATTRIB_VARS:
979+
msg->type = ERRORLOG::ErrlManager::ERRLOG_UPDATE_ATTRIB_VARS_TYPE;
980+
break;
944981
default:
945982
{
946983
TRACFCOMP( g_trac_errl, ERR_MRK "bad msg!!");

src/usr/initservice/istepdispatcher/istepdispatcher.C

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,16 @@ void IStepDispatcher::init(errlHndl_t &io_rtaskRetErrl)
262262
break;
263263
}
264264
}
265-
}
265+
266+
TRACFCOMP( g_trac_initsvc, "IStepDispatcher: init: calling "
267+
"ERRORLOG::ErrlManager::errlResourceReady"
268+
"(ERRORLOG::UPDATE_ATTRIB_VARS(0x%02X))",
269+
ERRORLOG::UPDATE_ATTRIB_VARS );
270+
271+
// Inform ErrlManager to reread any attribute values that it may
272+
// have cached away in the event that those values were overridden.
273+
ERRORLOG::ErrlManager::errlResourceReady(ERRORLOG::UPDATE_ATTRIB_VARS);
274+
} // end if(!iv_spBaseServicesEnabled)
266275

267276
iv_istepMode = l_pTopLevelTarget->getAttr<TARGETING::ATTR_ISTEP_MODE>();
268277

0 commit comments

Comments
 (0)