我想知道主要的页面错误处理程序在哪里。
我写了一种算法来最大程度地减少内核中的页面错误。因此,每当发生页面错误时,我都需要记录一些东西。我目前在arch/x86/mm/fault_32.c中记录do_page_fault(...)发生页面错误
但是,次要和主要页面错误似乎都将发生在do_page_fault(...)...
而且次要的页面错误一直在发生,并弄乱了算法。
我想我只想在发生重大page_fault时记录内容。那么,内核黑客,您能告诉我我的代码应该放在哪里吗?哪个文件和哪个功能。
顺便说一句,我正在破解2.6.24内核
非常感谢你!
阿尔弗雷德
最佳答案
handle_mm_fault
函数处理页面错误。它的返回值是一组标志。如果设置了VM_FAULT_MAJOR
,则是主要的页面错误。内核在每个主要页面错误上调用perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ...
。
关于linux - Linux内核中的主要页面错误处理程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10441392/