diff options
| author | Marty Gloff <mgloff@us.ibm.com> | 2018-04-23 12:01:45 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-05-15 18:08:42 -0400 |
| commit | d7355b73ce6b9b6b2a8634a4f349d3ca2c25104c (patch) | |
| tree | 20d045a74925c387f773fe39896270e36f48faee /src/usr/targeting/common/predicates | |
| parent | a5982dd2d6a9e5169b9563e89b45f09d487b7856 (diff) | |
| download | talos-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/targeting/common/predicates')
| -rw-r--r-- | src/usr/targeting/common/predicates/predicatehwaschanged.C | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/usr/targeting/common/predicates/predicatehwaschanged.C b/src/usr/targeting/common/predicates/predicatehwaschanged.C index 03e83ff2c..f694a4f85 100644 --- a/src/usr/targeting/common/predicates/predicatehwaschanged.C +++ b/src/usr/targeting/common/predicates/predicatehwaschanged.C @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2013,2014 */ +/* Contributors Listed Below - COPYRIGHT 2013,2018 */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -98,7 +100,8 @@ bool PredicateHwasChanged::operator()( ATTR_HWAS_STATE_CHANGED_SUBSCRIPTION_MASK_type subscriptionMask = i_pTarget->getAttr<ATTR_HWAS_STATE_CHANGED_SUBSCRIPTION_MASK>(); - return ((actual.rawValue & (iv_valid.rawValue & subscriptionMask)) == + return ((subscriptionMask != 0) && + (actual.rawValue & (iv_valid.rawValue & subscriptionMask)) == (iv_desired.rawValue & (iv_valid.rawValue & subscriptionMask))); #undef TARG_FUNC |

