Skip to content

Commit

Permalink
No parent rollup for OBUS children
Browse files Browse the repository at this point in the history
HWSV code is deconfiguring either SMPGROUP or OBUS_BRICKS
under the OBUS.  Need to prevent the deconfigures from
also deconfiguring the parent OBUS.

Change-Id: Ibca2766009b63582fcfa537139a078bef3a58f47
CQ:SW454103
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70322
Reviewed-by: Christian R. Geddes <crgeddes@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: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
mderkse1 authored and dcrowell77 committed Jan 12, 2019
1 parent 42d89b6 commit 386e533
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 4 deletions.
35 changes: 34 additions & 1 deletion src/usr/hwas/common/deconfigGard.C
Original file line number Diff line number Diff line change
Expand Up @@ -1783,7 +1783,7 @@ void DeconfigGard::_deconfigParentAssoc(TARGETING::Target & i_target,
// Handles bus endpoint (TYPE_XBUS, TYPE_ABUS, TYPE_PSI) and
// memory (TYPE_MEMBUF, TYPE_MBA, TYPE_DIMM)
// chip (TYPE_EQ, TYPE_EX, TYPE_CORE)
// obus specific (TYPE_OBUS, TYPE_NPU, TYPE_SMPGROUP)
// obus specific (TYPE_OBUS, TYPE_NPU, TYPE_SMPGROUP, TYPE_OBUS_BRICK)
// deconfigureByAssociation rules
switch (l_targetType)
{
Expand Down Expand Up @@ -1929,6 +1929,39 @@ void DeconfigGard::_deconfigParentAssoc(TARGETING::Target & i_target,
break;
}

case TYPE_OBUS_BRICK:
{
// Other errors may have affected parent state so use
// UTIL_FILTER_ALL
TargetHandleList pParentObusList;
getParentAffinityTargetsByState(pParentObusList, &i_target,
CLASS_UNIT, TYPE_OBUS,
UTIL_FILTER_ALL);
HWAS_ASSERT((pParentObusList.size() == 1),
"HWAS _deconfigParentAssoc: pParentObusList != 1");

// Still allow for Parent OBUS deconfig if
// no more functional children
// (i.e. Don't knock it out if functional SMPGROUP child found)

// Need this because HWSV will knock out all OBUS_BRICKS,
// but leave the SMPGROUP children under OBUS targets
Target *l_parentObus = pParentObusList[0];

// General predicate to determine if target is functional
PredicateIsFunctional isFunctional;
if ((isFunctional(l_parentObus)) &&
(!anyChildFunctional(*l_parentObus)))
{

_deconfigureTarget(*l_parentObus,
i_errlEid, NULL, i_deconfigRule);
_deconfigureByAssoc(*l_parentObus,
i_errlEid,i_deconfigRule);
}
break;
} // TYPE_OBUS_BRICK

case TYPE_NPU:
{
//Get the parent proc associated with this npu
Expand Down
8 changes: 5 additions & 3 deletions src/usr/targeting/common/xmltohb/attribute_types.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<!-- -->
<!-- OpenPOWER HostBoot Project -->
<!-- -->
<!-- Contributors Listed Below - COPYRIGHT 2012,2018 -->
<!-- Contributors Listed Below - COPYRIGHT 2012,2019 -->
<!-- [+] International Business Machines Corp. -->
<!-- -->
<!-- -->
Expand Down Expand Up @@ -5106,10 +5106,12 @@
0x01 (true) = Do not allow parent deconfiguration rollup
</description>
<id>PARENT_DECONFIG_DISABLED</id>
<persistency>volatile-zeroed</persistency>
<persistency>non-volatile</persistency>
<readable/>
<simpleType>
<uint8_t/>
<uint8_t>
<default>0x0</default>
</uint8_t>
</simpleType>
<no_export/>
</attribute>
Expand Down
8 changes: 8 additions & 0 deletions src/usr/targeting/common/xmltohb/target_types.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2313,6 +2313,10 @@
<attribute>
<id>OBUS_SLOT_INDEX</id>
</attribute>
<attribute>
<default>1</default>
<id>PARENT_DECONFIG_DISABLED</id>
</attribute>
<attribute>
<id>PARENT_PERVASIVE</id>
</attribute>
Expand Down Expand Up @@ -2399,6 +2403,10 @@
<id>HWAS_STATE_CHANGED_SUBSCRIPTION_MASK</id>
<default>0x00000001</default>
</attribute>
<attribute>
<default>1</default>
<id>PARENT_DECONFIG_DISABLED</id>
</attribute>
<attribute>
<id>PEER_PATH</id>
<default>physical:na</default>
Expand Down

0 comments on commit 386e533

Please sign in to comment.