diff options
author | Ananth N Mavinakayanahalli <ananth@in.ibm.com> | 2015-02-06 08:24:17 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-02-09 14:31:11 +1100 |
commit | 92366bd2844aace9681e2447c82a24e92eabc51c (patch) | |
tree | 191f592d9f9c2116cd1af2c30ad5e404f8d5d133 /hw/psi.c | |
parent | 739e6df1163301a200b604b5eefa00770f9fa44c (diff) | |
download | skiboot-92366bd2844aace9681e2447c82a24e92eabc51c.zip skiboot-92366bd2844aace9681e2447c82a24e92eabc51c.tar.gz skiboot-92366bd2844aace9681e2447c82a24e92eabc51c.tar.bz2 |
PSI: Report a PEL for PSI timeout
We currently just log an error when we don't find an active PSI link
15 minutes after it went down. Add a PEL log, with sufficient severity
so it gets pushed to the administrator.
V2:
Reset the timeout correctly to prevent error log flooding.
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Tested-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/psi.c')
-rw-r--r-- | hw/psi.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -32,6 +32,7 @@ #include <i2c.h> #include <timebase.h> #include <platform.h> +#include <errorlog.h> static LIST_HEAD(psis); static u64 psi_link_timer; @@ -44,6 +45,10 @@ static void psi_activate_phb(struct psi *psi); static struct lock psi_lock = LOCK_UNLOCKED; +DEFINE_LOG_ENTRY(OPAL_RC_PSI_TIMEOUT, OPAL_PLATFORM_ERR_EVT, OPAL_PSI, + OPAL_PLATFORM_FIRMWARE, + OPAL_UNRECOVERABLE_ERR_LOSS_OF_FUNCTION, OPAL_NA, NULL); + void psi_set_link_polling(bool active) { printf("PSI: %sing link polling\n", @@ -201,9 +206,10 @@ static void psi_link_poll(void *data __unused) now + secs_to_tb(PSI_LINK_RECOVERY_TIMEOUT); if (tb_compare(now, psi_link_timeout) == TB_AAFTERB) { - prerror("PSI: Timed out looking for a PSI link\n"); - - /* Log error to the host from here */ + log_simple_error(&e_info(OPAL_RC_PSI_TIMEOUT), + "PSI: Link timeout -- loss of FSP\n"); + /* Reset the link timeout and continue looking */ + psi_link_timeout = 0; } /* Poll every 10 seconds */ |