diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2018-04-20 15:05:13 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-05-02 13:53:54 -0400 |
commit | 2c84fc6ab09e3641957290eb8fbfd5b4ced64213 (patch) | |
tree | d2e21c521804cc94d17cf488f9c913e40369d0e4 | |
parent | 0df816533370518f648a5ff765f055dee20069bf (diff) | |
download | talos-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.H | 14 | ||||
-rw-r--r-- | src/usr/ipmi/HBconfig | 6 | ||||
-rw-r--r-- | src/usr/ipmi/ipmiwatchdog.C | 8 |
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 |