2012-05-04 24 views
6

Tôi tự hỏi đâu là trình xử lý lỗi chính của trang.Trình xử lý lỗi chính của trang trong hạt nhân Linux

Tôi đã viết một thuật toán để giảm thiểu lỗi trang trong hạt nhân. Vì vậy, tôi cần phải ghi lại một cái gì đó bất cứ khi nào một lỗi trang xảy ra. Tôi hiện đang ghi lại lỗi trang xảy ra tại do_page_fault (...) trong arch/x86/mm/fault_32.c

Tuy nhiên, có vẻ như cả lỗi trang nhỏ và lớn sẽ chuyển đến do_page_fault (...) ... Và lỗi trang nhỏ xảy ra tất cả các thời gian và sai lầm các thuật toán.

Tôi đoán tôi chỉ muốn ghi lại nội dung khi xảy ra lỗi page_fault lớn. Vì vậy, tin tặc hạt nhân, bạn vui lòng cho tôi biết tôi nên đặt mã của mình ở đâu? Tệp nào và chức năng nào.

Nhân tiện, tôi đang nhân hạt nhân 2.6.24

Cảm ơn bạn rất nhiều! Alfred

Trả lời

7

Chức năng handle_mm_fault xử lý lỗi trang. Giá trị trả về của nó là một tập hợp các cờ. nếu VM_FAULT_MAJOR được đặt, thì đó là lỗi trang chính. Hạt nhân gọi perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ... trên mọi lỗi trang chính.

+0

Cảm ơn bạn rất nhiều, David! Tệp nào là perf_sw_event trong? Tôi đã thử một grep và không tìm thấy nó ... –

+0

'kernel/perf_event.c' –

+0

Cảm ơn bạn rất nhiều! Thật tuyệt vời! –

Các vấn đề liên quan