Я пытаюсь отключить кэширование только для операционной системы Linux, то есть пространства ядра. Я понял, что есть два способа сделать это:
1 - Использование MTRR: это оказалось невозможным, поскольку MTRR позволяет отключить кэширование для диапазонов физических адресов. Я использую 64-битный Tinycore Linux на x86_64, что означает, что пространство ядра может быть отображено на всю оперативную память (в отличие от 32-битных систем, где пространство соответствует низкому объему физической памяти).
2 - Использование PAT: это кажется быть лучшим вариантом, так как он работает на виртуальных страницах. Однако я не уверен, должен ли я использовать регистр IA32_PAT и как? или изменить записи таблицы страниц для страниц ядра и как?
Может ли кто-нибудь предоставить полный код для отключения кэша только для пространства ядра или хотя бы инструкции по использованию IA32_PAT или изменению записей таблицы страниц?
I нашел этот вопрос: Linux Ядро: вручную изменить флаги ввода таблицы страниц , но в коде он не содержит весь код, и на него нет ответа.
Я также нашел эти вопросы для страницы обход таблиц: Получение ошибки при компиляции ядра для обхода таблицы страниц и linux ядро - как получить физический адрес (управление памятью)?
Спасибо!