Messages in this thread | | | Date | Tue, 20 Oct 2020 13:57:03 -0700 | Subject | [PATCH v2 0/1] Touch kernel watchdog with sched count | From | Xi Wang <> |
| |
The main purpose of kernel watchdog is to test whether scheduler can still schedule tasks on a cpu. In order to reduce latency / jitter from periodically invoking watchdog reset in thread context, we can simply test if pick_next_task can run. This is done by forcing resched and checking rq->sched_count. Compared to actually resetting watchdog from cpu stop / migration threads, we lose coverage on: a migration thread actually get picked and we actually context switch to the migration thread. These steps are unlikely to silently fail. The change would provide nearly the same level of protection with less overhead.
With this patch we can still switch back to the old method with the boot option watchdog_touch_with_thread. However code for the old method can be completely removed in the future.
v2: - Use sched_count instead of having sched calling into watchdog code - Remove the sysctl and add a boot option, which can be removed later - Changed the subject line
Xi Wang (1): sched: watchdog: Touch kernel watchdog with sched count
include/linux/sched.h | 4 ++++ kernel/sched/core.c | 23 ++++++++++++++++++++-- kernel/sched/sched.h | 6 +++++- kernel/watchdog.c | 44 +++++++++++++++++++++++++++++++++++++------ 4 files changed, 68 insertions(+), 9 deletions(-)
-- 2.29.0.rc1.297.gfa9743e501-goog
| |