免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2119 | 回复: 2
打印 上一主题 下一主题

[进程管理] CONFIG_FAIR_GROUP_SCHED 根据cfs_rq获取rq [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-06 13:04 |只看该作者 |倒序浏览
请问kernel中为什么会根据CONFIG_FAIR_GROUP_SCHED 采用两种获取rq的方式,这两种方式有什么不同的地方,分别适用什么场景?

kernel/sched/fair.c
246 #ifdef CONFIG_FAIR_GROUP_SCHED
247   
248 /* cpu runqueue to which this cfs_rq is attached */
249 static inline struct rq *rq_of(struct cfs_rq *cfs_rq)
250 {
251     return cfs_rq->rq;
252 }

372 #else   /* !CONFIG_FAIR_GROUP_SCHED */
373     
379 static inline struct rq *rq_of(struct cfs_rq *cfs_rq)
380 {
381     return container_of(cfs_rq, struct rq, cfs);
382 }  

论坛徽章:
0
2 [报告]
发表于 2015-08-26 18:38 |只看该作者
本帖最后由 l4rmbr 于 2015-08-26 18:40 编辑

回复 1# liglei

先给你举个例子。中央有某个政策要下发到地方去试点执行,它只要把该文件下发到各省级行政单位就行了。
问题是,省级行政单位体量可有差别啊。像上海,是省级行政单位,但也是一个城市;像河北省,是省级行政单位,
它下面还有多个城市。但中央不管,对它来说,它只要(也只能,要不要你地方政府何用?)把该文件下发到各省级
行政单位就行了。对上海来说,就简单了,就在上海市区试点运行;对河北省来说,它要选择一个城市来试点。
如果是要在县一级试点呢,那就是上面的过程,在进一步在县级选择。

组调度的情况下, rq 上看到的是 sched_entity,  这个 entity 可能是单个进程, 也可能是一个进程组(包含多个进程)。
但 rq 不管,它只有 sched_entity 这一个整体概念, 对它来说, 它要在它看到的队列(即 rq->cfq) 选定某个 sched_entity 来运行;
而真正能在 CPU 上运行的,是单个进程,所以,如果 sched_entity 是单个进程,那么搞定,就是这个进程;
如果 sched_entity 是个进程组,要在进程组中选择,这个选择是进程组内部的行为了。 所以, 对于进程组来说,它又有一级cfq,
要在这一级 cfq 上选一个 sched_entity.  假设此时, sched_entity 是一个进程,那么搞定;否则,继续递归下去。

所以,在没有组调度的情况下, 所有 sched_entity 都是进程; 在有组调度的情况下,存在层级,所以有多层cfq.

   

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
3 [报告]
发表于 2015-08-26 20:44 |只看该作者
赞!通俗易懂的解释
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP