linux虚拟地址中的页表位(4级分页)

时间:2015-11-26 06:30:58

标签: memory-management linux-kernel paging arm64

带有4级分页的armV8 CPU上的64位虚拟地址中的pgd,pmd pte和页面移位位是什么?

我需要此信息来调试手头的问题。

1 个答案:

答案 0 :(得分:2)

这里的文件非常清楚地解释了 https://www.kernel.org/doc/Documentation/arm64/memory.txt

使用4KB页面进行翻译表查找:

+--------+--------+--------+--------+--------+--------+--------+--------+
|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 - PGD,L1 - PUD,L2 - PMD,L3 - PTE

Aarch64仅使用0-39位(3级分页)。因此,对于无政府系统,PGD(L0) = PUD(L1) = [38:30]。其余的映射保持不变。