在 kernel/sched/core.c 中,init_rq_hrtick(rq) 由 sched_init() 调用。init_rq_hrtick(rq) 初始化 hrtick_timer 并指定到期时调用的回调函数。
01 static void init_rq_hrtick(struct rq *rq)
02 {
03 #ifdef CONFIG_SMP
04 rq->hrtick_csd_pending = 0;
05
06 rq->hrtick_csd.flags = 0;
07 rq->hrtick_csd.func = __hrtick_start;
08 rq->hrtick_csd.info = rq;
09 #endif
10
11 hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
*12 rq->hrtick_timer.function = hrtick;*
13 }
我设置 CONFIG_SCHED_HRTICK=y。
但是由 init_rq_hrtick() 设置为回调函数的 hrtick 函数不会定期调用。你能告诉我为什么不调用回调函数吗?
我的内核版本是 4.13.16