我想了解linux内核如何处理TLB未命中。具体来说,我知道页面表遍历发生在mm/memory.c
的follow_page
中,但是当TLB未命中发生时,如何调用follow_page。 follow_page的返回值(struct page
)如何传递回硬件?有人可以说明TLB未命中处理的调用图,从TLB Miss异常由硬件引发到何时调用follow_page
?在Linux内核中处理TLB未命中的调用图
我搜索了follow_page
里面的内核代码http://lxr.linux.no/linux+v3.4.4/+search=follow_page但结果似乎没有多大帮助。 为了说清楚,可以说硬件是x86_64。
我发现,对于大多数x86体系结构,当发生TLB未命中时,硬件会执行页面遍历。在TLB未命中期间,不会调用'mm/memory.c'中的软件页面结构代码'follow_page'。所以,按照我的理解,在linux内核中没有处理TLB未命中的调用图。 – Bhushan
您应该提交此评论作为答案。 – GargantuChet
@GargantuChet谢谢。我已经发布了我的答案。 – Bhushan