5、watchdog_timer_fn函数实体 /* 每隔4s会执行一次 */staticenumhrtimer_restartwatchdog_timer_fn(structhrtimer *hrtimer){unsignedlongtouch_ts = __this_cpu_read(watchdog_touch_ts);intduration;/* 对hrtimer_interrupts加1操作 */watchdog_interrupt_count;duration = is_softlockup(touch_ts);if(unlike...
在开启soft lockup时,已经给每个CPU启动了一个hrtimer定时器,在定时器中断处理函数watchdog_timer_fn中更新hrtimer_interrupts变量。 检测hard lockup的原理是: 在CPU0的watchdog_timer_fn函数中检测CPU1的hrtimer_interrupts变量是否更新过; 若没更新,意味着CPU1不能响应中断,出现了hard lockup(CPU1检测CPU2、CPU2...
4、绑定hrtimer中断处理函数,watchdog_timer_fn是hrtimer的中断处理函数,以下是中断函数的注册过程:为每个CPU创建watchdog线程时会调用watchdog_enable函数。 static void watchdog_enable(unsigned int cpu) { struct hrtimer *hrtimer = &__raw_get_cpu_var(watchdog_hrtimer); /* 启动定时器 */ hrtimer_init(...
在上述流程中我们看到,只有softlockup_completion done之后,才会再次调用softlockup_fn()更新时间戳,如果softlockup_fn()函数一直未被执行,那么softlockup_completion将一直处于非done的状态,时间戳watchdog_touch_ts一直得不到更新。 而watchdog_timer_fn()继续往下执行,获取当前的cpu时间戳,对比cpu和watchdog_touch...
假设一种情形:watchdog_touch_ts被更新后,由于种种原因,hrtimer事件在相当长一段时间内未被执行,而后突然又被执行了,结果在这次突如起来的执行watchdog_timer_fn过程中,is_softlockup()函数发现当前时间戳 > watchdog_touch_ts + 2 * watchdog_thresh,故可以断定发生了softlockup。但是,有时,一个任务确实...
CentOS内核,对应的文件是/proc/sys/kernel/watchdog_thresh。 CentOS内核和标准内核还有一个地方不一样,就是处理CPU占用时间过长的函数,CentOS下是watchdog_timer_fn()函数。 如果你的内核是标准内核的话,可以通过修改/proc/sys/kernel/softlockup_thresh来修改超时的阈值 ...
hrtimer->function = watchdog_timer_fn; hrtimer_start(hrtimer, ms_to_ktime(wd_timer_period_ms), HRTIMER_MODE_REL_PINNED); 检测hardlockup 主要是利用NMI(不可屏蔽中断),基于PMU的NMI perf even,当内核关闭抢占和中断 ,cpu依然可以响应nmi中断,可以利用这以特性去检测hrtimer_interrupts是否更新 就可以判断...
Watchdog的运作原理基于两种不同的锁状态:soft lockup和hard lockup。在驱动中加入特定代码,如使用spinlock()实现关抢占,可触发soft lockup,此时系统中的[watchdog/x]线程无法被调度。中断处理函数kernel/watchdog.c/watchdog_timer_fn()会在特定条件下唤醒喂狗线程。通过分析流程图和源代码,我们...
hrtimer->function=watchdog_timer_fn;//设置定时器处理函数 return 0; } 看门狗定时器处理函数: 点击(此处)折叠或打开 static enum hrtimer_restart watchdog_timer_fn(struct hrtimer*hrtimer) { //获取计数watchdog_touch_ts,该计数在watchdog内核线程被调度时更新 ...
For Infineon XE164FN-40F — Watchdog Timer Simulation support for this peripheral or feature is comprised of: Dialog boxes which display and allow you to change peripheral configuration. These simulation capabilities are described below. Watchdog Timer Dialog ...