Linux内核中的页面交换

时间:2013-09-02 12:03:22

标签: linux kernel block paging

我知道Linux内核有页面缓存来保存最近使用的页面和块。

我知道这有助于节省时间,因为Linux不需要从较低内存中获取这些块。当缓存中缺少某个块时,Linux会从较低级别的内存中请求它(通过使用某些函数,如submit_bio)并获取块对应的页面。

我想在Linux内核(3.10)中找到它在页面缓存中检查块是否存在的位置,如果它找不到这个页面,它会从块i / o层中带来块。

我在代码中搜索这样的内容:

if( block's page exists in the cache )
    return this page
else 
    bring the page of the searched block and return it

任何人都可以发布链接到内核中做出此决定的地方吗?

1 个答案:

答案 0 :(得分:0)

开始寻找的最佳位置将是mm.h:http://lxr.linux.no/linux+v3.10.10/include/linux/mm.h

然后看看mm目录,其中包含page_io.c等文件:http://lxr.linux.no/linux+v3.10.10/mm/page_io.c

请记住,任何特定于体系结构的内容都可能会在您正在查看的系统的arch目录中定义。例如,以下是x86页表管理代码:http://lxr.linux.no/linux+v3.10.10/arch/x86/mm/pgtable.c

祝你好运!请记住,您可能不会像您提供的示例代码那样找到一段干净的代码。