我一直在阅读源代码文件中的文档和注释,但无法确定在最新版本的内核中负责实现LRU的确切函数/代码。我想稍微修改一下,这就是为什么我要找它。
我发现内核维护活动和非活动列表。这段代码在哪里?
答案 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内容的文献已经过时,正如您所发现的那样。一般概念可能是相同的,但它们已经重命名/移动了很多东西。