summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-02-04 15:41:03 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2018-02-07 15:51:46 -0500
commit1959b18ec67778b691579a83f2f0de77fd7b787f (patch)
treebe8fd2eb368adde3cd59dfe8a2608c8c7e77edb4 /src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C
parentcaaafc02d5887c1ab777466c9609cdd4f25ed7fd (diff)
downloadtalos-hostboot-1959b18ec67778b691579a83f2f0de77fd7b787f.tar.gz
talos-hostboot-1959b18ec67778b691579a83f2f0de77fd7b787f.zip
PRD: clear old symbol marks in TPS analysis
Change-Id: I22b80bcdbd6a3e57303982351268a4a3c327c8b3 CQ: SW415366 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53351 Reviewed-by: Caleb N Palmer <cnpalmer@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/53491 Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C')
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C b/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C
index 7f70806c8..7067a0121 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C
+++ b/src/usr/diag/prdf/plat/mem/prdfMemTps_rt.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016,2017 */
+/* Contributors Listed Below - COPYRIGHT 2016,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -809,6 +809,31 @@ uint32_t TpsEvent<TYPE_MCA>::analyzeCeSymbolCounts( CeCount i_badDqCount,
break;
}
+ // Check if the current symbol mark is on the same DRAM as
+ // this newly placed chip mark.
+ if ( symMark.isValid() &&
+ ( symMark.getSymbol().getDram() ==
+ newChipMark.getSymbol().getDram() ) )
+ {
+ // Since we need to set a symbol mark in addition to
+ // this chip mark, we need to clear the symbol mark now
+ // instead of at the end of the function to make room
+ // for the additional symbol mark.
+ o_rc = MarkStore::clearSymbolMark<TYPE_MCA>( iv_chip,
+ iv_rank );
+ if ( SUCCESS != o_rc )
+ {
+ PRDF_ERR( PRDF_FUNC "MarkStore::clearSymbolMark("
+ "0x%08x,0x%02x) failed",
+ iv_chip->getHuid(), iv_rank.getKey() );
+ break;
+ }
+
+ // Now refresh the symMark variable since the mark has
+ // been removed.
+ symMark = MemMark();
+ }
+
io_sc.service_data->setSignature( iv_chip->getHuid(),
PRDFSIG_TpsChipMark );
OpenPOWER on IntegriCloud