2009/12/6 XingChao Wang
> 在组调度中(用户组或cgroup组),计算某个schedule entity的time slice要从当前的cfs_rq开始算起,遍历其parent
> task group直到rq->cfs_rq为止。 这个过程可以看成是对cpu时间依据组权重分配的逆过程。
"As the process runs, its runtime statistics are collected as usual, but > task group直到rq->cfs_rq为止。 这个过程可以看成是对cpu时间依据组权重分配的逆过程。
> 对这个过程不太确定,有熟悉这部分的朋友吗?
> CFS group scheduling() 有 句话是这么解释的:
they are also propagated up the hierarchy so that its CPU usage is properly
reflected at each level."
se的time slice也应该反映在不同的level上。
举这样一个例子:
user A在cpu M上的cfs_rq Q要更新当前进程 current 其ideal runtime.
current在Q里的slice要在不同的level上有所体现。
1. 首先计算出current在Q里的time slice
2. 对于user A的调度实体,即current的parent,以上面算出的 slice,在其所在的cfs-rq,即CPU
M的runqueue的cfs_rq里重新计算其time slice.
简单得讲,把time_slice逐渐向上被蚕食。