Como mapear um buffer de kernel do Linux para o espaço do usuário?

Digamos que o buffer seja alocado usando um esquema baseado em páginas. Uma maneira de implementar o mmap seria usar remap_pfn_range, mas o LDD3 diz que isso não funciona para a memória convencional. Parece que podemos resolver isso marcando a (s) página (s) reservada (s) usando SetPageReserved para que ela fique bloqueada na memória. Mas nem toda a memória do kernel já não pode ser trocada, ou seja, já reservada? Por que a necessidade de definir o bit reservado explicitamente?

Isso tem algo a ver com páginas alocadas de HIGH_MEM?

questionAnswers(3)

yourAnswerToTheQuestion