sistema operativo errores consola configurar linux linux-kernel kernel

operativo - Error de página anidada de la dirección del espacio de usuario en Linux



configurar red linux consola (2)

Me gustaría saber si es funcionalmente incorrecto hacer un error de página en una dirección de espacio de usuario cuando el kernel está ejecutando un controlador de errores para traer una página de usuario.

OS es Linux 2.6.30

Suponga que ambas direcciones de usuario son válidas (que se encuentran dentro del permiso vma, rw) para la tarea.

Cuando verifico el código del kernel, encuentro que al kernel no le importa la falla anidada si las direcciones con fallas son válidas y la falla no ocurrió en el contexto atómico o en el controlador irq.

(No creo que la respuesta sea específica de la CPU, pero agregaría que estoy interesado en armar y grabar).

por ejemplo: el escenario puede ocurrir si imprimo datos de pila desde el controlador de errores de página.


Es absolutamente correcto. De hecho, incluso puedes dormir.

Pero solo puede hacerlo una vez line se pase esta line , ya que estará en un contexto no atómico.


Mirar a través de las fuentes del kernel durante la última hora sugiere que está bien: ni la definición de struct vm_operations_struct ni el código entre handle_mm_fault() y la llamada a vma-> vm_ops-> fault en __do_fault() tiene declaraciones de advertencia sobre esto, y los pocos -> controladores de fallas que miré tampoco parecían preocupados por eso ...

... Creo que lo principal es que debes evitar entrar en una recursión infinita al volver a fallar en la misma dirección, pero eso presumiblemente solo sucedería si la pila del núcleo estuviera en tu vma, que es muy probable que no sea ¿ocurrir?