Answers:
我不知道内核公开与缓存的块相关的文件名的任何地方。根据这个答案
https://stackoverflow.com/a/4941371
即使使用自定义内核模块,您可能要做的最好的事情就是获取inode和设备的列表。从那里您仍然可能需要遍历文件系统以查找那些文件。
然后您可能会问:“但是,我怎么fincore
知道我列出的文件?” 或者您可能没有,但是我发现该方法非常聪明,所以就在这里。该fincore
工具通过执行以下操作工作:
该mincore
系统调用告诉你的记忆给定的页面是否在核心内存(即不会访问时引起缺页)。由于mmap
延迟加载映射的文件,并且我们还没有读取任何映射的区域,因此,任何不会导致页面错误的页面都必须成为我们缓存的一部分。