Skip to content

Commit

Permalink
Add consistent enter-exit traces for all runtime interfaces
Browse files Browse the repository at this point in the history
Created a new 'HBRT' trace buffer that is exclusively used to
 bound the external calls into our runtime image.
Modified the return code values to be the reasoncode of the error
 log we commit instead of a generic '-1' value that is not
 very helpful.

Change-Id: Id41288ea1903bf6d11e967fcb10a8184153943c8
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64871
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
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>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
  • Loading branch information
dcrowell77 authored and wghoffa committed Oct 2, 2018
1 parent 01fcdb6 commit 46b6d71
Show file tree
Hide file tree
Showing 12 changed files with 146 additions and 95 deletions.
2 changes: 2 additions & 0 deletions src/include/runtime/hbrt_utilities.H
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@

#ifndef __HOSTBOOT_RUNTIME_INTERFACE_VERSION_ONLY

#define HBRT_TRACE_NAME "HBRT"

#include "interface.h"

/** @file hbrt_utilities.H
Expand Down
26 changes: 17 additions & 9 deletions src/usr/diag/attn/runtime/attn_rt.C
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ using namespace std;
using namespace TARGETING;
using namespace ATTN;
using namespace PRDF;
extern trace_desc_t* g_trac_hbrt;

namespace ATTN_RT
{
Expand All @@ -54,6 +55,7 @@ namespace ATTN_RT
*/
int enableAttns(void)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" enable_attns");
ATTN_SLOW(ENTER_MRK"ATTN_RT::enableAttns");

int rc = 0;
Expand Down Expand Up @@ -91,21 +93,22 @@ namespace ATTN_RT
if ( err->sev() < ERRORLOG::ERRL_SEV_PREDICTIVE )
err->setSev( ERRORLOG::ERRL_SEV_PREDICTIVE );

errlCommit(err, ATTN_COMP_ID);
rc = -1;
rc = ERRL_GETRC_SAFE(err);
errlCommit( err, ATTN_COMP_ID );
break;
}

err = Singleton<Service>::instance().enableAttns();
if(err)
{
errlCommit(err, ATTN_COMP_ID);
rc = -1;
rc = ERRL_GETRC_SAFE(err);
errlCommit( err, ATTN_COMP_ID );
}
}while(0);

ATTN_SLOW(EXIT_MRK"ATTN_RT::enableAttns rc: %d", rc);

TRACFCOMP(g_trac_hbrt, EXIT_MRK" enable_attns: rc=0x%X",rc);
return rc;
}

Expand All @@ -115,19 +118,21 @@ namespace ATTN_RT
*/
int disableAttns(void)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" disable_attns");
ATTN_SLOW(ENTER_MRK"ATTN_RT::disableAttns");

int rc = 0;
errlHndl_t err = NULL;
err = Singleton<Service>::instance().disableAttns();
if(err)
{
errlCommit(err, ATTN_COMP_ID);
rc = -1;
rc = ERRL_GETRC_SAFE(err);
errlCommit( err, ATTN_COMP_ID );
}

ATTN_SLOW(EXIT_MRK"ATTN_RT::disableAttns rc: %d", rc);

TRACFCOMP(g_trac_hbrt, EXIT_MRK" disable_attns: rc=0x%X",rc);
return rc;
}

Expand All @@ -143,6 +148,7 @@ namespace ATTN_RT
uint64_t i_ipollStatus,
uint64_t i_ipollMask)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" handle_attns");
ATTN_SLOW(ENTER_MRK"ATTN_RT::handleAttns RtProc: %llx"
", ipollMask: %llx, ipollStatus: %llx",
i_proc, i_ipollMask, i_ipollStatus);
Expand All @@ -160,7 +166,6 @@ namespace ATTN_RT
{
ATTN_ERR("ATTN_RT::handleAttns getHbTarget "
"returned error for RtProc: %llx", i_proc);
rc = EINVAL;
break;
}

Expand Down Expand Up @@ -189,17 +194,18 @@ namespace ATTN_RT

if(err)
{
errlCommit( err, ATTN_COMP_ID );
if(0 == rc)
{
rc = -1;
rc = ERRL_GETRC_SAFE(err);
}
errlCommit( err, ATTN_COMP_ID );
}


attentions.clear();
ATTN_SLOW(EXIT_MRK"ATTN_RT::handleAttns rc: %d", rc);

TRACFCOMP(g_trac_hbrt, EXIT_MRK" handle_attns: rc=0x%X",rc);
return rc;
}

Expand All @@ -215,6 +221,7 @@ namespace ATTN_RT

uint64_t getIpollEvents( void )
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" get_ipoll_events");
uint64_t l_ipollEvents = 0;

// Host side should allow 'Recov', 'UnitCs' and 'HostInt'
Expand All @@ -225,6 +232,7 @@ namespace ATTN_RT
IPOLL_SP_RECOVERABLE | IPOLL_SP_SPECIAL |
IPOLL_ROUTE_TO_SP ;

TRACFCOMP(g_trac_hbrt, EXIT_MRK" get_ipoll_events: rc=0x%X",l_ipollEvents);
return(l_ipollEvents);

} // end getIpollEvents
Expand Down
9 changes: 9 additions & 0 deletions src/usr/htmgt/runtime/rt_occ.C
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@


using namespace TARGETING;
extern trace_desc_t* g_trac_hbrt;


namespace HTMGT
Expand All @@ -40,6 +41,7 @@ namespace HTMGT

void process_occ_error (uint64_t i_chipId)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" process_occ_error");
#ifdef CONFIG_HTMGT
TARGETING::Target* l_reportingOccTarget = NULL;
errlHndl_t err = RT_TARG::getHbTarget(i_chipId,l_reportingOccTarget);
Expand All @@ -57,12 +59,14 @@ namespace HTMGT
TMGT_ERR("Unexpected call to process_occ_error(%d)"
" when HTMGT is not enabled", i_chipId);
#endif
TRACFCOMP(g_trac_hbrt, EXIT_MRK" process_occ_error");
}

//------------------------------------------------------------------------

void process_occ_reset (uint64_t i_chipId)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" process_occ_reset");
#ifdef CONFIG_HTMGT
TARGETING::Target* l_failedOccTarget = NULL;
errlHndl_t err = RT_TARG::getHbTarget(i_chipId,l_failedOccTarget);
Expand All @@ -80,12 +84,14 @@ namespace HTMGT
TMGT_ERR("Unexpected call to process_occ_reset(%d)"
" when HTMGT is not enabled", i_chipId);
#endif
TRACFCOMP(g_trac_hbrt, EXIT_MRK" process_occ_reset");
}

//------------------------------------------------------------------------

int enable_occ_actuation (int i_occ_activation)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" enable_occ_actuation");
int rc = 0;
#ifdef CONFIG_HTMGT
errlHndl_t err = HTMGT::enableOccActuation(0 != i_occ_activation);
Expand All @@ -107,6 +113,7 @@ namespace HTMGT
TMGT_ERR("Unexpected call to enable_occ_actuation(%d)"
" when HTMGT is not enabled", i_occ_activation);
#endif
TRACFCOMP(g_trac_hbrt, EXIT_MRK" enable_occ_actuation: rc=0x%X",rc);
return rc;
}

Expand All @@ -117,6 +124,7 @@ namespace HTMGT
uint16_t * o_rspLength,
uint8_t * o_rspData)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" mfg_htmgt_pass_thru");
int rc = 0;
#ifdef CONFIG_HTMGT
errlHndl_t err = HTMGT::passThruCommand(i_cmdLength, i_cmdData,
Expand All @@ -140,6 +148,7 @@ namespace HTMGT
#else
o_rspLength = 0;
#endif
TRACFCOMP(g_trac_hbrt, EXIT_MRK" mfg_htmgt_pass_thru: rc=0x%X",rc);
return rc;
}

Expand Down
18 changes: 12 additions & 6 deletions src/usr/isteps/pm/runtime/rt_pm.C
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
using namespace TARGETING;
using namespace RUNTIME;
using namespace ERRORLOG;
extern trace_desc_t* g_trac_hbrt;

namespace ISTEPS_TRACE
{
Expand All @@ -71,13 +72,12 @@ namespace RTPM
void pm_complex_error( errlHndl_t i_err,
int &io_rc )
{
errlCommit( i_err, RUNTIME_COMP_ID );

if(io_rc == 0)
{
io_rc = -1;
io_rc = ERRL_GETRC_SAFE(i_err);
}

errlCommit( i_err, RUNTIME_COMP_ID );
return;
}

Expand All @@ -99,7 +99,7 @@ namespace RTPM
errlHndl_t l_err = nullptr;
int rc = 0;

TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
TRACFCOMP( g_trac_hbrt,ENTER_MRK
"load_pm_complex: homer addr=%016llx. "
"occ common addr=%016lx. RtProcChip=%llx. mode=%d",
i_homer_addr,
Expand Down Expand Up @@ -193,6 +193,8 @@ namespace RTPM
rc);
}

TRACFCOMP( g_trac_hbrt,EXIT_MRK
"load_pm_complex:rc=0x%X", rc );
return rc;
}

Expand All @@ -208,7 +210,7 @@ namespace RTPM
errlHndl_t l_err = nullptr;
int rc = 0;

TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
TRACFCOMP( g_trac_hbrt,ENTER_MRK
"start_pm_complex: RtProcChip %llx", i_chip);

do
Expand Down Expand Up @@ -263,6 +265,8 @@ namespace RTPM
rc);
}

TRACFCOMP( g_trac_hbrt,EXIT_MRK
"start_pm_complex:rc=0x%X", rc );
return rc;
}

Expand All @@ -279,7 +283,7 @@ namespace RTPM
errlHndl_t l_err = nullptr;
int rc = 0;

TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
TRACFCOMP( g_trac_hbrt,ENTER_MRK
"reset_pm_complex: RtProcChip %llx", i_chip);

do
Expand Down Expand Up @@ -318,6 +322,8 @@ namespace RTPM
rc);
}

TRACFCOMP( g_trac_hbrt,EXIT_MRK
"reset_pm_complex:rc=0x%X", rc );
return rc;
}

Expand Down
5 changes: 4 additions & 1 deletion src/usr/sbeio/runtime/rt_sbeio.C
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
using namespace TARGETING;
using namespace ERRORLOG;
using namespace SBE_MSG;
extern trace_desc_t* g_trac_hbrt;

// Trace
trace_desc_t* g_trac_sbeio;
Expand Down Expand Up @@ -524,6 +525,7 @@ namespace RT_SBEIO

int process_sbe_msg(uint32_t i_procChipId)
{
TRACFCOMP(g_trac_hbrt, ENTER_MRK" sbe_message_passing: i_procChipId=%d", i_procChipId );
int rc = 0;
errlHndl_t errl = nullptr;

Expand Down Expand Up @@ -649,7 +651,8 @@ namespace RT_SBEIO
errlCommit (errl, SBE_COMP_ID);
}

TRACFCOMP(g_trac_sbeio, EXIT_MRK" process_sbe_msg: rc=%d", rc );
TRACFCOMP(g_trac_sbeio, EXIT_MRK" process_sbe_msg: rc=0x%X", rc );
TRACFCOMP(g_trac_hbrt, EXIT_MRK" sbe_message_passing: rc=0x%X", rc );
return rc;
}

Expand Down

0 comments on commit 46b6d71

Please sign in to comment.