summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/plat/mem/prdfMemTdCtlr.H
diff options
context:
space:
mode:
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