### 你的问题 1. softlockup和hungtask的检测都用了watchdog旁路检测,而没有挂载sched_switch,这个是怎么考虑的?如果考虑的sched_switch调用频率过高影响性能,有测过吗? 2. 基于watchdog检测,分别依赖kernel.hung_task_timeout_secs和kernel.watchdog_thresh,这两个参数决定了softlockup和hungtask的执行频率。对于这两个参数,有什么建议吗?或者有没有一个经验值?
Activity
hao-lee commentedon Jan 13, 2026
以hungtask为例,我们是在内核『检测到hungtask并进行处理的』函数里插入的钩子,所以只有hungtask确实存在时,钩子才会执行,整个原理没有使用对调度子系统插入钩子。参见:
huatuo/bpf/hungtask.c
Line 23 in 2830d80
Pines00 commentedon Jan 13, 2026
没有基于调度系统检测,用内核自带的hung_task检测,看代码检测频率依赖kernel.hung_task_timeout_secs,参数有建议值吗?还一个关于softlockup的疑问,我看之前是基于watchdog_timer_fn+offset的钩子,这个offset所在内存地址是变量watchdog_touch_ts(因为我试过通过偏移读它来判断softlockup,数据似乎有问题)?
Pines00 commentedon Jan 14, 2026
friendly ping @hao-lee
hao-lee commentedon Jan 15, 2026
hung_task_timeout_secs参数我们没有建议值。
现在我们对softlockup更换了钩子点,已经不再依赖于偏移量了。现在的插入点是add_taint,这个点位在softlock流程里会走到。
hao022 commentedon Jan 23, 2026
@Pines00 ebpf hook 点在出现hungtask时被触发,而不是被定时的触发。