summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2018-04-20 15:05:13 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-05-02 13:53:54 -0400
commit2c84fc6ab09e3641957290eb8fbfd5b4ced64213 (patch)
treed2e21c521804cc94d17cf488f9c913e40369d0e4
parent0df816533370518f648a5ff765f055dee20069bf (diff)
downloadtalos-hostboot-2c84fc6ab09e3641957290eb8fbfd5b4ced64213.tar.gz
talos-hostboot-2c84fc6ab09e3641957290eb8fbfd5b4ced64213.zip
Enable super-long watchdog timer when console traces are enabled
When console traces are enabled, the boot takes significantly longer than usual. Our standard watchdog timeout of 2 minutes is not sufficient. Made the following changes: - Tied the enablement of the long timeout to the CONFIG flags for console traces - Increased the timeout to 1 hour (from 40 minutes) since this is lab only and false positives are the worst... - Added a couple clarifying traces to make future watchdog debug simpler Change-Id: I92bb0b07cb77a13cb390450999b285f2ad74168d CQ: SW425407 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57580 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/include/usr/ipmi/ipmiwatchdog.H14
-rw-r--r--src/usr/ipmi/HBconfig6
-rw-r--r--src/usr/ipmi/ipmiwatchdog.C8
3 files changed, 18 insertions, 10 deletions
diff --git a/src/include/usr/ipmi/ipmiwatchdog.H b/src/include/usr/ipmi/ipmiwatchdog.H
index 56ba1300c..324aa86ef 100644
--- a/src/include/usr/ipmi/ipmiwatchdog.H
+++ b/src/include/usr/ipmi/ipmiwatchdog.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2016 */
+/* Contributors Listed Below - COPYRIGHT 2014,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -45,19 +45,15 @@ namespace IPMIWATCHDOG
/**
* @brief the default watchdog countdown setting it to 120 seconds.
*
- * @TODO RTC:124499 revisit after performace improvments
- *
*/
// The config option CONFIG_BMC_IPMI_LONG_WATCHDOG allows a tester to use a
// watchdog timer that is several times more than what a customer would desire
-// to aid in testing only. This option was initially envisioned for use with
-// tracelite enabled, which greatly lengthens IPL time causing the watchdog
-// timer to timeout. However this option could have other uses, so its name
-// is left generic so as not imply the limited use with tracelite alone.
+// to aid in testing only. This option will be automatically set whenever any
+// kind of console tracing is enabled.
#ifdef CONFIG_BMC_IPMI_LONG_WATCHDOG
-const uint16_t DEFAULT_WATCHDOG_COUNTDOWN = 2400;
+const uint16_t DEFAULT_WATCHDOG_COUNTDOWN = 3600; //60 minutes
#else
-const uint16_t DEFAULT_WATCHDOG_COUNTDOWN = 120;
+const uint16_t DEFAULT_WATCHDOG_COUNTDOWN = 120; //2 minutes
#endif
/**
diff --git a/src/usr/ipmi/HBconfig b/src/usr/ipmi/HBconfig
index 0980a3eb2..f0c4281f9 100644
--- a/src/usr/ipmi/HBconfig
+++ b/src/usr/ipmi/HBconfig
@@ -8,3 +8,9 @@ config BMC_BT_LPC_IPMI
depends on BMC_IPMI
help
Determines if the BMC uses the LPC bus for block-transfer IPMI traffic
+
+config BMC_IPMI_LONG_WATCHDOG
+ default y if CONSOLE_OUTPUT_TRACE || CONSOLE_TRACE_LITE
+ depends on BMC_IPMI
+ help
+ Sets watchdog default timer to several times normal for debugging
diff --git a/src/usr/ipmi/ipmiwatchdog.C b/src/usr/ipmi/ipmiwatchdog.C
index e232569a6..3efdbfbb7 100644
--- a/src/usr/ipmi/ipmiwatchdog.C
+++ b/src/usr/ipmi/ipmiwatchdog.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2016 */
+/* Contributors Listed Below - COPYRIGHT 2014,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -90,6 +90,11 @@ errlHndl_t setWatchDogTimer( const uint16_t i_countdown_secs,
data[4] = init_countdown_lsb; // byte 5 initial countdown timer LSByte
data[5] = init_countdown_msb; // byte 6 initial countdown timer MSByte
+ IPMI_TRAC( "setWatchDogTimer : sec=%d, use=%d, act=%d, clr=%d",
+ i_countdown_secs,
+ i_timer_use,
+ i_timer_action,
+ i_timer_clr_flag );
return IPMI::send(IPMI::set_watchdog(), len, data);
}
@@ -107,6 +112,7 @@ errlHndl_t resetWatchDogTimer()
do
{
+ IPMI_TRAC( "resetWatchDogTimer" );
// Don't worry about the return just send the msg over
// If there is an error during the reset
OpenPOWER on IntegriCloud