From 1ec6201b896c5cbc22fef03df1a063faa8cd6411 Mon Sep 17 00:00:00 2001 From: Sakethan R Kotta Date: Thu, 29 Mar 2018 07:10:59 -0500 Subject: 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 Reviewed-by: Daniel M. Crowell Tested-by: Daniel M. Crowell --- src/runtime/rt_main.C | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/runtime') 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(); -- cgit v1.2.1