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

Which part of the Linux kernel code is responsible for implementing LRU?

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

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

假设内核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 内容的文献都已过时,正如您所发现的那样。一般概念可能相同,但它们 renamed/moved 涉及很多东西。