6

我想知道主要的页面错误处理程序在哪里。

我写了一个算法来最小化内核中的页面错误。所以每当发生页面错误时,我都需要记录一些东西。我目前在 arch/x86/mm/fault_32.c 的 do_page_fault(...) 记录了一个页面错误

但是,似乎次要和主要页面错误都会转到 do_page_fault(...) ......并且次要页面错误一直在发生并弄乱了算法。

我想我只想在发生重大 page_fault 时记录东西。那么,内核黑客们,请你告诉我我应该把我的代码放在哪里?哪个文件和哪个功能。

顺便说一句,我正在破解内核 2.6.24

非常感谢!阿尔弗雷德

4

1 回答 1

7

handle_mm_fault函数处理页面错误。它的返回值是一组标志。如果VM_FAULT_MAJOR设置了,那么这是一个主要的页面错误。内核调用perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ...每个主要的页面错误。

于 2012-05-04T01:11:56.623 回答