summaryrefslogtreecommitdiffstats
path: root/src/runtime
diff options
context:
space:
mode:
authorSakethan R Kotta <sakkotta@in.ibm.com>2018-03-29 07:10:59 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-06-19 17:24:01 -0400
commit1ec6201b896c5cbc22fef03df1a063faa8cd6411 (patch)
tree4eec7df976c14204aef99de916e2ff0612aca161 /src/runtime
parent34d086e3e67827f0496b838d5d05a9964aa1346c (diff)
downloadtalos-hostboot-1ec6201b896c5cbc22fef03df1a063faa8cd6411.tar.gz
talos-hostboot-1ec6201b896c5cbc22fef03df1a063faa8cd6411.zip
HBRT Reserved Mem Trace Buffer implementation.
-Hostboot master Drawer will create TRACEBUF section in the HB Rsvd Mem and HBRT, while booting, gets the TRACEBUF section details and initializes the circual buffer, if available. -If a valid data is present in the buffer, HBRT will create an info log ERRL, otherwise initializes the buffer. -Traces from all components are serialized and stored in the single TRACEBUF in the same format (fsp-binary Trace). When buffer is full, it deletes the oldest entry/entries to store the new ones. -ERRL->collectTrace() works similar to other buffers. -A new test case is added to dump the traces from TRACEBUF. Change-Id: I4ce943231a2ba30e3a13ca34d1c40ff68464a994 RTC:188726 RTC:191302 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56450 Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/rt_main.C15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/runtime/rt_main.C b/src/runtime/rt_main.C
index 7aa631c7e..b8f37e46c 100644
--- a/src/runtime/rt_main.C
+++ b/src/runtime/rt_main.C
@@ -128,8 +128,16 @@ runtimeInterfaces_t* rt_start(hostInterfaces_t* intf)
// Initialize all modules.
vfs_module_init();
- // apply temp overrides
+ // Call rtPost functions
postInitCalls_t* rtPost = getPostInitCalls();
+
+ // Call InitRsvdTraceBufService
+ // NOTE: This function has pre-req of vfs_module_init() for using
+ // hb_get_rt_rsvd_mem(). Due to pre-req of rtPost->callInitErrlManager()
+ // committing ERRL is moved to callCommitRsvdTraceBufErrl().
+ rtPost->callInitRsvdTraceBufService();
+
+ // apply temp overrides
rtPost->callApplyTempOverrides();
// load FIRDATA section into memory so PRD can access
@@ -139,6 +147,11 @@ runtimeInterfaces_t* rt_start(hostInterfaces_t* intf)
// Make sure errlmanager is ready
rtPost->callInitErrlManager();
+ // Call commitRsvdTraceBufErrl
+ // NOTE: This function has pre-req of rtPost->callInitErrlManager()
+ // for committing ERRL, which was created in InitRsvdTraceBufService().
+ rtPost->callCommitRsvdTraceBufErrl();
+
// check for possible missed in-flight messages/interrupts
rtPost->callClearPendingSbeMsgs();
OpenPOWER on IntegriCloud