Как прочитать таблицу страниц ядра?

Linux разделяет пространство виртуальной памяти на две части: 0x00000000 ~ 0xBFFFFFFFF и 0xC0000000 ~ 0xFFFFFFFF. Как я читал, все процессы используют одно и то же виртуальное пространство ядра 0xC0000000 ~ 0xFFFFFFFF.

Я пытаюсь заблокировать один TLB для системного вызова на архитектуре ARM. Например, для системного вызова raw_spin я получил виртуальный адрес 0xc04d35b0 из System.map, затем я хочу найти соответствующий физический адрес, чтобы заблокировать одну запись TLB.

Мой вопрос: как я могу прочитать таблицу страниц ядра? Спасибо!


person beikesea    schedule 19.05.2014    source источник
comment
Какой чип вы используете? Обычно для блокировки TLB не требуется физический адрес.   -  person Nico Erfurth    schedule 19.05.2014
comment
Я использую OMAP 5432. Согласно техническому руководству, мне нужно записать физический адрес и виртуальный адрес в MMU_CAM и MMU_RAM соответственно. Затем мне нужно установить BASEVALUE, чтобы заблокировать этот TLB~   -  person beikesea    schedule 19.05.2014