2012-05-04 26 views
6

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

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

但是,似乎小的和主要的页面错误都会转到do_page_fault(...)... 小的页面错误一直在发生,并使算法搞砸了。

我想我只想记录主要page_fault发生时的东西。那么,内核黑客,请问我应该在哪里放置我的代码?哪个文件和哪个功能

顺便说一句,我是黑客内核2.6.24

非常感谢您! Alfred

回答

7

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

+0

非常感谢你,大卫! perf_sw_event中的哪个文件?我尝试了一个grep并没有找到它...... –

+0

'kernel/perf_event.c' –

+0

非常感谢!太棒了! –

相关问题