概述
- 如果启动参数没有设置tsc=reliable,系统认为tsc时钟源需要检查后能被使用
2.检查的方法是启动clocksource_watchdog
加入时钟源的时候,如果tsc时钟源不是reliable,则会在执行list_add(&cs->wd_list, &watchdog_list);,即将时钟源加入watchdog_list链表。
而启动watchdog的条件在函数clocksource_start_watchdog中
if (watchdog_running || !watchdog || list_empty(&watchdog_list))
即判断watchdog_list是否为空。
因此如果tsc不是reliable,则会启动clocksource_watchdog后台,是reliable则不会启动。
static void clocksource_enqueue_watchdog(struct clocksource *cs)
{
unsigned long flags;
spin_lock_irqsave(&watchdog_lock, flags);
if (cs->flags & CLOCK_SOURCE_MUST_VERIFY) {
/* cs is a clocksource to be watched. */
list_add(&cs->wd_list, &watchdog_list);
cs->flags &= ~CLOCK_SOURCE_WATCHDOG;
} else {
/* cs is a watchdog. */
if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
cs->flags |= CLOCK_SOURCE_VALID_FOR_HRES;
}
spin_unlock_irqrestore(&watchdog_lock, flags);
}
最后
以上就是冷艳服饰为你收集整理的linux 后台clocksource_watchdog 线程的启动条件的全部内容,希望文章能够帮你解决linux 后台clocksource_watchdog 线程的启动条件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复