在Linux中,缓存命中是否算作页面引用



在Linux中,内存中的页面有一个PG_referenced位,该位是在引用页面时设置的。我的问题是,如果有内存读/写页面中的某个地址,并且该地址的缓存命中,它会算作对该页面的引用吗?

PG_referenced是Linux所称的硬件页面表中CPU在访问页面时更新的位吗?或者它在跟踪一个页面是否被另一个内核数据结构引用?


CPU硬件在访问虚拟页面时在页面表条目中设置一个位(如果尚未设置(。(我认为大多数ISAs都有这样的功能,可以帮助检测最近使用较少的页面,例如,操作系统可以清除某些页面上的Accessed位,然后检查哪些页面仍然没有被访问。而不必实际使其无效并在访问时强制软页面故障。(

例如,在x86上,基于缓存PTE的TLB条目,检查(是否"陷阱"到内部微码以辅助原子地设置PTE中的Accessed和/或Dirty位以及页面目录中的更高级别(是

这与物理地址的D缓存或I缓存命中或未命中无关。

我认为,即使对于设置为不可缓存的页面,更新Accessed和/或Dirty位也有效。

最新更新