Skip to content

[others]: softlockup和hung task的检测疑惑 #103

Open

Description

@Pines00

你的问题

  1. softlockup和hungtask的检测都用了watchdog旁路检测,而没有挂载sched_switch,这个是怎么考虑的?如果考虑的sched_switch调用频率过高影响性能,有测过吗?
  2. 基于watchdog检测,分别依赖kernel.hung_task_timeout_secs和kernel.watchdog_thresh,这两个参数决定了softlockup和hungtask的执行频率。对于这两个参数,有什么建议吗?或者有没有一个经验值?

Activity

  1. hao-lee commented on Jan 13, 2026

    @hao-lee
    Contributor

    以hungtask为例,我们是在内核『检测到hungtask并进行处理的』函数里插入的钩子,所以只有hungtask确实存在时,钩子才会执行,整个原理没有使用对调度子系统插入钩子。参见:

    SEC("tracepoint/sched/sched_process_hang")

  2. Pines00 commented on Jan 13, 2026

    @Pines00
    Author

    以hungtask为例,我们是在内核『检测到hungtask并进行处理的』函数里插入的钩子,所以只有hungtask确实存在时,钩子才会执行,整个原理没有使用对调度子系统插入钩子。参见:

    huatuo/bpf/hungtask.c

    Line 23 in 2830d80

    SEC("tracepoint/sched/sched_process_hang")

    没有基于调度系统检测,用内核自带的hung_task检测,看代码检测频率依赖kernel.hung_task_timeout_secs,参数有建议值吗?还一个关于softlockup的疑问,我看之前是基于watchdog_timer_fn+offset的钩子,这个offset所在内存地址是变量watchdog_touch_ts(因为我试过通过偏移读它来判断softlockup,数据似乎有问题)?

  3. Pines00 commented on Jan 14, 2026

    @Pines00
    Author

    friendly ping @hao-lee

  4. hao-lee commented on Jan 15, 2026

    @hao-lee
    Contributor

    hung_task_timeout_secs参数我们没有建议值。
    现在我们对softlockup更换了钩子点,已经不再依赖于偏移量了。现在的插入点是add_taint,这个点位在softlock流程里会走到。

  5. hao022 commented on Jan 23, 2026

    @hao022
    Member

    @Pines00 ebpf hook 点在出现hungtask时被触发,而不是被定时的触发。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions