diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2017-11-27 10:24:27 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-04-13 12:33:21 -0400 |
commit | 21080c6885b10977d4a1fe51e2dba79cb67d26c8 (patch) | |
tree | 8d72c6c5b363788968bb47c8b67a9e8577b6dd83 /src/usr/initservice | |
parent | afb0e6a438eeda79822dd1dde73b98e6a87fde5b (diff) | |
download | talos-hostboot-21080c6885b10977d4a1fe51e2dba79cb67d26c8.tar.gz talos-hostboot-21080c6885b10977d4a1fe51e2dba79cb67d26c8.zip |
Log Hostboot state information in all error logs
Add the Istep number and substep number to Hostboot Error Logs
to assist in problem debug. These items will be added as a user
data record to all Hostboot Error Logs prior to Runtime.
Change-Id: Ib5d269f3c1853d6d6856669744630dc130fa7094
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54764
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/initservice')
-rw-r--r-- | src/usr/initservice/baseinitsvc/initservice.C | 45 | ||||
-rw-r--r-- | src/usr/initservice/baseinitsvc/initservice.H | 24 | ||||
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 4 |
3 files changed, 71 insertions, 2 deletions
diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C index b16fd213e..8445a4df7 100644 --- a/src/usr/initservice/baseinitsvc/initservice.C +++ b/src/usr/initservice/baseinitsvc/initservice.C @@ -610,7 +610,9 @@ InitService& InitService::getTheInstance( ) InitService::InitService( ) : - iv_shutdownInProgress(false) + iv_shutdownInProgress(false), + iv_iStep( 0 ), + iv_iSubStep( 0 ) { mutex_init(&iv_registryMutex); } @@ -958,6 +960,27 @@ bool InitService::unregisterShutdownEvent(msg_q_t i_msgQ) return result; } + +void InitService::ShadowIstepData( uint8_t i_step, + uint8_t i_subStep ) +{ + // save the inputs + iv_iStep = i_step; + iv_iSubStep = i_subStep; + return; +} + + +void InitService::GetIstepData( uint8_t & o_step, + uint8_t & o_subStep ) +{ + // extract the data + o_step = iv_iStep; + o_subStep = iv_iSubStep; + return; +} + + /** * @see src/include/usr/initservice/initservicif.H */ @@ -976,4 +999,24 @@ bool unregisterShutdownEvent(msg_q_t i_msgQ) return Singleton<InitService>::instance().unregisterShutdownEvent(i_msgQ); } + +void ShadowIstepData( uint8_t i_step, + uint8_t i_subStep ) +{ + Singleton<InitService>::instance().ShadowIstepData( i_step, + i_subStep ); + return; +} + + +void GetIstepData( uint8_t & o_step, + uint8_t & o_subStep ) +{ + Singleton<InitService>::instance().GetIstepData( o_step, + o_subStep ); + + return; +} + + } // namespace diff --git a/src/usr/initservice/baseinitsvc/initservice.H b/src/usr/initservice/baseinitsvc/initservice.H index 70b1f8427..18e76ef49 100644 --- a/src/usr/initservice/baseinitsvc/initservice.H +++ b/src/usr/initservice/baseinitsvc/initservice.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2017 */ +/* Contributors Listed Below - COPYRIGHT 2011,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -240,6 +240,25 @@ public: uint64_t i_masterHBInstance = 0xffffffffffffffffull, uint32_t i_error_info = 0); + /** + * @brief Save Istep Step and Substep for use by error logging + * @param[in] i_step, Istep Step + * @param[in] i_subStep, Istep subStep + * @return none + */ + void ShadowIstepData( uint8_t i_step, + uint8_t i_subStep ); + + /** + * @brief Extract Istep Step and Substep + * @param[out] o_step, Istep Step + * @param[out] o_subStep, Istep subStep + * @return none + */ + void GetIstepData( uint8_t & o_step, + uint8_t & o_subStep ); + + protected: /** @@ -306,6 +325,9 @@ private: mutex_t iv_registryMutex; bool iv_shutdownInProgress; + uint8_t iv_iStep; // shadow of current istep / substep + uint8_t iv_iSubStep; // for error logs + }; // class InitService } // namespace INITSERVICE diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index 56be31a44..0cebd9cea 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -46,6 +46,7 @@ #include <initservice/isteps_trace.H> // ISTEPS_TRACE buffer #include <initservice/initsvcudistep.H> // InitSvcUserDetailsIstep #include <initservice/taskargs.H> // TASK_ENTRY_MACRO +#include <initservice/initserviceif.H> #include <targeting/common/targetservice.H> #include <targeting/attrsync.H> #include <fapi2/plat_attr_override_sync.H> @@ -838,6 +839,9 @@ errlHndl_t IStepDispatcher::doIstep(uint32_t i_istep, errlHndl_t err = NULL; o_doReconfig = false; + INITSERVICE::ShadowIstepData( static_cast<uint8_t>(i_istep), + static_cast<uint8_t>(i_substep) ); + // Get the Task Info for this step const TaskInfo * theStep = findTaskInfo(i_istep, i_substep); |