2012-05-04 22 views
6

Mi chiedo dove si trova il gestore di errori di pagina principale.gestore di errori di pagina principale nel kernel Linux

Ho scritto un algoritmo per ridurre al minimo gli errori di pagina nel kernel. Quindi ho bisogno di registrare qualcosa ogni volta che succede un errore di pagina. Al momento sto registrando un errore di pagina a do_page_fault (...) in arch/x86/mm/fault_32.c

Tuttavia, sembra che sia l'errore di pagina sia quello di pagina principale andranno a fare_page_fault (...) ... E piccoli errori di pagina si verificano sempre e incasinato l'algoritmo.

Immagino di voler registrare solo quando si verifica un errore di pagina principale. Quindi, hacker del kernel, potresti dirmi dove devo inserire il mio codice? Quale file e quale funzione.

A proposito, sto sull'hacking del kernel 2.6.24

La ringrazio molto! Alfred

risposta

7

La funzione handle_mm_fault gestisce l'errore di pagina. Il suo valore di ritorno è un insieme di flag. se è impostato VM_FAULT_MAJOR, allora si tratta di un errore di pagina principale. Il kernel chiama perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ... per ogni errore di pagina principale.

+0

Grazie mille, David! In quale file è perf_sw_event? Ho provato un grep e non l'ho trovato ... –

+0

'kernel/perf_event.c' –

+0

Grazie mille! Questo è impressionante! –

Problemi correlati