基本上,我需要使用一个页面来识别进程或任务,并据此做出一些关于是否允许换出页面的决定。因为内核 AFAIK 中的交换模块主要处理struct page,所以我想知道是否存在一些我遗漏的现有技巧。来自 include/linux/mm_types.h (v >= 2.6),以下注释:
- 系统中的每个物理页面都有一个与
- 它来跟踪我们在
- 片刻。请注意,我们无法跟踪哪些任务正在使用
- 一个页面,但如果它是一个 pagecache 页面,rmap 结构可以告诉我们
- 谁在映射它。
建议我们可以通过一些物理到虚拟的反向映射来做到这一点,但我无法从 rmap 函数(在 mm/rmap.c 中)弄清楚如何实现我正在寻找的东西。
在此先感谢您的帮助,非常感谢。