Memory management linux虚拟地址中的页表位(4级分页)
在具有4级分页功能的armV8 CPU上,64位虚拟地址中的pgd、pmd pte和page shift位是什么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| +
我需要这些信息来调试手头的问题。这里的文档解释得非常清楚 使用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清楚地定义了答案。我现在明白了。贴在下面。非常感谢。