十年前,CleanCache 补丁系列被并入 Linux 内核主线,但现在它将退役。今天,作为 Andrew Morton 补丁的一部分,合并到 Linux-Next 中的 CleanCache 被移除了。为什么?因为它已经没有用户了。自从 2019 年移除 Xen Transcendent Memory(TMEM)驱动代码后,CleanCache 已经没有任何用户了,但代码仍然在内核中赋闲。
CleanCache 是由甲骨文的工程师开发的,在推出时,他们宣布它是"非常酷的东西,有巨大的潜力使运行的虚拟机大幅优化/性能/效率,是相当多的研究和实验的结果。"
它在内核的文档更保守地将其总结为:"CleanCache 是由 VFS 层提供的一个新的可选功能,它有可能为许多环境中的许多工作负载大大增加页面缓存的有效性,而成本可以忽略不计。CleanCache 可以被认为是一个页面粒度的受害者缓存(Victim Cache),一个与直接匹配或低相联缓存并用的、容量很小的全相联缓存。用于存放内核的页框替换算法(PFRA)想要保留但由于没有足够的内存而无法保留的干净页面。因此,当 PFRA"驱逐"一个页面时,它首先试图使用 CleanCache 代码将该页面中包含的数据放入内核不能直接访问或寻址的内存,其大小未知且可能随时间而变化。
但是,在被甲骨文公司吹嘘了十年后的今天,没有内核代码使用它,因此它将退役,随着它在 Linux-Next 中作为 AKPM 补丁的一部分被移除,它很可能在 Linux 5.17 中被主线移除。
Linux 内核网站文档:
https://www.kernel.org/doc/html/latest/vm/cleancache.html
甲骨文网站发布时的新闻稿:
https://blogs.oracle.com/wim/post/another-feature-hit-mainline-linux-cleancache-transcendent-memory