diff options
author | Sakethan R Kotta <sakkotta@in.ibm.com> | 2018-03-29 07:10:59 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-06-19 17:24:01 -0400 |
commit | 1ec6201b896c5cbc22fef03df1a063faa8cd6411 (patch) | |
tree | 4eec7df976c14204aef99de916e2ff0612aca161 /src/runtime | |
parent | 34d086e3e67827f0496b838d5d05a9964aa1346c (diff) | |
download | talos-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.C | 15 |
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(); |