TLB刷新的深入理解
为何linux内核的leave_mm中最后有一个load_cr3,这样的话岂不是又加载了cr3,这样岂不是违背了懒惰模式懒惰刷新tlb的初衷吗?这是邮件列表中很多人问的一个问题,要回答这一个问题,还要从2.6.18内核谈起。在2.6.18以及以前的内核中,leave_mm中是没有laod_cr3的,可是后来就有了,到底为什么?这一个要从cpu硬件的预取谈起。每个cpu为了效率,几乎都会提前好几