为什么我们在每次上下文切换期间将 pgd 地址写入 TTBR0/TTBR1?

Why do we write pgd address to TTBR0/TTBR1 during each context switch?

在Linux内核代码中,为什么每次上下文切换时都需要写入pgd(mm_struct->pgd_t)地址?

pgd 对每个进程都是唯一的吗?

每个进程都有自己的虚拟内存space因此每个进程都有一个全局条目(PGD,页面全局目录)开始映射。从 PGD,您转到 PMD、PTE,最后进行偏移,这有助于映射的稀疏性(您不需要线性映射)。

Understanding the Linux Virtual Memory Manager, Chapter 3

查看更多