看门狗设备驱动全解析
1. 预超时和调节器处理
在Linux内核的多个子系统中,调节器(governor)的概念屡见不鲜,像热调节器、CPU频率调节器,如今还有看门狗调节器。调节器本质上是一种驱动程序,用于实现策略管理,有时以算法的形式呈现,对系统的某些状态或事件做出响应。
虽然各子系统实现调节器驱动的方式可能有所不同,但核心思想是一致的。调节器通过唯一的名称和正在使用的调节器(策略管理器)来识别,并且可以动态更改,通常通过sysfs接口进行操作。
要在Linux内核中添加对看门狗预超时和调节器的支持,可启用 CONFIG_WATCHDOG_PRETIMEOUT_GOV 内核配置选项。内核中实际上有两个看门狗调节器驱动: drivers/watchdog/pretimeout_noop.c 和 drivers/watchdog/pretimeout_panic.c ,它们的唯一名称分别是 noop 和 panic 。可以通过启用 CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP 或 CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC 来默认使用其中一个。
本部分的主要目标是将预超时事件传递给当前活动的看门狗调节器。这可以通过 watchdog_notify_pretimeout() 接口实现,其原型如下:
超级会员免费看
订阅专栏 解锁全文
1169

被折叠的 条评论
为什么被折叠?



