summaryrefslogtreecommitdiffstats
path: root/src/usr/hwas/common/hwas.C
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2018-04-23 12:01:45 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-05-15 18:08:42 -0400
commitd7355b73ce6b9b6b2a8634a4f349d3ca2c25104c (patch)
tree20d045a74925c387f773fe39896270e36f48faee /src/usr/hwas/common/hwas.C
parenta5982dd2d6a9e5169b9563e89b45f09d487b7856 (diff)
downloadtalos-hostboot-d7355b73ce6b9b6b2a8634a4f349d3ca2c25104c.tar.gz
talos-hostboot-d7355b73ce6b9b6b2a8634a4f349d3ca2c25104c.zip
Improve resource recovery path to handle memory plugging rules
Resource recovery is a RAS feature wherein we do not apply certain gard records if those records would result in a boot fail due to a lack of hardware. Change the logic from applying speculative deconfiguration one by one to applying all predictive gard records and then removing those records if minimal hardware is not available. Also add BLOCK_SPEC_DECONFIG attribute to flag when speculative deconfiguration is not allowed. This flag is set if minimum hardware is not available and is cleared after a hardware change. Change-Id: Ia065de3a44ab29fbf33ad4ce98bc42ea5144463f RTC: 191414 CQ: SW424137 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/58041 Tested-by: Jenkins Server <pfd-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> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@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.C8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index 3f242aefe..a6fa872b5 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -2200,6 +2200,14 @@ errlHndl_t checkMinimumHardware(const TARGETING::ConstTargetHandle_t i_nodeOrSys
HWAS_INF("checkMinimumHardware exit - minimum hardware %s",
((l_errl != NULL)||((o_bootable!=NULL)&&(!*o_bootable))) ?
"NOT available" : "available");
+ if((l_errl != NULL)||((o_bootable!=NULL)&&(!*o_bootable)))
+ {
+ // Minimum hardware not available, block speculative deconfigs
+ Target *pSys;
+ targetService().getTopLevelTarget(pSys);
+ pSys->setAttr<ATTR_BLOCK_SPEC_DECONFIG>(1);
+ }
+
return l_errl ;
} // checkMinimumHardware
OpenPOWER on IntegriCloud