Skip to content

Commit

Permalink
Do not elevate severity of reconfig error log
Browse files Browse the repository at this point in the history
The code as currently written will elevate the severity of any
log that is used to terminate the hostboot ipl.  In most cases
this is the correct behavior as we always want a visible log.
However, there are cases where hostboot terminates for the sole
purpose of triggering a reconfig loop via the FSP in order to
recover from a recoverable hardware issue.  In this case the log
shouldn't be visible since we don't want the customer to take
any actions.

The fix is to add a little bit of logic to differentiate these
two scenarios to control the severity setting.

Change-Id: I7253aec8c28a40c5cdebf4933ceccbecd119b9f4
CQ: SW420495
Backport: yes
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55379
CI-Ready: Nicholas E. Bofferding <bofferdn@us.ibm.com>
CI-Ready: Daniel M. Crowell <dcrowell@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>
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: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Reviewed-by: Marshall J. Wilks <mjwilks@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
  • Loading branch information
dcrowell77 authored and wghoffa committed Mar 12, 2018
1 parent 48d4641 commit 586b8b1
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/usr/initservice/istepdispatcher/istepdispatcher.C
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,9 @@ errlHndl_t IStepDispatcher::executeAllISteps()
uint32_t numReconfigs = 0;
bool l_manufacturingMode = false;

// We are terminating in order to trigger a reconfig loop on the FSP
bool l_termToReconfig = false;

// soft reconfig loops happen really fast
// and since for scale-out systems it only happens for istep 7
// there is no significant max time delay to recover the system
Expand Down Expand Up @@ -634,6 +637,7 @@ errlHndl_t IStepDispatcher::executeAllISteps()
// Return an error to cause termination on FSP systems
if (iv_spBaseServicesEnabled)
{
l_termToReconfig = true;
err = failedDueToDeconfig(istep, substep,
newIstep, newSubstep);
}
Expand Down Expand Up @@ -781,10 +785,15 @@ errlHndl_t IStepDispatcher::executeAllISteps()

if (err)
{
// Ensure severity reflects IPL will be terminated
if (err->sev() != ERRORLOG::ERRL_SEV_CRITICAL_SYS_TERM)
// If we are terminating the IPL to force a reconfig loop on the
// FSP then leave the severity alone
if( !l_termToReconfig )
{
err->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
// Ensure severity reflects IPL will be terminated
if (err->sev() != ERRORLOG::ERRL_SEV_CRITICAL_SYS_TERM)
{
err->setSev(ERRORLOG::ERRL_SEV_UNRECOVERABLE);
}
}
break;
}
Expand Down Expand Up @@ -2650,7 +2659,6 @@ errlHndl_t IStepDispatcher::failedDueToDeconfig(
/*@
* @errortype
* @reasoncode ISTEP_FAILED_DUE_TO_DECONFIG
* @severity ERRORLOG::ERRL_SEV_INFORMATIONAL
* @moduleid ISTEP_INITSVC_MOD_ID
* @userdata1[00:15] Istep that failed
* @userdata1[16:31] SubStep that failed
Expand Down

0 comments on commit 586b8b1

Please sign in to comment.