- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 KVM(ARM) 内存虚拟化(1)
理解KVM ARM内存虚拟化的关键点:1、ARM虚拟化的基本概念2、KVM实现内存虚拟化的关键点(1) QEMU定义了VM的内存地址空间,同时VM的内存地址空间(IPA)和QEMU自己的进程虚拟地址空间建立了一一映射(IPA-HVA)(2)QEMU会将IPA和HVA的映射关系通过系统调用设置到KVM中并保存(KVM_SET_MEMORY_REGION)(3)当VM访问自己的内存时,会进行2级页表返回,VM的Linux自己完成stage-1的地址翻译,但是当进行stage-2的地址翻译时发生了da
2020-10-18 10:44:13
1228
原创 KVM(ARM) CPU虚拟化 (1)
ARM CPU虚拟化的关键技术点:CPU支持多个特权等级,这样才可以比较好的对于敏感特权指令进行在高优先级受控, ARM支持EL0~EL3,其中虚拟化(Hypervisor运行在EL2,OS Kernel运行在EL1,用户态运行在EL0)VM执行敏感指令/操作受控 - 在更高级别的特权级受控执行,避免对别的VM产生影响每个VM的每个vCPU运行在物理CPU上时进行context switch,即将之前运行的(host或者其他vCPU)各种相关寄存器保存到内存中,需要运行的vCPU必须的寄存器恢复到硬
2020-10-18 10:31:15
2078
原创 KVM(ARM)-初始化 (1)
Linux启动,如果需要支持KVM,则必须从EL2开始启动,即Kernel的入口在EL2执行,如下主要代码:_head: - Kernel Image入口b stext //跳转到stextbl el2_setup 参见后续解释/* * Kernel startup entry point. * --------------------------- * * The requirements are: * MMU = off, D-cache = off, I-cache = on o
2020-10-17 19:31:05
1237
原创 ARM虚拟化学习重要的参考资料
AArch64 Virtualizationhttps://static.docs.arm.com/100942/0100/aarch64_virtualization_100942_0100_en.pdfhttps://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Armv8-A%20virtualization.pdf?revision=a765a7df-1a00-434d-b
2020-06-14 10:13:48
454
原创 KVM- Guest Enter & Guest Exit
Linux 4.14实现:KVM Guest Exit 实现原理:进入Guest OS之前保存Host的调用__guest_enter时的context以便Guest退出时返回该调用点继续支持Guest退出Trap到EL2时,则会借用__guest_exit返回enter时的调用点继续执行例如:Guest OS访问GICD Trap时,el1_sync -》ENTRY(__kvm_hyp_vector) ventry el2t_sync_invalid // Synchronous EL2
2020-06-14 10:01:10
1135
1
转载 ARM_Interrupt_Virtualization
给大家省点钱,记录一下有价值的资料https://events.static.linuxfound.org/sites/events/files/slides/ARM_Interrupt_Virtualization_Przywara.pdf
2020-05-13 22:22:34
265
Christopher-Dall_Arm-Timers-and-Fire.pdf
2020-06-14
aarch64_virtualization_100942_0100_en.pdf
2020-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人