리눅스 커널이 TLB 미스를 처리하는 방법을 이해하려고합니다. 특히, 페이지 테이블 워크가 mm/memory.c
에 follow_page
에서 발생하지만 TLB 미스가 발생할 때 follow_page가 어떻게 호출되는지 알고 있습니다. follow_page의 반환 값 (struct page
)은 어떻게 하드웨어로 전달됩니까? 누군가 TLB 미스 처리를위한 콜 그래프를 보여줄 수 있습니까? TLB 미스 예외가 발생했을 때 하드웨어에 의해 follow_page
이 호출 될 때까지?리눅스 커널에서 TLB 미스를 처리하기위한 콜 그래프
커널 코드 http://lxr.linux.no/linux+v3.4.4/+search=follow_page에서 follow_page
을 검색했지만 결과가별로 도움이되지 않는 것 같습니다. 하드웨어를 x86_64라고 말하면됩니다.
대부분의 x86 아키텍처에서 하드웨어는 TLB 미스가 발생할 때 페이지 보행을합니다. 'mm/memory.c'에서의 소프트웨어 페이지 워킹 코드'follow_page'는 TLB 미스 중에 호출되지 않습니다. 그래서 내 이해에 따라, 리눅스 커널에서 TLB 미스를 처리하기위한 콜 그래프가 없다. – Bhushan
답변으로이 의견을 제출해야합니다. – GargantuChet
@ GargantuChet 감사합니다. 나는 대답으로 나의 것을 게시했다. – Bhushan