免费注册 查看新帖 |

Chinaunix

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

[内存管理] 请教伙伴算法的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-23 18:21 |只看该作者 |倒序浏览
请问下我看资料说 伙伴算法的每次调用都会“弄脏”硬件高速缓存,一直不太明白,
请问是为什么呢?

谢谢

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
2 [报告]
发表于 2015-12-24 08:45 |只看该作者
啥资料?原话是怎么写的?

论坛徽章:
0
3 [报告]
发表于 2015-12-24 09:37 |只看该作者
深入理解linux内核 中讲到slab分配器时写到:

硬件高速缓存的高性能又是尽可能地限制对伙伴系统分配器调用的另一个理由,因为对伙伴系统函数的每次调用都“弄脏”硬件高速缓存,所以增加了对内存的平均访问时间。内核函数对硬件高速缓存的影响就是所谓的函数“足迹(footprint)”,其定义为函数结束时重写高速缓存的百分比。显而易见,大的“足迹”导致内核函数刚执行之后较慢的代码执行,因为硬件高速缓存此时填满了无用的信息

yjh777 发表于 2015-12-24 08:45
啥资料?原话是怎么写的?

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
4 [报告]
发表于 2015-12-24 14:44 |只看该作者
哦,没太明白具体原因;

不知道伙伴系统的函数 为什么会导致写很多无用信息到 硬件高速缓存,,
上网查查去,,

论坛徽章:
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
5 [报告]
发表于 2015-12-24 15:56 |只看该作者
是指每次分配一个page,并且需要清零的情况下zero掉整个page,会invalid掉整个hw cache么?
(相对的,slab每次只分配一个object,初始化最多invalid几个cache line,或者通过批量初始化来抵消掉这种开销?)

论坛徽章:
0
6 [报告]
发表于 2015-12-24 17:32 |只看该作者
你是假设要zero掉整个page,分配并不一定要zero吧?
nswcfd 发表于 2015-12-24 15:56
是指每次分配一个page,并且需要清零的情况下zero掉整个page,会invalid掉整个hw cache么?
(相对的,sla ...

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
7 [报告]
发表于 2015-12-24 20:07 |只看该作者
ppcc800330 发表于 2015-12-24 17:32
你是假设要zero掉整个page,分配并不一定要zero吧?



1、buddy system 是基于page的,相比于slab 每次操作的foot print过大,而且大部分情况下会导致TLB失效。
2、很多时候大家说的劣势都是指最坏情况下的场景。

参考资料:
https://people.kth.se/~roand/half_fit.pdf
http://www.cs.uky.edu/~raphael/courses/CS585/chap07.refs.txt

评分

参与人数 1信誉积分 +10 收起 理由
ppcc800330 + 10

查看全部评分

论坛徽章:
0
8 [报告]
发表于 2015-12-25 09:37 |只看该作者
1:buddy system 是基于page的,但如果分配页面,但只访问很小一部分,应该只会导致所操作的很小一部分数据cache失效。
2:TLB miss确实会增加。但描述好像跟这个无关。
3:这里的“foot print” 具体是什么含义,有点不太明白。

瀚海书香 发表于 2015-12-24 20:07
1、buddy system 是基于page的,相比于slab 每次操作的foot print过大,而且大部分情况下会导致TLB失 ...

论坛徽章:
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
9 [报告]
发表于 2015-12-25 10:24 |只看该作者
foot print简单的说就是touch的memory范围的大小,一个page的footprint通常比一个object要大得多。(除非是page-size级别的大object).

讨论fooprint的潜台词就是对 cache/tlb的影响,这么大的memory range全部被cache起来需要消耗多少cache line/tlb entry等。

如果只访问一个page的一小部分(当然是种严重浪费),那就跟只访问一个object的开销差不多,实际上slab object本身就是page的一部分。

评分

参与人数 1信誉积分 +20 收起 理由
ppcc800330 + 20

查看全部评分

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
10 [报告]
发表于 2015-12-26 14:50 |只看该作者
明白了,谢谢 @nswcfd 解释!

    所以系统在伙伴基础上又有了 slab slub  ... 来减轻副作用,,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP