Skip to content

Commit

Permalink
Filter out NX chiplets with specdeconfig in checkminimumHardware
Browse files Browse the repository at this point in the history
checkminimumHardware was not checking whether NX chiplet(s)
was/were speculatively deconfigured, which prevented resource
recovery from being triggered. checkminimumHardware now uses
the l_functional predicate for NX chiplets (as well as for
everything else).

Change-Id: I886ee45a0d05414db016888f5faf951e1363a9f7
CQ:SW401514
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48253
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@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>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
Ilya Smirnov authored and dcrowell77 committed Oct 18, 2017
1 parent 2752037 commit 4b0e1b5
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/usr/hwas/common/hwas.C
Expand Up @@ -1510,6 +1510,11 @@ errlHndl_t checkMinimumHardware(const TARGETING::ConstTargetHandle_t i_nodeOrSys
PredicateHwas l_functional;
if(o_bootable)
{
// Speculative deconfig sets the specdeconfig to true for the target
// in question, so we want to filter out the targets that have been
// speculatively deconfigured. Setting specdeconfig to false in this
// predicate will ensure that those targets are left out of the list
// of functional targets.
l_functional.specdeconfig(false);
}
l_functional.functional(true);
Expand Down Expand Up @@ -1921,8 +1926,16 @@ errlHndl_t checkMinimumHardware(const TARGETING::ConstTargetHandle_t i_nodeOrSys
}

// check for functional NX chiplets
// Take specdeconfig into account here
TargetHandleList l_functionalNXChiplets;
getChildChiplets(l_functionalNXChiplets, pTop, TYPE_NX, true);
PredicateCTM l_nxChiplet(CLASS_UNIT, TYPE_NX);
PredicatePostfixExpr l_checkExprFunctionalNxChiplets;
l_checkExprFunctionalNxChiplets.push(&l_nxChiplet)
.push(&l_functional)
.And();
targetService().getAssociated(l_functionalNXChiplets, pTop,
TargetService::CHILD, TargetService::ALL,
&l_checkExprFunctionalNxChiplets);
HWAS_DBG( "checkMinimumHardware: %d NX chiplets",
l_functionalNXChiplets.size());

Expand Down

0 comments on commit 4b0e1b5

Please sign in to comment.