diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2015-03-04 13:03:50 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-03-10 21:46:11 -0500 |
commit | ce389634b92109124738b46a62a9c8ac2c3e442c (patch) | |
tree | 7495eb1864d0dcfe53b3aa0beb2a9b32dab75476 /src/usr/diag | |
parent | 0481b521db49eb5161def9fe10824a07c9b5068b (diff) | |
download | talos-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-x | src/usr/diag/prdf/common/runtime/prdfCenMbaTdCtlr_rt.C | 18 |
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" |