在kernel / sched / core.c中,sched_init()调用init_rq_hrtick(rq)。 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。
但是hrtick函数,该函数由init_rq_hrtick()设置为回调函数 不定期调用。 你能告诉我为什么不调用回调函数吗?
我的内核版本是4.13.16