Linux内核追踪[4.14] X86的5级页表管理
来源:互联网 发布:windows官网下载 编辑:程序博客网 时间:2024/06/01 10:11
X86的4级页表已经能够管理48bit(256TB)的VA,以及64TB的PA。不过由于某些供应商发布了超过64T的超大物理内存,因此需要实现了一个5级页表特性来进行支持。
下面是原来4级页表的48bitVA地址空间,原先的X64芯片规定,高8位永远与第48bit(从0开始算即47bit)相同。因此从硬件上只使用4级页表。
0000000000000000 – 00007fffffffffff(128TB)为用户空间,
ffff800000000000 – ffffffffffffffff(128TB)为内核空间。
新的Intel芯片的MMU硬件规定可以进行5级页表管理。扩展9位达到57bit VA和52bit PA,支持丧心病狂的128PB VA和4PB PA,甚至大页都达到256G。
内核在PGD和PUD之间,增加了一个叫P4D的层次。不过新的5级页表可以通过内核cmdline来控制内核启用4级还是5级页表,这个比原先4级页表的支持又智能了不少(OS发行版不用出两个版本了)。
即使在cmdline配置了5级页表的情况下。默认情况下,Userspace App的VA仍然是47bit(即128TB),希望将高于47bit的地址空间用于Userspace App可以使用prctl的接口使能高bit VA功能(https://lwn.net/Articles/717300/)。
遗留问题:
1. 现有的4级页表已经可以达到256TB的VA,为什么不能管理超过64TB(比如128TB)的PA呢?
2. 5级页表情况下的内核地址空间范围是多少?
参考:
https://lwn.net/Articles/717293/
http://blog.csdn.net/hmsiwtv/article/details/39956981
http://blog.csdn.net/junmuzi/article/details/18056115
其它4.14版本特性:http://blog.csdn.net/lovelycheng/article/details/78545789
阅读全文
0 0
- Linux内核追踪[4.14] X86的5级页表管理
- Linux内核的early_param原理追踪
- Linux内核的early_param原理追踪
- Linux内核的early_param原理追踪
- Linux内核的early_param原理追踪
- Linux内核的early_param原理追踪
- 追踪分析Linux内核的启动过程
- Linux内核追踪[4.3] Ext3的终结
- [内核文档]使用Linux内核的追踪点[Tracepoint]
- x86 linux内核引导的过程
- linux内核移植X86平台的例子
- Linux在X86上的虚拟内存管理
- Linux在X86上的虚拟内存管理
- Linux 内核 SMP 代码追踪
- Linux内核-----early_param原理追踪
- linux内核启动过程追踪
- Linux内核追踪[4.14] 网络报文send的ZERO-COPY(零拷贝)
- Linux内核追踪[4.13] AIO的非阻塞优化
- 中序式转后序式,前序式(C/python)
- 模板:组合数学
- 从零开始的机器学习生活---决策树
- 域名+CA证书申请
- vbox下安装centos7最小系统配置网络环境双网卡
- Linux内核追踪[4.14] X86的5级页表管理
- java中的八大排序算法
- 54. Spiral Matrix
- sklearn 自带手写字体数据集
- 手把手教你写一个生成对抗网络
- 【量化小讲堂-Python&Pandas系列17】简易波动指标(EMV)策略在A股的实证
- 防止程序启动两次的方法CreateMutex()
- leetCode之Two Sum python实现
- MybatisGenerator的使用记录