Linux内核中的主要页面错误处理程序

时间:2012-05-04 01:04:34

标签: linux linux-kernel kernel page-fault

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

我写了一个算法来减少内核中的页面错误。因此,每当发生页面错误时我都需要记录一些内容。我目前在arch / x86 / mm / fault_32.c中的do_page_fault(...)中记录了页面错误

然而,看起来主要的页面错误都会出现在do_page_fault(...)... 并且小的页面错误一直在发生,并搞砸了算法。

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

顺便说一句,我正在攻击内核2.6.24

非常感谢! 阿尔弗雷德

1 个答案:

答案 0 :(得分:7)

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