summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2013-10-26 16:40:14 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-11-13 10:18:27 -0600
commit1ad8af50954d5eb8785a2dd0803db4245c01f396 (patch)
tree6406ff1644144a4dd6ef1302a1188ad469974a67
parentd12d677e100a9b48657c672e16288615703866e8 (diff)
downloadtalos-hostboot-1ad8af50954d5eb8785a2dd0803db4245c01f396.tar.gz
talos-hostboot-1ad8af50954d5eb8785a2dd0803db4245c01f396.zip
PRD: add fast scrub on next good rank (runtime TD)
Change-Id: I1cb888daa1eb0fbee41415e54ffd475b2d65b80c Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/6893 Tested-by: Jenkins Server Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com> Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7210
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfTargetServices.C2
-rw-r--r--src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C14
2 files changed, 10 insertions, 6 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C
index 41ebd1356..82089523c 100755
--- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C
+++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C
@@ -1039,7 +1039,7 @@ int32_t getMasterRanks( TargetHandle_t i_memTrgt,
for ( uint32_t rs = 0; rs < 4; rs++ )
{
- if ( 0 != (rankMask & (0x08 >> rs)) )
+ if ( 0 != (rankMask & (0x80 >> rs)) )
{
o_ranks.push_back( CenRank((ds << 2) | rs) );
}
diff --git a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C
index e43c15190..d26a75214 100644
--- a/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C
+++ b/src/usr/diag/prdf/plat/pegasus/prdfCenMbaTdCtlr.C
@@ -164,11 +164,15 @@ int32_t CenMbaTdCtlr::handleCmdCompleteEvent( STEP_CODE_DATA_STRUCT & io_sc )
// There may have been a code bug, callout 2nd level support.
io_sc.service_data->SetCallout( NextLevelSupport_ENUM, MRU_HIGH );
- // Callout the mark. If nothing was added to the callout list (no valid
- // marks), callout the MBA.
- CalloutUtil::calloutMark( mba, iv_rank, iv_mark, io_sc );
+ // Callout the rank if no other callouts have been made (besides 2nd
+ // Level Support). Note that iv_mark is not always guaranteed to be
+ // valid for every error scenario. For simplicity, callout the rank that
+ // was targeted with low priority.
if ( 1 == io_sc.service_data->GetMruList().size() )
- io_sc.service_data->SetCallout( mba );
+ {
+ MemoryMru memmru ( mba, iv_rank, MemoryMruData::CALLOUT_RANK );
+ io_sc.service_data->SetCallout( memmru, MRU_LOW );
+ }
// Just in case it was a legitimate maintenance command complete (error
// log not committed) but something else failed.
@@ -1551,7 +1555,7 @@ int32_t CenMbaTdCtlr::exitTdSequence()
}
// Clear out the mark, just in case. This is so we don't accidentally
- // callout this mark on another rank in an error patch scenario.
+ // callout this mark on another rank in an error path scenario.
iv_mark = CenMark();
} while (0);
OpenPOWER on IntegriCloud