schedule -> dequeue_task -> sched_info_dequeued
static inline void sched_info_dequeued(struct rq *rq, struct task_struct *t)
{
unsigned long long now = rq_clock(rq), delta = 0;
if (unlikely(sched_info_on()))
sched_info_on 在CONFIG_SCHEDSTATS 与 CONFIG_TASK_DELAY_ACCT 为真
if (t->sched_info.last_queued)
delta = now - t->sched_info.last_queued;
最后一次入队与现在之间的延迟
sched_info_reset_dequeued(t);
清零last_queued
t->sched_info.run_delay += delta;
rq_sched_info_dequeued(rq, delta);
对pre_task于rq 的run_delay
求和,run_delay目前来看是入队与出队之间的延迟,但是此函数本意是计算入队与占用cpu之间的延迟,
应该还需要减去task的实际运行时间,不知道里面什么实现原理。
}