caching - 即使页面已经在 tlb 中,如何强制页面发生故障?

标签 caching linux-kernel operating-system paging tlb

我正在尝试通过跟踪一段时间内的页面错误来编写一个玩具工作集估算器。每当一个页面出现故障时,我想记录它被触摸的情况。当我尝试跟踪对已存在页面的访问时,该方案失败了。如果读取或写入页面而不触发错误,我将无法跟踪访问。

那么,我希望能够在页面访问时引发“轻量级”错误。我曾经听说过一些方法,但我不明白它为什么有效,所以它没有留在我的脑海中。也许有点脏?

最佳答案

您可以使用mprotectPROT_NONE (“页面无法访问”)。那么对给定页面的任何访问都会导致错误。

关于caching - 即使页面已经在 tlb 中,如何强制页面发生故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005893/

相关文章:

ruby-on-rails - 生成为 ActiveRecord::Relation 的 Rails 缓存键

asp.net - 负载平衡的 ASP.NET Web 应用程序中的跨服务器通信

linux - 为什么 linux 内核模块中的 printk 不像 printf 那样缺乏浮点支持

基本数据类型的 copy_to_user() 和 copy_from_user()

c++ - 文件支持的内存映射的 CPU 缓存行为/策略?

java - 在 java 中缓存(可能)数据库中更改的值

database - 将 Web 服务中的数据缓存到数据库中是个好主意吗?

c - 如何在内核 C 程序和用户级 C 程序之间共享数据?

linux - 为什么Linux有4层 "page tables"以及它到底是如何工作的

c++ - 多线程初级查询(C++)