Chinaunix
标题:
为什么要分配连续物理页面呢? 为了增加cache命中么?
[打印本页]
作者:
wangzhen11aaa
时间:
2012-06-21 09:45
标题:
为什么要分配连续物理页面呢? 为了增加cache命中么?
1、 在free_pages[]数组中所构成的buddy管理系统,是为了增加命中么。
2、还有在释放页面free_pages(addr ,order).地址倒是好获得,但是这个order是如何保存下来的呢?也就是说释放页面块的时候,这个order是通过怎样的计算来的,还是前面申请的时候,有某个变量保存了此值?
作者:
azfa123
时间:
2012-06-21 11:11
本帖最后由 azfa123 于 2012-06-21 11:16 编辑
个人理解:
1.内核低端映射采用直接映射(地址就是连续的),一次全部映射好,以后直接用,当然比用的时候再临时映射刷TLB来的好使。此外DMA要是要求空间多,物理地址连续,不连续它没法玩。有这样需求以及设计思路,才有了伙伴关系。不然我想位图就差不多了,要几个分几个空的(无需连续),自己映射应该就可以干活了。
简单点:要连续,才要伙伴关系,所以就不存在伙伴关系管理的页面为什么要连续的疑问了。
2.多大空间,申请释放都是程序员所为,不存在不知道大小。
作者:
fayewangfans
时间:
2012-07-11 18:40
内存是自己要求的分配的,大小自己应该知道,释放的时候order也应该是那个值。忘了看LS的回复了,LS说的很好,补充一句,内核接受来自用户的参数会选择既不信任的态度,对他检查又检查,不行就直接返回。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2