Установить память как некэшируемую с помощью таблицы PAT x86

Я хочу установить диапазон памяти как некэшируемый (Linux, x86-86) из процесса пользовательского пространства. Этот вопрос подходит близко, но упоминает только регистры MTRR, которые работают с физической памятью. Я хочу сделать это с помощью таблиц PAT, поскольку они предлагают более детальный контроль, они позволяют устанавливать некэшируемую виртуальную память на постраничной основе.

В документации Linux, Documentation / x86 / pat.txt , должно быть что-то с mmap и флагом SYNC , но я не могу узнайте, как это сделать на практике. В идеале я хотел бы использовать такой вызов, как mprotect (адрес, диапазон, O_UNCACHABLE) .

9
задан Community 23 May 2017 в 12:03
поделиться