内核虚拟化:LoongArch KVM

LoongArch KVM

来源:内核开发者大会Arch&虚拟化&I/O分论坛

概况

依据LoongArch CPU虚拟化硬件特性在Linux内核中实现了KVM虚拟化软件处理流程。目前可以配合用户态QEMU程序正常运行LoongArchKVM虚拟机。

LoongArch KVM虚拟化组件包含用户态QEMU程序,内核态Linux KVM模块,以及物理硬件支持。
LoongArch KVM虚拟化整体运行流程如图所示首先用户态OEMU创建KVM虚拟机并初始化运行环境,然后进入内核态KVM,让CPU在虚拟化模式下运行虚拟机程序。
当vCPU触发异常时会退出到内核态KVM来处理异常如果KVM能够处理则重新进入虚拟化模式运行,否贝I再退出到用户态处理,处理完成后返回KVM再进入虚拟机。
目前在Linux内核中提交的补丁为LoongArch KVM的基础版本,包含CPU虚拟化和内存虚拟化。后续会进一步完善如中断控制器下移至内核态、向量指令支持、hypercall指今支、硬件PMU支持等功能

image-20240229142100260

CPU虚拟化

CPU硬件模型

image-20240229142252134

LoongArch CPU拥有host模式和guest模式,并且两种模式下有内核态和用户态,在guest模式下切换内核态时并不会退出到host模式下。
host模式和guest模式共用通用寄存器r0-r31,而控制状态寄存器CSR在两种模式下各自拥有一份。

CPU虚拟化软件流程

image-20240229142516301

内存虚拟化

MMU硬件模型

image-20240229142622299

内存虚拟化采用两级MMU

  • 一级MMU
    • GVA --> GPA
    • 发生缺页异常时造成虚拟机内部异常
  • 二级MMU
    • GPA -->HPA
    • 发生缺页异常时造成物理机KVM异常

两级页表支持的规格为:

  • 虚拟地址空间宽度48位
  • 页大小为4KB,页内地址12位
  • 可支持4级页表,每级页表索引占9位

内存虚拟化软件流程

image-20240229143240984

外设虚拟化

虚拟外设地址空间

image-20240229143711588

虚拟外设模拟流程

image-20240229143806475

为了减少设备模拟时内核态和用户态的切换开销,提高LonngArch KVM运行效率,后续会提交补丁,将中断控制器下移至KVM模拟。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: KVM虚拟化技术是目前比较流行并开源的虚拟化技术之一。它不仅简单易用,而且与Linux内核紧密集成,性能也非常出色。 KVM的实战应用非常广泛,包括虚拟化服务器、云平台、桌面虚拟化等。通过KVM,我们可以在一台物理机上虚拟出多台虚拟机,并通过网络进行管理和访问。这样,我们就可以更好地利用物理资源,提高服务器的利用率,从而降低成本。 在KVM的原理解析中,我们需要了解KVM是如何实现虚拟化的。首先,KVM利用了Linux内核对硬件的抽象和管理能力,通过向内核注册自己的虚拟设备,实现对硬件的虚拟化。其次,KVM使用了硬件辅助虚拟化技术,例如Intel的VT-x和AMD的AMD-V。这些技术可以使虚拟机在机器语言级别上直接访问物理硬件,并且在虚拟化过程中几乎不会产生性能损失。 最后,KVM还支持各种虚拟化技术的组合,例如普通虚拟机、全虚拟化、半虚拟化、硬件辅助虚拟化、PCI设备直通等。这种灵活的虚拟化技术组合方式可以为不同的应用场景提供更好的支持,保证了虚拟机的性能、稳定性和安全性。 综上,KVM虚拟化技术是一种可靠、灵活、高效的虚拟化技术,可以帮助企业更好地利用物理资源,提高服务器的利用率,降低成本。同时,通过KVM的学习,我们能够更好地理解虚拟化技术的原理,为我们今后的学习和工作都将带来更好的支持。 ### 回答2: KVM虚拟化技术是一种基于Linux内核的全虚拟化技术,它可以将一台物理机虚拟出多台互相隔离的虚拟机,每个虚拟机可以独立运行不同的操作系统。KVM虚拟化技术的优点是稳定、可靠、高效,最为重要的是开源免费。 《KVM虚拟化技术:实战与原理解析》这本书为读者讲解了KVM的原理、安装、配置、使用、优化和常见问题解决等内容,既有理论知识又有实践经验。通过对本书的学习,读者可以深入了解KVM虚拟化技术的工作原理及其优势,准确掌握KVM虚拟机的安装和配置方法,提高虚拟机的利用效率,时刻做好系统的优化和维护工作。 该书有助于IT从业人员的技能提升,增强他们应对虚拟化技术挑战的能力。学习本书不仅可以有效提高工作效率,更能加深对虚拟化技术的理解,为今后从事相关工作奠定坚实基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值