summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorRichard J. Knight <rjknight@us.ibm.com>2015-04-03 16:17:56 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-04-24 16:14:19 -0500
commitc17473f12baf51fb45ec6966d3ce007743a44bf5 (patch)
tree3ab88bf59fa26268b154296a9151cbfa26746b2a /src/include/usr
parent7aa1479447c6a941b2fc7dca9a162907b04494ab (diff)
downloadtalos-hostboot-c17473f12baf51fb45ec6966d3ce007743a44bf5.tar.gz
talos-hostboot-c17473f12baf51fb45ec6966d3ce007743a44bf5.zip
Investigate graceful shutdown path anomolies
-Fix shutdown loop to notify processes correctly -Block pnor writes when gracefull shutdown is in process Change-Id: I1d882e8596a0218fa499d947f3c6387e7ecd4ee8 RTC:125361 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16852 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Tested-by: Jenkins Server
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/initservice/initserviceif.H37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/include/usr/initservice/initserviceif.H b/src/include/usr/initservice/initserviceif.H
index e475dadb5..c8d98ce35 100644
--- a/src/include/usr/initservice/initserviceif.H
+++ b/src/include/usr/initservice/initserviceif.H
@@ -39,17 +39,38 @@ namespace INITSERVICE
{
/**
- * Priority scheme, if needed
+ * Priority scheme:
+ * The message queue will be sorted in ascending priority order, meaing a
+ * process registering with a priority of zero will be notified first.
+ *
+ * There are two ranges of callback priorities supported.
+ *
+ * 1. Pre Memory flush callback priorities are in the range 0-127 and
+ * will occur before the memory has been flushed to pnor.
+ *
+ * 2. Post memory flush callback priorities are in the range 127-255,
+ * and are signaled after the memory has been flushed to pnor.
+ *
+ * NOTE: The final call back for systems which support IPMI should be
+ * POST_MEM_FLUSH_NOTIFY_LAST since it will trigger a power off
+ * request to the BMC.
+ *
*/
enum EventPriority_t
{
- LOWEST_PRIORITY = 0, //!<< Notify last, LIFO order
- CONSOLE_PRIORITY = LOWEST_PRIORITY, //!<< Shutdown Console
- INTR_PRIORITY = 1, //!<< Shutdown INTR
- MBOX_PRIORITY = 2, //!<< Shutdown MBOX
- NO_PRIORITY = 16, //!<< No dependency / dont' care, LIFO order
- HIGHEST_PRIORITY = 127, //!<< Notify first, LIFO order
- POST_MEM_FLUSH_START_PRIORITY = 128, //!<< Post Mem Flush callbacks
+ NOTIFY_FIRST = 0,
+ HIGHEST_PRIORITY = NOTIFY_FIRST,
+ NO_PRIORITY = 16,
+ MBOX_PRIORITY = 17,
+ INTR_PRIORITY = 18,
+ LOWEST_PRIORITY = 127,
+ CONSOLE_PRIORITY = LOWEST_PRIORITY,
+ LAST_PRE_MEM_FLUSH_PRIORITY = LOWEST_PRIORITY,
+
+ HIGHEST_POST_MEM_FLUSH_PRIORITY = 128, // 1st post mem flush callback
+ PNOR_RP_PRIORITY = HIGHEST_POST_MEM_FLUSH_PRIORITY,
+ POST_MEM_FLUSH_NOTIFY_LAST = 255
+
};
/**
OpenPOWER on IntegriCloud