HardBirch

rmqueue()函数函数index变量理解

时间:10-03-29 栏目:系统技术篇 作者:鲁智森也有文化 评论:3 点击: 2,363 次

问:

在Linux内核mm/page_aloc.c文件中 alloc_pages()函数 -> __alloc_pages()函数 ->rmqueue()函数中语句:

index = (page - mem_map) - zone->offset; 
MARK_USED(index, curr_order, area);          

 

答:

  1. page - mem_map表示该页面在mem_map中的偏移量,而zone->offset又表示该zone中的起始地址在mem_map中的偏移量,所以(page - mem_map) - zone->offset表示该页面在zone中的偏移量。
  2. MARK_USED就是修改该zone上相应order中位图。具体可以参见ulk。

声明: 本文由( 鲁智森也有文化 )原创编译,转载请保留链接: rmqueue()函数函数index变量理解

rmqueue()函数函数index变量理解:目前有3 条留言

  1. 地板
    wangzhen11aaa:

    page是该zone在mem_map中的一个page值,zone_offset是zone起始地址在mem_map中的偏移量?这样想减,如何取得该页面在zone中的偏移量page是在zone中有影射没有错,但是为什么会这样得到?
    才疏学浅,多有不了解之处。

    2011-05-12 21:33 [回复]
  2. 板凳
    do2jiang:

    回复 wangzhen11aaa 上面已经说得超级清楚了….

    2011-05-15 17:56 [回复]
  3. 沙发
    wangzhen11aaa:

    回复 do2jiang:[e03]明白了…..想通了感觉真好

    2011-05-16 21:14 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐