在Linux中,内核负责处理所有TLB未命中的情况吗?

在Linux中,内核负责处理所有TLB未命中的情况吗?

我试图在脑海中整理一些有关 Linux 内存管理的概念,并有以下问题:

在 Linux 中,TLB 未命中是由内核代码处理的吗?即使错过也是简单的查找在页表中查看是否存在映射(页遍历)[1]?我的意思是,所谓的页面行走由内核代码执行?

是不是所谓的页面行走(对某种 TLB 未命中的响应)是否被认为是软页面错误?

答案1

这取决于处理器。在 x86 架构中,TLB 未命中由硬件处理,因此对内核来说是透明的。内核代码处理 TLB 的唯一时间是当 TLB 的内容将被丢弃(TLB 刷新)时。

“软页错误”通常是指RAM中存在内存页,但MMU不知道这一情况,即页表中没有该页框的条目。

相关内容