我正在尝试通过跟踪一段时间内的页面错误来编写一个玩具工作集估算器。每当一个页面出现故障时,我想记录它被触摸的情况。当我尝试跟踪对已存在页面的访问时,该方案失败了。如果读取或写入页面而不触发错误,我将无法跟踪访问。
那么,我希望能够在页面访问时引发“轻量级”错误。我曾经听说过一些方法,但我不明白它为什么有效,所以它没有留在我的脑海中。也许有点脏?
最佳答案
您可以使用mprotect
与 PROT_NONE
(“页面无法访问”)。那么对给定页面的任何访问都会导致错误。
关于caching - 即使页面已经在 tlb 中,如何强制页面发生故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005893/