Linux разделяет пространство виртуальной памяти на две части: 0x00000000 ~ 0xBFFFFFFFF и 0xC0000000 ~ 0xFFFFFFFF. Как я читал, все процессы используют одно и то же виртуальное пространство ядра 0xC0000000 ~ 0xFFFFFFFF.
Я пытаюсь заблокировать один TLB для системного вызова на архитектуре ARM. Например, для системного вызова raw_spin я получил виртуальный адрес 0xc04d35b0 из System.map, затем я хочу найти соответствующий физический адрес, чтобы заблокировать одну запись TLB.
Мой вопрос: как я могу прочитать таблицу страниц ядра? Спасибо!
TL;DR
с кодом для получения вашей физической карты. В другом моем ответе есть некоторые подробности о структуре Linux. Недостающая часть — это замок TLB; посмотри на cortex-A15 TRM и там будет проба. - person artless noise   schedule 20.05.2014