что такое pgd, pmd pte и биты сдвига страницы в 64-битном виртуальном адресе на процессоре armV8 с 4-уровневым пейджингом?
Мне нужна эта информация для отладки проблемы под рукой.
что такое pgd, pmd pte и биты сдвига страницы в 64-битном виртуальном адресе на процессоре armV8 с 4-уровневым пейджингом?
Мне нужна эта информация для отладки проблемы под рукой.
Документ здесь очень четко объясняет https://www.kernel.org/doc/Documentation/arm64/memory.txt
Поиск таблицы перевода со страницами размером 4 КБ:
+--------+--------+--------+--------+--------+--------+--------+--------+
|63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
+--------+--------+--------+--------+--------+--------+--------+--------+
| | | | | |
| | | | | v
| | | | | [11:0] in-page offset
| | | | +-> [20:12] L3 index
| | | +-----------> [29:21] L2 index
| | +---------------------> [38:30] L1 index
| +-------------------------------> [47:39] L0 index
+-------------------------------------------------> [63] TTBR0/1
L0 - ПГД, L1 - ПУД, L2 - ПМД, L3 - ПТЭ
Aarch64 использует только 0-39 бит (3-уровневый пейджинг). Следовательно, для систем aarch PGD(L0) = PUD(L1) = [38:30]
. Остальная часть отображения остается прежней.