Chinaunix首页 | 论坛 | 博客
  • 博客访问: 504002
  • 博文数量: 168
  • 博客积分: 62
  • 博客等级: 民兵
  • 技术积分: 442
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-30 11:45
文章分类

全部博文(168)

文章存档

2016年(2)

2015年(19)

2014年(98)

2013年(22)

2012年(6)

2011年(21)

分类: LINUX

2013-10-30 13:17:20

2009/12/6 XingChao Wang @gmail.com> 

> 在组调度中(用户组或cgroup组),计算某个schedule entity的time slice要从当前的cfs_rq开始算起,遍历其parent 
> task group直到rq->cfs_rq为止。  这个过程可以看成是对cpu时间依据组权重分配的逆过程。 

> 对这个过程不太确定,有熟悉这部分的朋友吗? 

> CFS group scheduling() 有 句话是这么解释的: 

"As the process runs, its runtime statistics are collected as usual, but 
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逐渐向上被蚕食。 

阅读(2120) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~