summaryrefslogtreecommitdiffstats
path: root/src/usr/diag
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2015-03-04 13:03:50 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-03-10 21:46:11 -0500
commitce389634b92109124738b46a62a9c8ac2c3e442c (patch)
tree7495eb1864d0dcfe53b3aa0beb2a9b32dab75476 /src/usr/diag
parent0481b521db49eb5161def9fe10824a07c9b5068b (diff)
downloadtalos-hostboot-ce389634b92109124738b46a62a9c8ac2c3e442c.tar.gz
talos-hostboot-ce389634b92109124738b46a62a9c8ac2c3e442c.zip
PRD: R/R and F/O performance improvement in TD controller
Change-Id: Ife188eeba97e05742b1bf739ac313109e8201bb7 CQ: SW291873 Backport: release-fips830 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16160 Tested-by: Jenkins Server Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: Bilicon Patil <bilpatil@in.ibm.com> Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16287 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag')
-rwxr-xr-xsrc/usr/diag/prdf/common/runtime/prdfCenMbaTdCtlr_rt.C18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/usr/diag/prdf/common/runtime/prdfCenMbaTdCtlr_rt.C b/src/usr/diag/prdf/common/runtime/prdfCenMbaTdCtlr_rt.C
index cde91d46e..3eca8c6e9 100755
--- a/src/usr/diag/prdf/common/runtime/prdfCenMbaTdCtlr_rt.C
+++ b/src/usr/diag/prdf/common/runtime/prdfCenMbaTdCtlr_rt.C
@@ -312,12 +312,10 @@ int32_t CenMbaTdCtlr::handleRrFo()
do
{
- o_rc = initialize();
- if ( SUCCESS != o_rc )
- {
- PRDF_ERR( PRDF_FUNC"initialize() failed" );
- break;
- }
+ // NOTE: For performance reasons, we will not call initialize() yet.
+ // Instead, we will first query the hardware to determine if the
+ // TD controller even needed to be involved. Then we will call
+ // initialize(), if needed.
// Check for condition which may require to start a maintenance
// command during R/R or F/o.
@@ -352,6 +350,14 @@ int32_t CenMbaTdCtlr::handleRrFo()
if ( mbaSpa->IsBitSet(0) || mbaSpa->IsBitSet(8) )
break;
+ // Now that we know we need to use the TD controller, initialize it.
+ o_rc = initialize();
+ if ( SUCCESS != o_rc )
+ {
+ PRDF_ERR( PRDF_FUNC"initialize() failed" );
+ break;
+ }
+
// Create a temporary sdc as we do not want to write separate
// version for startBgScrub during R/R and FO
// Also we do not want to save this SDC. So set the "Don't save sdc"
OpenPOWER on IntegriCloud