summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/hwas.C
diff options
context:
space:
mode:
authorIlya Smirnov <ismirno@us.ibm.com>2017-10-11 13:10:54 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-10-18 12:25:21 -0400
commit4b0e1b579ebe1f7df2b4c88e2cef7212d9e8032f (patch)
tree812aa19c2b2578dee5a3faef2b6591d42af35106 /src/usr/hwas/common/hwas.C
parent2752037239ad9fface375bb89362118d3471e07e (diff)
downloadtalos-hostboot-4b0e1b579ebe1f7df2b4c88e2cef7212d9e8032f.tar.gz
talos-hostboot-4b0e1b579ebe1f7df2b4c88e2cef7212d9e8032f.zip
Filter out NX chiplets with specdeconfig in checkminimumHardware
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>
Diffstat (limited to 'src/usr/hwas/common/hwas.C')
-rw-r--r--src/usr/hwas/common/hwas.C15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index f827ba207..44b341c10 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -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);
@@ -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());
OpenPOWER on IntegriCloud