Skip to content

Commit

Permalink
Clear reconfigure loop attribute's deconfig bit during MPIPL
Browse files Browse the repository at this point in the history
In host_gard if we deconfigure targs as a result of collectGard
it is using a PLID as a reason for deconfig. This causes a reconfig
loop attribute to be set which will make this host think it needs
a reconfig loop, which is undesired behavior.

Change-Id: I50b5847d85ec54bd5a0f33483571dace3c312182
CQ: SW401347
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46456
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-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>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
crgeddes authored and dcrowell77 committed Sep 22, 2017
1 parent 06029fd commit 72cf613
Showing 1 changed file with 24 additions and 25 deletions.
49 changes: 24 additions & 25 deletions src/usr/isteps/istep06/host_gard.C
Original file line number Diff line number Diff line change
Expand Up @@ -118,34 +118,33 @@ void* host_gard( void *io_pArgs )
"collectGard returned error; breaking out");
break;
}
}

if (l_err == NULL)
{
// check and see if we still have enough hardware to continue
l_err = HWAS::checkMinimumHardware();
if(l_err)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
ERR_MRK"host_gard: "
"check minimum hardware returned error; breaking out");
break;
}
}
// If targets are deconfigured as a result of host_gard, they are
// done so using the PLID as the reason for deconfiguration. This
// triggers the reconfigure loop attribute to be set, which causes
// undesirable behavior, so we need to reset it here:

// Read current value
TARGETING::ATTR_RECONFIGURE_LOOP_type l_reconfigAttr =
l_pTopLevel->getAttr<TARGETING::ATTR_RECONFIGURE_LOOP>();
// Turn off deconfigure bit
l_reconfigAttr &= ~TARGETING::RECONFIGURE_LOOP_DECONFIGURE;
// Write back to attribute
l_pTopLevel->setAttr<TARGETING::ATTR_RECONFIGURE_LOOP>
(l_reconfigAttr);
// check and see if we still have enough hardware to continue
l_err = HWAS::checkMinimumHardware();
if(l_err)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
ERR_MRK"host_gard: "
"check minimum hardware returned error; breaking out");
break;
}

// If targets are deconfigured as a result of host_gard, they are
// done so using the PLID as the reason for deconfiguration. This
// triggers the reconfigure loop attribute to be set, which causes
// undesirable behavior, so we need to reset it here:

// Read current value
TARGETING::ATTR_RECONFIGURE_LOOP_type l_reconfigAttr =
l_pTopLevel->getAttr<TARGETING::ATTR_RECONFIGURE_LOOP>();
// Turn off deconfigure bit
l_reconfigAttr &= ~TARGETING::RECONFIGURE_LOOP_DECONFIGURE;
// Write back to attribute
l_pTopLevel->setAttr<TARGETING::ATTR_RECONFIGURE_LOOP>
(l_reconfigAttr);


// Send message to FSP with HUID of master core
msg_t * core_msg = msg_allocate();
core_msg->type = SBE::MSG_IPL_MASTER_CORE;
Expand Down

0 comments on commit 72cf613

Please sign in to comment.