本发明涉及pcie设备领域,具体涉及一种在jailhouse实现pcie设备隔离的方法。
背景技术:
1、jailhouse是用于实现设备隔离的虚拟化软件,是一个基于hypervisor虚拟化技术的linux静态分区管理程序,其可以运行linux、裸机程序或rtos程序。jailhouse使用cell单元节点来配置cpu和设备硬件平台的虚拟化功能,且各个节点分配的资源互不干扰。host os作为root cell,guest os作为inmate cell,一旦jailhouse被启动,在inmate空间就会运行相应的程序,也就是说在linux端分配了相关的硬件资源给inmate,它完全可以独立控制硬件且不再需要外部系统的支持。
2、pci express(pcie)标准的出现是为了满足网络设备对更高带宽、更大灵活性和更好性能的需求。pcie在首次亮相后已经得到充分开发并广泛应用于许多网络设备。pcie卡是指一种具有pcie接口的网络适配器,在主板级连接中用作扩展卡接口。pci-e与 pci-x、pci是具有不同设计和拓扑的三个版本的网络适配器,最新的pcie卡已经进行了改进,成为选择网卡时的必然趋势。
3、jailhouse可以对pcie设备进行物理隔离,也就是说可以把pcie设备当作一种资源分配给各个虚拟机使用。现有的jailhouse设计框架决定了在arm或arm64架构cpu隔离pcie设备不可行,主要存在的问题是pcie总线初始化和gic初始化在jailhouse root cell完成,在jailhouse inmate cell拿不到pcie总线和gic资源,hypervisor(管理程序)无法把msi、msix中断注入到相应inmate cell。
技术实现思路
1、本发明的主要目的是针对基于jailhouse现有框架无法把pcie设备隔离给arm/arm64架构cpu inmate cell这一问题,提出一种把pcie root complex隔离给inmate cell的方法,从而实现pcie设备的隔离。
2、为了完成上述目的,本发明提供了一种在jailhouse实现pcie设备隔离的方法,方法包括:
3、修改host os设备树文件,防止host os初始化pcie总线和gic-its;
4、修改host os在jailhouse中的配置文件,在jailhouse hypervisor层会对pcie和gic-its进行资源分配,以供guest os来使用;
5、修改guest os设备树文件,使得所有pcie和gic-its相关的初始化过程都由guestos来完成;
6、修改guest os在jailhouse中的配置文件,以便jailhouse初始化guest os资源;
7、在jailhouse hypervisor层增加对gicr_pendbaser寄存器访问权限,用以保证guest os中的避免pcie设备的msi/msix中断能够频繁访问到gicr_pendbaser寄存器资源。
8、优选的,方法包括:
9、修改host os设备树文件,去除pcie总线描述节点和gic-its描述节点;
10、修改host os在jailhouse中的配置文件,增加pcie和gic-its相关内存段的描述;
11、修改guest os设备树文件,增加pcie总线描述节点和gic-its描述节点;
12、修改guest os在jailhouse中的配置文件,增加pcie和gic-its相关内存段;
13、在jailhouse hypervisor层增加对gicr_pendbaser寄存器访问权限,用以保证guest os中的pcie设备msi/msix中断能够访问到gicr_pendbaser寄存器资源。
14、进一步优选的,host os中的gic-its在jailhouse中的资源包括gic its地址空间大小、jailhouse访问gic-its内存的权限、gic-its的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问gic-its内存的权限包括读权限、写权限和输入输出权限。
15、更进一步优选的,host os中的pcie在jailhouse中的资源包括:
16、pcie ecam资源、pcie io资源、pcie mem32资源和pcie mem64资源,其中,
17、pcie ecam资源包括pcie ecam地址空间大小、jailhouse访问pcie ecam的权限、pcie ecam的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie ecam的权限包括读权限、写权限和输入输出权限;
18、pcie io资源包括pcie io地址空间大小、jailhouse访问pcie ecam的权限、pcieio的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie io的权限包括读权限、写权限和输入输出权限;
19、pcie mem32资源包括pcie mem32地址空间大小、jailhouse访问pcie mem32的权限、pcie mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie mem32的权限包括读权限、写权限和输入输出权限;
20、pcie mem64资源包括pcie mem64地址空间大小、jailhouse访问pcie mem64的权限、pcie mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie mem64的权限包括读权限、写权限和输入输出权限。
21、更进一步优选的,guest os中的pcie在jailhouse中的资源包括:
22、pcie ecam资源、pcie io资源、pcie mem32资源和pcie mem64资源,其中,
23、pcie ecam资源包括pcie ecam地址空间大小、jailhouse访问pcie ecam的权限、pcie ecam的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie ecam的权限包括读权限、写权限和输入输出权限;
24、pcie io资源包括pcie io地址空间大小、jailhouse访问pcie ecam的权限、pcieio的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie io的权限包括读权限、写权限和输入输出权限;
25、pcie mem32资源包括pcie mem32地址空间大小、jailhouse访问pcie mem32的权限、pcie mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie mem32的权限包括读权限、写权限和输入输出权限;
26、pcie mem64资源包括pcie mem64地址空间大小、jailhouse访问pcie mem64的权限、pcie mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问pcie mem64的权限包括读权限、写权限和输入输出权限。
27、更进一步优选的,pcie总线描述节点和gic-its描述节点均为linux设备树源文件中的标准格式代码。
28、本发明的有益效果为:
29、本发明通过把pcie root complex隔离给guest os的方法,解决了jailhousehypervisor不能把msi/msix中断注入给guest os的问题。