【技术实现步骤摘要】
虚拟机同时支持PCIe虚拟设备和物理设备的方法
[0001]本专利技术涉及PCIe设备,具体涉及一种虚拟机同时支持PCIe虚拟设备和物理设备的方法。
技术介绍
[0002]随着集成电路制造工艺的发展,越来越多的计算单元被集成到单一芯片上。如何更有效地使用单芯片上的资源从而获得良好的系统伸缩性成为摆在系统软件设计者面前的重要问题。目前多核系统上部署虚拟机监控器(hypervisor)是解决该问题的一种有效的解决方式。hypervisor的虚拟化和隔离功能可以实现多个客户机操作系统运行在同一个硬件平台之上。根据不同客户机应用需求,给不同客户机配置不同的硬件资源,更加有效的利用硬件资源。
[0003]但同一客户机上根据不同应用的需求,有些应用需要尽可能的利用外部设备,比如利用PCIe物理网卡向远端传输大量数据;而有些应用同时又需要尽可能少利用外部设备,减少对外部设备产生干扰,比如利用PCIe虚拟设备实现共享内存与其它客户机传输大量数据。这样,就需要客户机既要支持PCIe虚拟设备,又要支持PCIe物理设备,充分利用系统资源, ...
【技术保护点】
【技术特征摘要】
1.虚拟机同时支持PCIe虚拟设备和物理设备的方法,该方法应用于armv8硬件平台,其特征在于,包括以下步骤:S1:在Linux系统上安装Jailhouse分区虚拟化工具;S2:启动Jailhouse分区虚拟化工具,将主机系统分隔为分别运行Linux系统的root客户机和none root客户机;S3:隔离root客户机,通过主机的Linux系统获取虚拟PCIe控制器的ECAM空间和物理PCIe控制器的ECAM空间,并分别将其基地址录入root客户机配置文件中;S4:在root客户机配置文件增加PCIe设备描述,并将其填加在虚拟PCIe控制器下的总线上;S5:启动root客户机,使得root客户机的Linux系统访问虚拟PCIe设备,在root客户机的Linux系统中能够直接访问物理PCIe设备;S6:隔离none root客户机,修改none root客户机上运行的Linux系统的设备树文件,使得none root客户机的Linux系统启动时按照修改后的设备树文件枚举PCIe设备;S7:在hypervisor中增加ECAM空间地址转换表,以便将none root客户机Linux访问的第一个PCIe设备的ECAM地址转换成主机上真实的PCIe设备的ECAM地址;S8:修改网卡驱动,使得网卡工作在INTx中断模式,并将修改后的网卡驱动放入none root客户机Linux系统的文件系统中;S9:将主机的Linux系统的设备树文件中的INTx中断的INTA中断号配置信息配置到none root客户机配置文件中;S10:将none root客户机的Linux系统的设备树文件中配置的虚拟PCIe控制器使用的INTx中断的INTA中断号配置信息配置到none root客户机配置文件中;将虚拟PCIe设备中的INTx中断配置信息隔离到none root客户机中;S11:通过“1:1”的方式将主机预留的物理内存映射到none root客户机,作为none root客户机系统内存;S12:启动none root客户机将主机上的PCIe网卡隔离到none root客户机上。2.根据权利要求1所述的虚拟机同时支持PCIe虚拟设备和物理设备的方法,其特征在于,步骤S3是通过以下步骤实现的:S31:主机的Linux系统上通过cat /proc/iomem命令获取...
【专利技术属性】
技术研发人员:崔建英,申利飞,张云飞,黄磊,
申请(专利权)人:麒麟软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。