跳转至

WATCHDOG_DebugSop

REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 5/10/2025

    1. 系统启动过程中watchdog导致系统重启问题排查

    启动设备watchdog后,如果watchdog到达timeout时间前未能完成喂狗操作,那么watchdog将触发系统重启。可以根据喂狗操作的特点将这类问题初步归为两类:

    1.系统启动过程中watchdog导致系统重启

    这类问题的特点是系统从前一个阶段启动到另一个阶段的时候,由于各种问题,导致系统下一个阶段的喂狗操作未能及时完成,使得watchdog timeout触发系统重启。

    比如用户在uboot阶段启动watchdog, 之后从uboot启动kernel,但是由于一些原因导致启动过程卡在kernel起始阶段的某个环节而未能走到kernel watchdog驱动重置watchdog或者用户层喂狗操作阶段,导致watchdog触发系统重启。

    2.系统运行过程中watchdog导致系统重启

    这类问题的特点是系统处于平稳运行阶段,由于系统阻塞等问题使得周期性喂狗的进程无法被调度,从而喂狗失败导致watchdog timeout导致系统重启。

    比如在kernel阶段,系统开启一个进程用于每隔10s喂一次狗,由于系统阻塞喂狗操作的进程未能被调度执行,导致watchdog触发系统重启。

    1.1 梳理启动阶段watchdog操作流程图

    定位这类问题的核心是梳理清楚启动阶段watchdog的操作流程,对于启动过程涉及的每个阶段需要搞清楚以下几个问题

    1. 本阶段是否启动了watchdog

    2. 本阶段启动watchdog的时间节点以及设置的timeout时长

    3. 本阶段是否有喂狗操作以及喂狗周期

    watchdog配置相关问题

    1.2 打开各阶段的Debug log

    这类问题很多原因是因为系统卡在了某个阶段,所以打开各个阶段的Debug log能帮助我们更好的发现问题。

    比如kernel阶段,可以将loglevel设置为8。

    1.3 求助FAE

    求助FAE的时候,请先提供上诉步骤的结果。

    2. 系统运行过程中watchdog导致系统重启问题排查

    2.1 打开系统的debug log

    由于这类问题主要是系统阻塞导致的,原因各种各样没有统一定位问题的模板,解决这类问题的核心是复现问题并收集更多的日志,所以在复现问题的时候,尽量将可以打开的debug log给打开,这样能帮助我们更快的发现问题的原因。

    例如将kernel printk的基本设置为8。

    2.2 求助FAE

    求助FAE的时候,请先提供上述几个步骤的结果。