2012-05-04 28 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

非常感謝!太棒了! –

相關問題