有什么技巧可以故意换出 linux 内核中的页面吗?

Is there any trick to deliberately swap out a page in linux kernel?

我试图调试一些问题,我想想象一个物理内存页面被换出的场景。有什么技巧可以做到这一点吗?

Linux内核:3.10.x

平台:手臂

非常感谢。

如果您的意思是 "in the linux kernel" 那么是的。有些函数会导致页面被交换,您可以直接调用这些函数。以 pageout() 为起点。我怀疑将所有这些设置都恰到好处是非常重要的。

如果你的意思是"is there a way to do it from user-space",答案是否定的。好吧,不是直接的(无论如何 AFAIK)。您最好的选择是不要进一步接触有问题的页面,同时分配大量其他内存(这可以在单独的过程中完成)并接触所有其他页面,以便您关心的页面最近最少使用,因此寻呼候选。

不确定如何 -- 从用户 space -- 你会检测到它实际上 已经 被分页了。虚拟内存的要点是对你隐藏它。我想你很有可能知道它在事后被分页了,方法是计算你最终访问内存需要多长时间。