Skip to content

Commit

Permalink
Add disabling HW watchdog during boot for fast-reboot and warm-reboot (
Browse files Browse the repository at this point in the history
…#4927)

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

* typo
  • Loading branch information
sujinmkang authored and abdosi committed Aug 9, 2020
1 parent 517592a commit ff6cb6c
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 1 deletion.
5 changes: 5 additions & 0 deletions files/build_templates/sonic_debian_extension.j2
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,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
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
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/
Expand Down
10 changes: 10 additions & 0 deletions files/image_config/watchdog-control/watchdog-control.service
Original file line number Diff line number Diff line change
@@ -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
44 changes: 44 additions & 0 deletions files/image_config/watchdog-control/watchdog-control.sh
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion src/sonic-utilities

0 comments on commit ff6cb6c

Please sign in to comment.