免费注册 查看新帖 |

Chinaunix

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

[进程管理] 关于组调度的tg->shares疑问。。。 [复制链接]

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-29 15:10 |只看该作者 |倒序浏览
这个函数是何含义?(SMP时使用)
求指点,谢谢!
  1. static long calc_cfs_shares(struct cfs_rq *cfs_rq, struct task_group *tg)
  2. {
  3.     long tg_weight, load, shares;

  4.     tg_weight = calc_tg_weight(tg, cfs_rq);
  5.     load = cfs_rq->load.weight;

  6.     shares = (tg->shares * load);
  7.     if (tg_weight)
  8.         shares /= tg_weight;

  9.     if (shares < MIN_SHARES)
  10.         shares = MIN_SHARES;
  11.     if (shares > tg->shares)
  12.         shares = tg->shares;

  13.     return shares;
  14. }
复制代码

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2015-09-29 20:00 |只看该作者


load_weight = atomic_read(&tg->load_weight);  
load_weight -= cfs_rq->load_contribution;  
load_weight += load;  
求解释啊

论坛徽章:
1
水瓶座
日期:2013-10-14 10:55:54
3 [报告]
发表于 2016-04-07 23:33 |只看该作者
每个cgroup的shares默认都是1024,一个cgroup的进程是可以分配到每个cpu上的,所以每个tick都需要重新计算tg在这个cpu上的shares,会决定它的load.weight。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP