我想知道主要页面错误处理程序在哪里。
我写了一个算法来减少内核中的页面错误。因此,每当发生页面错误时我都需要记录一些内容。我目前在arch / x86 / mm / fault_32.c中的do_page_fault(...)中记录了页面错误
然而,看起来主要的页面错误都会出现在do_page_fault(...)... 并且小的页面错误一直在发生,并搞砸了算法。
我想我只想在发生重大page_fault时记录内容。那么,内核黑客,请你告诉我应该把我的代码放在哪里?哪个文件和哪个功能。
顺便说一句,我正在攻击内核2.6.24
非常感谢! 阿尔弗雷德
答案 0 :(得分:7)
handle_mm_fault
函数处理页面错误。它的返回值是一组标志。如果设置了VM_FAULT_MAJOR
,那么这是一个主要的页面错误。内核在每个主要页面错误上调用perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ...
。