Skip to content

Commit

Permalink
PRD: Workarounds to avoid HIO during checkstops
Browse files Browse the repository at this point in the history
Change-Id: Ic05472b0806465fbf3315663da7c67349f72ebbc
CQ: SW485981
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/92064
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com>
Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com>
Reviewed-by: Zane C Shelley <zshelle@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93123
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
  • Loading branch information
cnpalmer authored and zane131 committed Mar 12, 2020
1 parent a3fec9c commit 7e9fe96
Show file tree
Hide file tree
Showing 39 changed files with 241 additions and 121 deletions.
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2019 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -248,10 +248,11 @@ int32_t ErrorRegister::Lookup(STEP_CODE_DATA_STRUCT & sdc, BitKey & bl)
{
int32_t rc = SUCCESS;
ResolutionList rList;
rc = rMap.LookUp( rList,bl,sdc );
bool isDefault = false;
rc = rMap.LookUp( rList,bl,sdc,isDefault );
for( ResolutionList::iterator i = rList.begin(); i != rList.end(); ++i )
{
rc |= (*i)->Resolve( sdc );
rc |= (*i)->Resolve( sdc, isDefault );
}

return rc;
Expand Down
Expand Up @@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* COPYRIGHT International Business Machines Corp. 1997,2014 */
/* Contributors Listed Below - COPYRIGHT 1997,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
Expand Down Expand Up @@ -91,7 +93,8 @@ class AnalyzeChipResolution: public Resolution
<br><b>Notes:</b> {optional}
</ul><br>
*/
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & serviceData);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & serviceData,
bool i_default = false);

private: // functions
private: // Data
Expand Down
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -83,7 +83,8 @@ class CallAttnResolution : public Resolution
//
// End Function Specification ****************************************

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error,
bool i_default = false);
// Function Specification ********************************************
//
// Purpose: Resolve service data - callout all chips at attention as
Expand Down
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -92,7 +92,7 @@ class CallResolutionTemplate : public Resolution
//
// End Function Specification ****************************************

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error)
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error, bool i_default = false)
{
return((object->*pFunction)(error));
}
Expand Down
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -100,7 +100,8 @@ class CaptureResolution : public Resolution
@return returncode [SUCCESS | mop return code]
@No definition exist for this until we prove we need it again!
*/
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error,
bool i_default = false);

private: // functions
private: // Data
Expand Down
Expand Up @@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* COPYRIGHT International Business Machines Corp. 1996,2014 */
/* Contributors Listed Below - COPYRIGHT 1996,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
Expand Down Expand Up @@ -93,7 +95,8 @@ class EregResolution : public Resolution
// Copy ctor - compiler default is sufficient
// Assignment - compiler default is sufficient

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & data);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & data,
bool i_default = false);
// Function Specification ********************************************
//
// Purpose:
Expand Down
32 changes: 21 additions & 11 deletions src/usr/diag/prdf/common/framework/resolution/iipResolution.C
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -93,7 +93,8 @@ Resolution::~Resolution() {}
// EregResolution Member Function Specifications
//---------------------------------------------------------------------

int32_t EregResolution::Resolve( STEP_CODE_DATA_STRUCT & io_data )
int32_t EregResolution::Resolve( STEP_CODE_DATA_STRUCT & io_data,
bool i_default )
{
int32_t rc = PRD_INTERNAL_CODE_ERROR;
if( errorRegister != NULL )
Expand All @@ -106,7 +107,8 @@ int32_t EregResolution::Resolve( STEP_CODE_DATA_STRUCT & io_data )
//--------------------------------------------------------------------
// CalloutGardResolution Member Functions
//--------------------------------------------------------------------
int32_t CalloutGardResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t CalloutGardResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
/*
This resolution is only needed when we callout self. So, during RuleChip
Expand All @@ -125,7 +127,8 @@ int32_t CalloutGardResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
PRDcallout l_targetCallout( ServiceDataCollector::getTargetAnalyzed() );
io_serviceData.service_data->SetCallout( l_targetCallout,
iv_calloutPriority,
iv_gardState );
iv_gardState,
i_default );
}
else
{
Expand All @@ -140,7 +143,8 @@ int32_t CalloutGardResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
// ResolutionList Member Functions
//--------------------------------------------------------------------

int32_t ResolutionList::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t ResolutionList::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
int32_t rc = SUCCESS;
for(std::vector<void *>::iterator iter = resolutionList.begin();
Expand All @@ -157,7 +161,8 @@ int32_t ResolutionList::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
//--------------------------------------------------------------------
// Call all chips raising attention as reported by sp sysdebug area
//--------------------------------------------------------------------
int32_t CallAttnResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t CallAttnResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
int32_t rc = NO_DOMAINS_AT_ATTENTION;
SYSTEM_DEBUG_CLASS systemDebug;
Expand All @@ -176,15 +181,17 @@ int32_t CallAttnResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )

// ********************************************************************

int32_t TerminateResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t TerminateResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
io_serviceData.service_data->SetTerminate();
return(SUCCESS);
}

// ********************************************************************

int32_t AnalyzeChipResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t AnalyzeChipResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
// mk442956 a
return xChip.Analyze( io_serviceData,
Expand All @@ -193,7 +200,8 @@ int32_t AnalyzeChipResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )

// ********************************************************************

int32_t TryResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t TryResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
// Save the current error signature
ErrorSignature * es = io_serviceData.service_data->GetErrorSignature();
Expand All @@ -213,7 +221,8 @@ int32_t TryResolution::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
//--------------------------------------------------------------------
// CalloutConnectedGard Member Functions
//--------------------------------------------------------------------
int32_t CalloutConnectedGard::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t CalloutConnectedGard::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
TargetHandle_t sourceTrgt = ServiceDataCollector::getTargetAnalyzed();
TargetHandle_t connTrgt = nullptr;
Expand Down Expand Up @@ -268,7 +277,8 @@ int32_t CalloutConnectedGard::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
//--------------------------------------------------------------------
// AnalyzeConnected Member Functions
//--------------------------------------------------------------------
int32_t AnalyzeConnected::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData )
int32_t AnalyzeConnected::Resolve( STEP_CODE_DATA_STRUCT & io_serviceData,
bool i_default )
{
TargetHandle_t sourceTrgt = ServiceDataCollector::getTargetAnalyzed();
TargetHandle_t connTrgt = nullptr;
Expand Down
6 changes: 4 additions & 2 deletions src/usr/diag/prdf/common/framework/resolution/iipResolution.h
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -85,9 +85,11 @@ class Resolution
/**
* @brief Resolve the service data for this error syndrome
* @param[io] io_data Reference to STEP_CODE_DATA_STRUCT
* @param[i] i_default
* @return SUCCESS | non-zero
*/
virtual int32_t Resolve( STEP_CODE_DATA_STRUCT & io_data ) = 0;
virtual int32_t Resolve( STEP_CODE_DATA_STRUCT & io_data,
bool i_default = false ) = 0;
// Function Specification ********************************************
//
// Purpose: Resolve service data for a specific error bit (Pure Virtual)
Expand Down
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2018 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -128,7 +128,8 @@ Resolution & ResolutionFactory::LinkResolutions(Resolution & r1,
// ---------------------------------------------------------------------

int32_t ResolutionFactory::ResolutionLink::Resolve(
STEP_CODE_DATA_STRUCT & serviceData )
STEP_CODE_DATA_STRUCT & serviceData,
bool i_default )
{
int32_t rc = xlnk1->Resolve(serviceData);
if (rc == SUCCESS) rc = xlnk2->Resolve(serviceData);
Expand Down
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -351,7 +351,8 @@ class ResolutionFactory
return xlnk1 >= r.xlnk1;
};

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & serviceData);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & serviceData,
bool i_default = false);
private: // data
Resolution * xlnk1;
Resolution * xlnk2;
Expand Down
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
/* Contributors Listed Below - COPYRIGHT 2012,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -98,7 +98,8 @@ class ResolutionList : public Resolution
//
// End Function Specification ****************************************

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error,
bool i_default = false);
// Function Specification ********************************************
//
// Purpose: Resolve service data for a specific error bit (Pure Virtual)
Expand Down
Expand Up @@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* COPYRIGHT International Business Machines Corp. 1997,2014 */
/* Contributors Listed Below - COPYRIGHT 1997,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
Expand Down Expand Up @@ -103,7 +105,7 @@ class TerminateResolution: public Resolution
//
// End Function Specification ****************************************

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & data);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & data, bool i_default = false);
// Function Specification ********************************************
//
// Purpose: Tells the ServiceDataCollector (data) that machine operation
Expand Down
Expand Up @@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* COPYRIGHT International Business Machines Corp. 1996,2014 */
/* Contributors Listed Below - COPYRIGHT 1996,2020 */
/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
Expand Down Expand Up @@ -104,7 +106,8 @@ class ThresholdResolution : public Resolution
// copy ctor - Compiler default ok
// Assignment - Compiler default ok

virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error);
virtual int32_t Resolve(STEP_CODE_DATA_STRUCT & error,
bool i_default = false);
// Function Specification ********************************************
//
// Purpose: Resolve service data for a specific error bit
Expand Down

0 comments on commit 7e9fe96

Please sign in to comment.