summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-04-14 22:24:26 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-04-19 16:45:37 -0400
commiteb9479855310fb1897fd14294cbdfc9564bf3605 (patch)
tree6348365d6ad43dd3d30eaed82c10c2e51cdba836 /src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H
parent81c7d1cc28c7dc7a6b208165031aeab1f459fcbc (diff)
downloadtalos-hostboot-eb9479855310fb1897fd14294cbdfc9564bf3605.tar.gz
talos-hostboot-eb9479855310fb1897fd14294cbdfc9564bf3605.zip
PRD: Simplified use of pushToQueue() and handleTdEvent()
Change-Id: Iaaa137886feb30d034360e8a16a74e98b0aaece3 RTC: 188516 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57234 Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57477 CI-Ready: Zane C. Shelley <zshelle@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H')
-rw-r--r--src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H44
1 files changed, 18 insertions, 26 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H
index 3f3f354fc..06d4bef58 100644
--- a/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H
+++ b/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H
@@ -79,40 +79,32 @@ class MemTdCtlr
*/
uint32_t handleCmdComplete( STEP_CODE_DATA_STRUCT & io_sc );
+ /**
+ * @brief This only pushes a new TdEntry to the back of iv_queue.
+ * @post Fetch attentions must also call handleTdEvent() to trigger
+ * diagnostics, if not already in progress.
+ * @param i_entry The new TD queue entry.
+ */
+ void pushToQueue( TdEntry * i_entry ) { iv_queue.push(i_entry); }
+
+ #ifdef __HOSTBOOT_RUNTIME
/**
- * @brief Adds a new TD procedure to the queue.
- *
- * During runtime, this is used to process TD requests during analysis of
- * attentions other than the command complete attention (i.e. memory CEs
- * and UEs). If there isn't a current TD procedure in progress, this
- * function will stop background scrubbing and start this new procedure.
- * Otherwise, this new procedure is simply added to the queue.
- *
- * It is possible that some of the other attentions may occur during the IPL
- * after Hostboot has been flushed from the cache to system memory. At that
- * point we don't have time to complete a TD procedure. Therefore, the
- * requests will be ignored. Any chip marks placed during this time will be
- * redetected when the runtime TD controller is initialized.
+ * @brief This tells the TD controller there was a TdEntry added to the
+ * queue (via pushToQueue) because of a fetch attention and
+ * additional processing may be needed to start the next TD
+ * procedure. If there isn't a current TD procedure in progress,
+ * this function will stop background scrubbing and starts the first
+ * procedure in the queue.
*
- * During MemDiags, this will simply add a new procedure to the queue, since
- * we know a TD procedure will already be in progress when this is called.
+ * @pre A TdEntry must be added to the queue (via pushToQueue) before
+ * calling this function.
*
* @note Initializes the TD controller, if needed.
* @param io_sc The step code data struct.
- * @param i_entry The new TD queue entry.
* @return Non-SUCCESS if an internal function fails, SUCCESS otherwise.
*/
- uint32_t handleTdEvent( STEP_CODE_DATA_STRUCT & io_sc,
- TdEntry * i_entry );
-
- /**
- * @brief Pushes a new TdEntry to the back of iv_queue.
- * @param i_entry The new TD queue entry.
- */
- void pushToQueue( TdEntry * i_entry ) { iv_queue.push(i_entry); }
-
- #ifdef __HOSTBOOT_RUNTIME
+ uint32_t handleTdEvent( STEP_CODE_DATA_STRUCT & io_sc );
/**
* @brief Handles reset-reload or FO scenario.
OpenPOWER on IntegriCloud