2012-05-04 13 views
6

Me pregunto dónde está el controlador de fallas de la página principal.manejador de fallas de la página principal en el núcleo de Linux

Escribí un algoritmo para minimizar las fallas de página en el kernel. Por lo tanto, debo registrar algo siempre que ocurra una falla en la página. Actualmente registro un error de página en do_page_fault (...) en arch/x86/mm/fault_32.c

Sin embargo, parece que tanto el error de página menor como el principal irán a do_page_fault (...) ... Y las fallas menores de la página suceden todo el tiempo y estropean el algoritmo.

Supongo que solo quiero grabar cosas cuando ocurre una page_fault importante. Entonces, hackers del kernel, ¿podrían decirme dónde debería poner mi código? Qué archivo y qué función.

Por cierto, estoy kernel hacking 2.6.24

Muchas gracias! Alfred

Respuesta

7

La función handle_mm_fault maneja el error de página. Su valor de retorno es un conjunto de banderas. si VM_FAULT_MAJOR está configurado, entonces es un error de página principal. El núcleo llama al perf_sw_event(PERF_COUNT_SW_PAGE_FAULT_MAJ, 1, 0, ... en cada falla de página principal.

+0

¡Muchas gracias, David! ¿En qué archivo está perf_sw_event? Probé un grep y no lo encontré ... –

+0

'kernel/perf_event.c' –

+0

¡Muchas gracias! ¡Eso es asombroso! –

Cuestiones relacionadas