2012-05-04 17 views
6

Zastanawiam się, gdzie jest główny program obsługi błędów strony.główna obsługa błędów strony w jądrze Linuksa

Napisałem algorytm, aby zminimalizować błędy stron w kernelu. Dlatego muszę nagrywać coś, gdy wystąpi błąd strony. Aktualnie rejestruję błąd strony w do_page_fault (...) w arch/x86/mm/fault_32.c

Jednak wygląda na to, że zarówno strona drobna, jak i główna strona błędu przejdą do strony do_page_fault (...) ... Drobne błędy strony występują cały czas i pomieszały algorytm.

Chyba chcę tylko nagrywać rzeczy, gdy nastąpi poważna awaria strony. Więc, hakerzy jądra, czy mógłbyś mi powiedzieć, gdzie powinienem umieścić mój kod? Który plik i którą funkcję.

Nawiasem mówiąc, jestem hacking jądro 2.6.24

Dziękuję bardzo! Alfred

Odpowiedz

7

Funkcja handle_mm_fault obsługuje błąd strony. Jego wartość zwracana jest zbiorem flag. jeśli ustawiono VM_FAULT_MAJOR, oznacza to poważny błąd strony. Jądro wywołuje perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ... na każdej głównej stronie błędu.

+0

Dziękuję bardzo, David! W którym pliku znajduje się perf_sw_event? Próbowałem grep i nie znalazłem go ... –

+0

'kernel/perf_event.c' –

+0

Dziękuję bardzo! To jest niesamowite! –