¿Cómo hacer un mmap de un búfer de kernel de Linux al espacio de usuario?

Digamos que el búfer se asigna utilizando un esquema basado en páginas. Una forma de implementar mmap sería usar remap_pfn_range pero LDD3 dice que esto no funciona para la memoria convencional. Parece que podemos solucionar esto marcando la (s) página (s) reservada (s) usando SetPageReserved para que quede bloqueada en la memoria. Pero, ¿no está toda la memoria del kernel ya no intercambiable, es decir, ya está reservada? ¿Por qué la necesidad de establecer el bit reservado explícitamente?

¿Tiene esto algo que ver con las páginas asignadas desde HIGH_MEM?

Respuestas a la pregunta(3)

Su respuesta a la pregunta