# 调试看门狗超时问题

看门狗 (WD) 是固定长度的计数器，用于从硬件或软件严重故障恢复系统。除非系统定期投喂看门狗定时器，否则系统会判定发生严重故障，并根据触发的看门狗重置子系统或整个系统。

以下是不同类型的看门狗实现方式：

> 
> 
> - 硬件看门狗
> - 软件看门狗
> - Bark
> - Bite

下表总结了不同类型的看门狗实现。

表：看门狗实现

| 看门狗类型 | 超时持续时间（以秒为单位） | 所有者 | 超时后 | 结果 |
| --- | --- | --- | --- | --- |
| 非安全看门狗 Bark | 11 | HLOS | IRQ 至 Qualcomm TEE | HLOS 归为 panic |
| 非安全看门狗 Bite | 12 | HLOS | 快速中断请求 (FIQ) 至 Qualcomm TEE | Qualcomm TEE 断言 PS\_HOLD |
| 安全看门狗 Bark | 6 | Qualcomm TEE | FIQ 至 Qualcomm TEE | Qualcomm TEE 只投喂安全看门狗 |
| 安全看门狗 Bite | 22 | Qualcomm TEE | 将 PS\_HOLD 置为有效 | PMIC 复位系统 |

系统同时使用硬件和软件看门狗。例如，modem DSP (mDSP) 实现软件和硬件看门狗。硬件看门狗模块可确保处理器处于活动状态，包含一个从预设值开始倒计时的定时器。如果相应的 CPU 核心未重置该定时器，定时器最终会计数到 0（零）并触发看门狗超时。

## 应用处理器 CPU 的看门狗

**非安全硬件看门狗**

- HLOS 每 10 秒触发一次定时器事件来投喂非安全硬件看门狗。如果 HLOS 持续 11 秒未投喂非安全看门狗，则非安全看门狗 bark 会触发，HLOS 必须对此进行处理。如果 HLOS 无法处理它，HLOS 会陷入 panic。
- 如果 HLOS 无法处理非安全看门狗 bark，则会触发非安全看门狗 bite，并将其发送给 Qualcomm TEE，从而导致 Qualcomm TEE 陷入致命错误。
- 在 Qualcomm Linux 中，上游看门狗驱动程序位于 `drivers/watchdog/qcom-wdt.c` 路径。以下是看门狗配置文件：

/# mount -o remount,rw /usr/
        
        /# cat /usr/lib/systemd/system.conf.d/00-systemd-conf.conf
        Copy to clipboard

    您可以使用以下值修改配置文件：

RuntimeWatchdogSec=30
        
        ShutdownWatchdogSec=10
        Copy to clipboard

有关配置文件值的更多信息，请参阅以下内容：

- [System and session service manager configuration file](https://manpages.debian.org/jessie/systemd/systemd-system.conf.5.en.html)
- [Linux watchdog driver API](https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html)

**安全硬件看门狗**

- Qualcomm TEE 每 6 秒以快速中断请求 (FIQ) 的形式触发一次安全看门狗 bark。Qualcomm TEE 中的 FIQ 处理程序会投喂安全硬件看门狗。此问题不是错误或致命问题。
- 如果 Qualcomm TEE 无法在 22 秒内处理安全看门狗 bark，则安全看门狗 bite 将超时。随后，PMIC 会断言 PS\_HOLD 引脚，并最终复位整个系统。

此功能的完整功能可供具有授权访问权限的许可开发人员使用。有关调试看门狗问题的更多信息，请参阅 [Qualcomm Linux Debug Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70023-12A/general_system_debugging.html#watchdog_timeout)。

Last Published: Jan 20, 2026