WATCHDOG_DebugSop¶
REVISION HISTORY¶
| Revision No. | Description |
Date |
|---|---|---|
| 1.0 | 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的操作流程,对于启动过程涉及的每个阶段需要搞清楚以下几个问题
-
本阶段是否启动了watchdog
-
本阶段启动watchdog的时间节点以及设置的timeout时长
-
本阶段是否有喂狗操作以及喂狗周期
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的时候,请先提供上述几个步骤的结果。