[Skiboot] [PATCH 3/3] doc/errorlogging : Updates errorlogging by FSP
Mukesh Ojha
mukesh02 at linux.vnet.ibm.com
Wed Jul 13 15:28:54 AEST 2016
Add description about how FSP errorlogs get fetched in OPAL and finally pulled
by the Host kernel.
Signed-off-by: Mukesh Ojha <mukesh02 at linux.vnet.ibm.com>
---
doc/error-logging.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/doc/error-logging.txt b/doc/error-logging.txt
index db03046..15ca280 100644
--- a/doc/error-logging.txt
+++ b/doc/error-logging.txt
@@ -1,3 +1,49 @@
+Error logging from FSP:
+=====================
+
+FSP send their errorlogs via giving notification to OPAL via mailbox protocol.
+
+OPAL maintains some lists:
+
+Free list : List of free nodes
+Pending list : List of nodes which is yet to be read by the host.
+Processed list : List of nodes which has been read but still waiting for
+ acknowledgement.
+
+List of free nodes which contain log_id, log_size and the link which points
+to the next node.
+
+OPAL has state machine which has following states.
+
+enum elog_head_state {
+ ELOG_STATE_FETCHING, /*In the process of reading log from FSP. */
+ ELOG_STATE_FETCHED_INFO,/* Indicates reading log info is completed */
+ ELOG_STATE_FETCHED_DATA,/* Indicates reading log is completed */
+ ELOG_STATE_NONE, /* Indicates to fetch next log */
+ ELOG_STATE_REJECTED, /* resend all pending logs to linux */
+};
+
+Initially,the state of the state machine is ELOG_STATE_NONE.
+
+When OPAL gets the notification about the errorlog, it takes out the node from
+free list and put it into pending list and update the state machine into
+fetching state(ELOG_STATE_FETCHING). It also gives response back to FSP about
+the new errorlog notification.
+
+It also queue mailbox message to get the errorlog data in opal errorlog buffer,
+once it is done the state machine gets into fetched state
+(ELOG_STATE_FETCHED_DATA).After that, opal notify the host to fetch the errorlog.
+
+Host uses the opal interface call to get the errorlog info(elogid, elog_size,
+elog_type) first then read the errorlog data in the kernel buffer that moves
+the pending errorlog to processed list. After reading the state machine moves
+to ELOG_STATE_NONE state.
+
+It acknowledges the errorlog id after reading by sending the call to opal which
+in turn sends the ack mbox message to FSP and moves errorlog id from processed
+list to again back to free node list and this process goes on every FSP
+errorlog.
+
How to log errors on Sapphire and POWERNV:
=========================================
--
2.7.4
More information about the Skiboot
mailing list