EPT学习总结及KVM的处理
2012-07-11 10:52
405 查看
EPT为了提升虚拟化内存映射的效率而提供的一项技术。
打开EPT后,GuestOS运行时,通过页表转化出来的地址不再是真实的物理地址,而是被称作为guest-physical addresses,经过EPT的转化后才成为真实的物理地址。
可以使用 $cat /proc/cpuinfo | grep ept检查硬件是否支持ept机制。如果支持那么kvm会自动的利用EPT。
如果CR0.PG=0,GuestOS分页机制没有打开,直接使用线性地址作为guest-physical addresses,
如果CR0.PG=1,使用分页机制转化后的地址作为guest-physical addresses。
EPT的表和页表基本类似,具体可以参见Intel的编程手册。
EPT的建立:
EPT misconfigurations and EPT violations.
EPT misconfigurations 出现在对应的表项不合法,EPT violations出现在表项不允许访问或者不存在。
对于EPT violations引起的vm exit:
gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS);
kvm_mmu_page_fault(vcpu, gpa & PAGE_MASK, 0);
tdp_page_fault处理如下,gpa 根据计算出来pfn,然后调用__direct_map函数,填充对应的表项。
KVM对EPT misconfigurations的处理:
EPT misconfigurations 出现在对应的表项不合法,正常情况下不应该出现,KVM对其进行记录,不进行处理。
打开EPT后,GuestOS运行时,通过页表转化出来的地址不再是真实的物理地址,而是被称作为guest-physical addresses,经过EPT的转化后才成为真实的物理地址。
可以使用 $cat /proc/cpuinfo | grep ept检查硬件是否支持ept机制。如果支持那么kvm会自动的利用EPT。
如果CR0.PG=0,GuestOS分页机制没有打开,直接使用线性地址作为guest-physical addresses,
如果CR0.PG=1,使用分页机制转化后的地址作为guest-physical addresses。
EPT的表和页表基本类似,具体可以参见Intel的编程手册。
EPT的建立:
EPT misconfigurations and EPT violations.
EPT misconfigurations 出现在对应的表项不合法,EPT violations出现在表项不允许访问或者不存在。
对于EPT violations引起的vm exit:
gpa = vmcs_read64(GUEST_PHYSICAL_ADDRESS);
kvm_mmu_page_fault(vcpu, gpa & PAGE_MASK, 0);
tdp_page_fault处理如下,gpa 根据计算出来pfn,然后调用__direct_map函数,填充对应的表项。
KVM对EPT misconfigurations的处理:
EPT misconfigurations 出现在对应的表项不合法,正常情况下不应该出现,KVM对其进行记录,不进行处理。
相关文章推荐
- EPT学习总结及KVM的处理
- 学习笔记PHP字符串处理函数总结
- SEH异常处理学习总结 - ToBeroOTer的专栏 - CSDNBlog
- Java 异常处理学习总结
- JVM学习总结五——性能监控及故障处理工具
- 个人碰到的简单问题处理,慢慢总结 分类: ubuntu学习 2013-08-12 10:36 385人阅读 评论(0) 收藏
- ReportViewer本地处理学习总结
- Extjs学习总结---Date的处理
- opencv视频处理和检测学习总结
- 批处理脚本学习总结
- 学习总结-异常的处理,集合
- 【IOS 开发学习总结-OC-67】Quartz 2D绘图(4-4)——图形变换+填充处理+core image 滤镜
- js事件处理程序学习与总结
- 20135328-信息安全系统设计基础第三周学习总结(信息的处理和表示)
- MFC消息处理学习总结
- C#中使用try catch对系统性能的影响和处理机制的学习总结和疑问!
- GDI+学习及代码总结之------图像的基本处理
- java异常处理学习总结
- 关于java处理内存泄露与内存溢出的学习总结
- HTMLParser(一个比较流行的html代码解析、处理开源项目)学习,总结