2012-05-04 21 views
6

Büyük sayfa hata işleyicisi nerede merak ediyorum.ana sayfa hata işleyicisi

Çekirdekte sayfa hatalarını en aza indirmek için bir algoritma yazdım. Bu yüzden bir sayfa hatası olduğunda bir şey kaydetmem gerekiyor. Şu anda do_page_fault (...) dosyasında bir sayfa hatası kaydediyorum: arch/x86/mm/fault_32.c

Ancak, hem küçük hem de büyük sayfa hataları do_page_fault (...) 'a gidecektir. Ve küçük sayfa hataları her zaman olur ve algoritma berbat.

Sadece büyük bir page_fault olduğunda bir şeyler kaydetmek istiyorum sanırım. Yani, kernel hackerlar, lütfen kodumu nereye koymam gerektiğini söyler misin? Hangi dosya ve hangi işlev. Bu arada

, ben çekirdek 2.6.24 hack am

çok teşekkür ederiz! Alfred

cevap

7

handle_mm_fault işlevi, sayfa hatasını işler. Dönüş değeri bir dizi bayraktır. VM_FAULT_MAJOR ayarlanmışsa, o zaman büyük bir sayfa hatasıdır. Çekirdek, her büyük sayfa hatası için perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ...'u çağırır.

+0

Çok teşekkür ederim David! Perf_sw_event hangi dosyada? Bir grep denedim ve bulamadım ... –

+0

'kernel/perf_event.c' –

+0

Çok teşekkür ederim! Bu harika! –