Как перенести буфер ядра Linux в пользовательское пространство?

Допустим, буфер выделяется с использованием схемы, основанной на страницах. Одним из способов реализации mmap было бы использование remap_pfn_range, но LDD3 говорит, что это не работает для обычной памяти. Похоже, мы можем обойти это, пометив страницы, зарезервированные с помощью SetPageReserved, чтобы они были заблокированы в памяти. Но разве вся память ядра уже не подлежит обмену, то есть уже зарезервирована? Почему необходимо явно устанавливать зарезервированный бит?

Это как-то связано со страницами, выделенными из HIGH_MEM?

16
задан Ciro Santilli 新疆改造中心法轮功六四事件 23 July 2017 в 19:13
поделиться