Skip to content

Commit

Permalink
PRD: hard CE callouts during Memory Diagnostics
Browse files Browse the repository at this point in the history
Change-Id: I3f3f696c8239500baebc0c36562fc748b0d663cc
CQ: SW391175
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41502
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41566
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
  • Loading branch information
zane131 committed Jun 9, 2017
1 parent 78c653c commit 584be5c
Showing 1 changed file with 7 additions and 14 deletions.
21 changes: 7 additions & 14 deletions src/usr/diag/prdf/plat/mem/prdfMemTdCtlr_ipl.C
Original file line number Diff line number Diff line change
Expand Up @@ -210,25 +210,18 @@ uint32_t __checkEcc( ExtensibleChip * i_chip, TdQueue & io_queue,
{
io_sc.service_data->AddSignatureList( trgt, PRDFSIG_MaintHARD_CTE );

// Query the per-symbol counters for the hard CE symbol.
MemUtils::MaintSymbols symData; MemSymbol junk;
o_rc = MemUtils::collectCeStats<T>( i_chip, rank, symData, junk );
// Query the per-symbol counters for hard CE symbols and make
// callouts for each failing DIMM. Note that this function creates
// new error logs for each DIMM with a hard CE.
D db = static_cast<D>(i_chip->getDataBundle());
o_rc = db->getIplCeStats()->calloutHardCes(rank);
if ( SUCCESS != o_rc )
{
PRDF_ERR( PRDF_FUNC "MemUtils::collectCeStats(0x%08x,m%ds%d) "
"failed", i_chip->GetId(), rank.getMaster(),
rank.getSlave() );
PRDF_ERR( PRDF_FUNC "calloutHardCes(0x%02x) failed",
rank.getKey() );
break;
}

// The command will have finished at the end of the rank so there
// may be more than one symbol. Add all to the callout list.
for ( auto & s : symData )
{
MemoryMru memmru ( trgt, rank, s.symbol );
io_sc.service_data->SetCallout( memmru );
}

// Add a TPS procedure to the queue.
TdEntry * e = new TpsEvent<T>{ i_chip, rank };
io_queue.push( e );
Expand Down

0 comments on commit 584be5c

Please sign in to comment.