diff options
author | Ilya Smirnov <ismirno@us.ibm.com> | 2017-10-11 13:10:54 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-10-18 12:25:21 -0400 |
commit | 4b0e1b579ebe1f7df2b4c88e2cef7212d9e8032f (patch) | |
tree | 812aa19c2b2578dee5a3faef2b6591d42af35106 /src/usr/hwas | |
parent | 2752037239ad9fface375bb89362118d3471e07e (diff) | |
download | talos-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')
-rw-r--r-- | src/usr/hwas/common/hwas.C | 15 |
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()); |