diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2018-08-20 16:35:49 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-10-02 08:57:58 -0500 |
commit | 46b6d71b01b4936cfdf1e3236cde199a3940a231 (patch) | |
tree | f413bdd97c15a311b154a971a7338ef3d0772f25 /src/usr/util | |
parent | 01fcdb647ea0a6c899b9de21ed144f16dc2f2afb (diff) | |
download | talos-hostboot-46b6d71b01b4936cfdf1e3236cde199a3940a231.tar.gz talos-hostboot-46b6d71b01b4936cfdf1e3236cde199a3940a231.zip |
Add consistent enter-exit traces for all runtime interfaces
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>
Diffstat (limited to 'src/usr/util')
-rw-r--r-- | src/usr/util/runtime/rt_fwnotify.C | 7 | ||||
-rw-r--r-- | src/usr/util/runtime/util_rt.C | 6 | ||||
-rw-r--r-- | src/usr/util/runtime/utillidmgr_rt.C | 32 |
3 files changed, 28 insertions, 17 deletions
diff --git a/src/usr/util/runtime/rt_fwnotify.C b/src/usr/util/runtime/rt_fwnotify.C index 5515563b6..600a99fc6 100644 --- a/src/usr/util/runtime/rt_fwnotify.C +++ b/src/usr/util/runtime/rt_fwnotify.C @@ -41,6 +41,7 @@ using namespace SBEIO; // Trace definition extern trace_desc_t* g_trac_runtime; +extern trace_desc_t* g_trac_hbrt; /** * @brief The lower and upper bounds for the sequence ID. @@ -308,12 +309,12 @@ void attrSyncRequest( void * i_data) */ void firmware_notify( uint64_t i_len, void *i_data ) { - TRACFCOMP(g_trac_runtime, ENTER_MRK"firmware_notify: " + TRACFCOMP(g_trac_hbrt, ENTER_MRK"firmware_notify: " "i_len:%d", i_len ); TRACFBIN(g_trac_runtime, "firmware_notify: i_data", i_data, i_len); - errlHndl_t l_err = nullptr; + errlHndl_t l_err = nullptr; // Flag to detect an invlaid/unknown/not used message bool l_badMessage = false; @@ -437,7 +438,7 @@ void firmware_notify( uint64_t i_len, void *i_data ) errlCommit(l_err, RUNTIME_COMP_ID); } - TRACFCOMP(g_trac_runtime, EXIT_MRK"firmware_notify"); + TRACFCOMP(g_trac_hbrt, EXIT_MRK"firmware_notify"); }; struct registerFwNotify diff --git a/src/usr/util/runtime/util_rt.C b/src/usr/util/runtime/util_rt.C index 468db6ee7..e4489bd16 100644 --- a/src/usr/util/runtime/util_rt.C +++ b/src/usr/util/runtime/util_rt.C @@ -28,6 +28,12 @@ #include <util/utilrsvdmem.H> #include <util/runtime/util_rt.H> +// Create a buffer for high-level HBRT enter/exit traces +// Should only be used to bound the external calls into us +trace_desc_t* g_trac_hbrt = NULL; +TRAC_INIT(&g_trac_hbrt, "HBRT", 2*KILOBYTE); + + /** * @brief Get the address of a reserved hostboot memory region by its label * @param[in] i_label HBRT_MEM_LABEL_ constant diff --git a/src/usr/util/runtime/utillidmgr_rt.C b/src/usr/util/runtime/utillidmgr_rt.C index cacad8d70..8efbb7ffc 100644 --- a/src/usr/util/runtime/utillidmgr_rt.C +++ b/src/usr/util/runtime/utillidmgr_rt.C @@ -37,6 +37,8 @@ #include <util/utillidpnor.H> #include <pnor/pnor_reasoncodes.H> +extern trace_desc_t* g_trac_hbrt; + UtilLidMgr::UtilLidMgr(uint32_t i_lidId) : iv_isLidInPnor(false), iv_lidBuffer(nullptr), iv_lidSize(0), iv_isLidInVFS(false), iv_isLidInHbResvMem(false) @@ -341,20 +343,22 @@ errlHndl_t UtilLidMgr::updateLid(uint32_t i_lidId) const uint32_t * UtilLidMgr::getLidList(size_t * o_num) { - static uint32_t lidlist[] = - { - Util::OCC_LIDID, - Util::OCC_CONTAINER_LIDID, - Util::WOF_LIDID, - Util::WOF_CONTAINER_LIDID, - Util::NIMBUS_HCODE_LIDID, - Util::CUMULUS_HCODE_LIDID, - Util::HCODE_CONTAINER_LIDID, - Util::HWREFIMG_RINGOVD_LIDID, - Util::TARGETING_BINARY_LIDID - }; - *o_num = sizeof(lidlist)/sizeof(lidlist[0]); - return lidlist; + TRACFCOMP(g_trac_hbrt, ENTER_MRK" get_lid_list"); + static uint32_t lidlist[] = + { + Util::OCC_LIDID, + Util::OCC_CONTAINER_LIDID, + Util::WOF_LIDID, + Util::WOF_CONTAINER_LIDID, + Util::NIMBUS_HCODE_LIDID, + Util::CUMULUS_HCODE_LIDID, + Util::HCODE_CONTAINER_LIDID, + Util::HWREFIMG_RINGOVD_LIDID, + Util::TARGETING_BINARY_LIDID + }; + *o_num = sizeof(lidlist)/sizeof(lidlist[0]); + TRACFCOMP(g_trac_hbrt, EXIT_MRK" get_lid_list"); + return lidlist; } bool UtilLidMgr::lidInHbResvMem(const uint32_t i_lidId) const |