进程t即将获得CPU控制权
汇总进程t在可执行队列上所等候时间的综合;更新进程t获得CPU控制权的时间戳
static inline void sched_info_arrive(task_t *t)
{
unsigned long now = jiffies, diff = 0;
struct runqueue *rq = task_rq(t);
if (t->sched_info.last_queued)
diff = now - t->sched_info.last_queued;
sched_info_dequeued(t);
t->sched_info.run_delay += diff;
t->sched_info.last_arrival = now;
t->sched_info.pcnt++;
if (!rq)
return;
rq->rq_sched_info.run_delay += diff;
rq->rq_sched_info.pcnt++;
}
task_struct.sched_info.last_queued
when we were last queued to run(最近一次加入runqueue的时间)
task_struct.sched_info.run_delay
time spent waiting on a runqueue(每一次进入runqueue到得到CPU控制权的时间间隔的总和)
task_struct.sched_info.pcnt
# of timeslices run on this cpu
汇总进程t在可执行队列上所等候时间的综合;更新进程t获得CPU控制权的时间戳
static inline void sched_info_arrive(task_t *t)
{
unsigned long now = jiffies, diff = 0;
struct runqueue *rq = task_rq(t);
if (t->sched_info.last_queued)
diff = now - t->sched_info.last_queued;
sched_info_dequeued(t);
t->sched_info.run_delay += diff;
t->sched_info.last_arrival = now;
t->sched_info.pcnt++;
if (!rq)
return;
rq->rq_sched_info.run_delay += diff;
rq->rq_sched_info.pcnt++;
}
task_struct.sched_info.last_queued
when we were last queued to run(最近一次加入runqueue的时间)
task_struct.sched_info.run_delay
time spent waiting on a runqueue(每一次进入runqueue到得到CPU控制权的时间间隔的总和)
task_struct.sched_info.pcnt
# of timeslices run on this cpu