Add disabling HW watchdog during boot for fast-reboot and warm-reboot (#4927)

* Add disabling HW watchdog during boot for fast-reboot and warm-reboot case

* typo
This commit is contained in:
Sujin Kang 2020-07-09 16:14:06 -07:00 committed by Qi Luo
parent 2731571dc9
commit b4452edb8a
4 changed files with 60 additions and 1 deletions

View File

@ -237,6 +237,11 @@ sudo LANG=C cp $IMAGE_CONFIGS/warmboot-finalizer/finalize-warmboot.sh $FILESYSTE
sudo LANG=C cp $IMAGE_CONFIGS/warmboot-finalizer/warmboot-finalizer.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM sudo LANG=C cp $IMAGE_CONFIGS/warmboot-finalizer/warmboot-finalizer.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
echo "warmboot-finalizer.service" | sudo tee -a $GENERATED_SERVICE_FILE echo "warmboot-finalizer.service" | sudo tee -a $GENERATED_SERVICE_FILE
# Copy watchdog-control files
sudo LANG=C cp $IMAGE_CONFIGS/watchdog-control/watchdog-control.sh $FILESYSTEM_ROOT/usr/local/bin/watchdog-control.sh
sudo LANG=C cp $IMAGE_CONFIGS/watchdog-control/watchdog-control.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
echo "watchdog-control.service" | sudo tee -a $GENERATED_SERVICE_FILE
# Copy rsyslog configuration files and templates # Copy rsyslog configuration files and templates
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.service $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.sh $FILESYSTEM_ROOT/usr/bin/ sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.sh $FILESYSTEM_ROOT/usr/bin/

View File

@ -0,0 +1,10 @@
[Unit]
Description=watchdog control service
After=swss.service
[Service]
Type=simple
ExecStart=/usr/local/bin/watchdog-control.sh
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,44 @@
#! /bin/bash
VERBOSE=no
WATCHDOG_UTIL="/usr/bin/watchdogutil"
function debug()
{
/usr/bin/logger "$0 : $1"
if [[ x"${VERBOSE}" == x"yes" ]]; then
echo "$(date) $0: $1"
fi
}
function getBootType()
{
# same code snippet in files/scripts/syncd.sh
case "$(cat /proc/cmdline)" in
*SONIC_BOOT_TYPE=warm*)
TYPE='warm'
;;
*SONIC_BOOT_TYPE=fastfast*)
TYPE='fastfast'
;;
*SONIC_BOOT_TYPE=fast*|*fast-reboot*)
TYPE='fast'
;;
*)
TYPE='cold'
esac
echo "${TYPE}"
}
function disable_watchdog()
{
# Obtain boot type from kernel arguments
BOOT_TYPE=`getBootType`
if [[ -x ${WATCHDOG_UTIL} ]]; then
debug "Disabling Watchdog during bootup after $BOOT_TYPE"
${WATCHDOG_UTIL} disarm
fi
}
disable_watchdog

@ -1 +1 @@
Subproject commit 16a33f2fb67e9da15ecc7780daa6b15408665539 Subproject commit 9715244d715ca08b54595364c0386111bce7ef02