summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2017-11-27 10:24:27 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-04-13 12:33:21 -0400
commit21080c6885b10977d4a1fe51e2dba79cb67d26c8 (patch)
tree8d72c6c5b363788968bb47c8b67a9e8577b6dd83 /src/usr/initservice
parentafb0e6a438eeda79822dd1dde73b98e6a87fde5b (diff)
downloadtalos-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.C45
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.H24
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C4
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);
OpenPOWER on IntegriCloud