path: root/src/runtime/rt_main.C
diff options
authorSakethan R Kotta <>2018-03-29 07:10:59 -0500
committerDaniel M. Crowell <>2018-06-19 17:24:01 -0400
commit1ec6201b896c5cbc22fef03df1a063faa8cd6411 (patch)
tree4eec7df976c14204aef99de916e2ff0612aca161 /src/runtime/rt_main.C
parent34d086e3e67827f0496b838d5d05a9964aa1346c (diff)
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: Reviewed-by: Prachi Gupta <> Reviewed-by: Daniel M. Crowell <> Tested-by: Daniel M. Crowell <>
Diffstat (limited to 'src/runtime/rt_main.C')
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.
- // 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
// 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
+ // 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
OpenPOWER on IntegriCloud