Установка пространства ядра в не кешируемое на x86_64 с помощью IA_PAT MSR или обхода таблицы страниц - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь отключить кэширование только для операционной системы Linux, то есть пространства ядра. Я понял, что есть два способа сделать это:

1 - Использование MTRR: это оказалось невозможным, поскольку MTRR позволяет отключить кэширование для диапазонов физических адресов. Я использую 64-битный Tinycore Linux на x86_64, что означает, что пространство ядра может быть отображено на всю оперативную память (в отличие от 32-битных систем, где пространство соответствует низкому объему физической памяти).

2 - Использование PAT: это кажется быть лучшим вариантом, так как он работает на виртуальных страницах. Однако я не уверен, должен ли я использовать регистр IA32_PAT и как? или изменить записи таблицы страниц для страниц ядра и как?

Может ли кто-нибудь предоставить полный код для отключения кэша только для пространства ядра или хотя бы инструкции по использованию IA32_PAT или изменению записей таблицы страниц?

I нашел этот вопрос: Linux Ядро: вручную изменить флаги ввода таблицы страниц , но в коде он не содержит весь код, и на него нет ответа.

Я также нашел эти вопросы для страницы обход таблиц: Получение ошибки при компиляции ядра для обхода таблицы страниц и linux ядро ​​- как получить физический адрес (управление памятью)?

Спасибо!

...