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

Memory management linux虚拟地址中的页表位(4级分页),memory-management,linux-kernel,paging,arm64,Memory Management,Linux Kernel,Paging,Arm64,在具有4级分页功能的armV8 CPU上,64位虚拟地址中的pgd、pmd pte和page shift位是什么 我需要这些信息来调试手头的问题。这里的文档解释得非常清楚 使用4KB页面查找翻译表: +--------+--------+--------+--------+--------+--------+--------+--------+ |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0| +

在具有4级分页功能的armV8 CPU上,64位虚拟地址中的pgd、pmd pte和page shift位是什么


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

这里的文档解释得非常清楚

使用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级分页)。因此,对于aarch系统,
PGD(L0)=PUD(L1)=[38:30]
。其余映射保持不变。

如果您正在调试内核,那么您肯定已经调试好了?是@Notlikethat。我有。我试着一个人看。但定义并不直截了当。由于这些变量依赖于各种其他变量,然后将它们向左或向右移动,因此不能直接得出结论。因此,如果有人已经有了答案,那么问题就来了。@Notlikethat arm64/memory.txt清楚地定义了答案。我现在明白了。贴在下面。非常感谢。