Linux内核代码的哪一部分负责实现LRU?

时间:2015-01-28 10:33:59

标签: linux kernel lru

我一直在阅读源代码文件中的文档和注释,但无法确定在最新版本的内核中负责实现LRU的确切函数/代码。我想稍微修改一下,这就是为什么我要找它。

我发现内核维护活动和非活动列表。这段代码在哪里?

1 个答案:

答案 0 :(得分:2)

假设内核v3.18,大多数与LRU相关的代码都在mm/swap.c中。如果你看一下这个文件,你可能会对许多函数感兴趣。例如:

void lru_cache_add_active_or_unevictable(struct page *page,
                                         struct vm_area_struct *vma)

请参阅:http://lxr.free-electrons.com/source/mm/swap.c#L660

mm中的其他文件也是相关的。尝试查看与Linux虚拟内存(通常缩写为“vm”)子系统相关的文件,以及名称中带有“swap”的文件。

许多关于Linux LRU内容的文献已经过时,正如您所发现的那样。一般概念可能是相同的,但它们已经重命名/移动了很多东西。