CN116431293A - 一种在jailhouse实现PCIE设备隔离的方法 - Google Patents
一种在jailhouse实现PCIE设备隔离的方法 Download PDFInfo
- Publication number
- CN116431293A CN116431293A CN202310701490.7A CN202310701490A CN116431293A CN 116431293 A CN116431293 A CN 116431293A CN 202310701490 A CN202310701490 A CN 202310701490A CN 116431293 A CN116431293 A CN 116431293A
- Authority
- CN
- China
- Prior art keywords
- pcie
- jailhouse
- rights
- access
- resources
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000002955 isolation Methods 0.000 title claims abstract description 15
- 238000013468 resource allocation Methods 0.000 claims abstract description 4
- 101000799969 Escherichia coli (strain K12) Alpha-2-macroglobulin Proteins 0.000 claims description 43
- 238000013507 mapping Methods 0.000 claims description 28
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种在jailhouse实现PCIE设备隔离的方法,方法包括:修改Host OS设备树文件,防止Host OS初始化PCIE总线和gic‑its;修改Host OS在jailhouse中的配置文件,在jailhouse hypervisor层会对PCIE和gic‑its进行资源分配,以供Guest OS来使用;修改Guest OS设备树文件,使得所有PCIE和gic‑its相关的初始化过程都由Guest OS来完成;修改Guest OS在jailhouse中的配置文件,以便jailhouse初始化Guest OS资源;在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,用以保证Guest OS中的避免PCIE设备的msi/msix中断能够频繁访问到GICR_PENDBASER寄存器资源。
Description
技术领域
本发明涉及PCIe设备领域,具体涉及一种在jailhouse实现PCIE设备隔离的方法。
背景技术
Jailhouse是用于实现设备隔离的虚拟化软件,是一个基于Hypervisor虚拟化技术的Linux静态分区管理程序,其可以运行linux、裸机程序或RTOS程序。Jailhouse使用Cell单元节点来配置CPU和设备硬件平台的虚拟化功能,且各个节点分配的资源互不干扰。Host OS作为root cell,Guest OS作为inmate cell,一旦Jailhouse被启动,在Inmate空间就会运行相应的程序,也就是说在Linux端分配了相关的硬件资源给Inmate,它完全可以独立控制硬件且不再需要外部***的支持。
PCI Express(PCIe)标准的出现是为了满足网络设备对更高带宽、更大灵活性和更好性能的需求。PCIe在首次亮相后已经得到充分开发并广泛应用于许多网络设备。PCIe卡是指一种具有PCIe接口的网络适配器,在主板级连接中用作扩展卡接口。PCI-E与 PCI-X、PCI是具有不同设计和拓扑的三个版本的网络适配器,最新的PCIe卡已经进行了改进,成为选择网卡时的必然趋势。
Jailhouse可以对PCIE设备进行物理隔离,也就是说可以把PCIE设备当作一种资源分配给各个虚拟机使用。现有的jailhouse设计框架决定了在ARM或ARM64架构CPU隔离PCIE设备不可行,主要存在的问题是PCIE总线初始化和GIC初始化在jailhouse root cell完成,在jailhouse inmate cell拿不到PCIE总线和GIC资源,hypervisor(管理程序)无法把msi、msix中断注入到相应inmate cell。
发明内容
本发明的主要目的是针对基于jailhouse现有框架无法把PCIE设备隔离给ARM/ARM64架构CPU inmate cell这一问题,提出一种把PCIE root complex隔离给inmate cell的方法,从而实现PCIE设备的隔离。
为了完成上述目的,本发明提供了一种在jailhouse实现PCIE设备隔离的方法,方法包括:
修改Host OS设备树文件,防止Host OS初始化PCIE总线和gic-its;
修改Host OS在jailhouse中的配置文件,在jailhouse hypervisor层会对PCIE和gic-its进行资源分配,以供Guest OS来使用;
修改Guest OS设备树文件,使得所有PCIE和gic-its相关的初始化过程都由GuestOS来完成;
修改Guest OS在jailhouse中的配置文件,以便jailhouse初始化Guest OS资源;
在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,用以保证Guest OS中的避免PCIE设备的msi/msix中断能够频繁访问到GICR_PENDBASER寄存器资源。
优选的,方法包括:
修改Host OS设备树文件,去除PCIE总线描述节点和gic-its描述节点;
修改Host OS在jailhouse中的配置文件,增加PCIE和gic-its相关内存段的描述;
修改Guest OS设备树文件,增加PCIE总线描述节点和gic-its描述节点;
修改Guest OS在jailhouse中的配置文件,增加PCIE和gic-its相关内存段;
在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,用以保证Guest OS中的PCIE设备msi/msix中断能够访问到GICR_PENDBASER寄存器资源。
进一步优选的,Host OS中的gic-its在jailhouse中的资源包括GIC ITS地址空间大小、jailhouse访问gic-its内存的权限、gic-its的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问gic-its内存的权限包括读权限、写权限和输入输出权限。
更进一步优选的,Host OS中的PCIE在jailhouse中的资源包括:
PCIE ECAM资源、PCIE IO资源、PCIE mem32资源和PCIE mem64资源,其中,
PCIE ECAM资源包括PCIE ECAM地址空间大小、jailhouse访问PCIE ECAM的权限、PCIE ECAM的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE ECAM的权限包括读权限、写权限和输入输出权限;
PCIE IO资源包括PCIE IO地址空间大小、jailhouse访问PCIE ECAM的权限、PCIEIO的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE IO的权限包括读权限、写权限和输入输出权限;
PCIE mem32资源包括PCIE mem32地址空间大小、jailhouse访问PCIE mem32的权限、PCIE mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem32的权限包括读权限、写权限和输入输出权限;
PCIE mem64资源包括PCIE mem64地址空间大小、jailhouse访问PCIE mem64的权限、PCIE mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem64的权限包括读权限、写权限和输入输出权限。
更进一步优选的,Guest OS中的PCIE在jailhouse中的资源包括:
PCIE ECAM资源、PCIE IO资源、PCIE mem32资源和PCIE mem64资源,其中,
PCIE ECAM资源包括PCIE ECAM地址空间大小、jailhouse访问PCIE ECAM的权限、PCIE ECAM的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE ECAM的权限包括读权限、写权限和输入输出权限;
PCIE IO资源包括PCIE IO地址空间大小、jailhouse访问PCIE ECAM的权限、PCIEIO的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE IO的权限包括读权限、写权限和输入输出权限;
PCIE mem32资源包括PCIE mem32地址空间大小、jailhouse访问PCIE mem32的权限、PCIE mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem32的权限包括读权限、写权限和输入输出权限;
PCIE mem64资源包括PCIE mem64地址空间大小、jailhouse访问PCIE mem64的权限、PCIE mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem64的权限包括读权限、写权限和输入输出权限。
更进一步优选的,PCIE总线描述节点和gic-its描述节点均为linux设备树源文件中的标准格式代码。
本发明的有益效果为:
本发明通过把PCIE root complex隔离给Guest OS的方法,解决了jailhousehypervisor不能把msi/msix中断注入给Guest OS的问题。
具体实施方式
下面结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
实施例一
本实施例提供了一种在jailhouse实现PCIE设备隔离的方法,具体包括:
修改Host OS设备树文件,防止Host OS初始化PCIE总线和gic-its,在本实施例中,通过去除PCIE总线描述节点和gic-its描述节点实现的;
修改Host OS在jailhouse中的配置文件,在jailhouse hypervisor层会对PCIE和gic-its进行资源分配,以供Guest OS来使用,在本实施例中,通过增加PCIE和gic-its相关内存段的描述实现的;
修改Guest OS设备树文件,使得所有PCIE和gic-its相关的初始化过程都由GuestOS来完成,在本实施例中,通过增加PCIE和gic-its相关内存段实现的;
修改Guest OS在jailhouse中的配置文件,以便jailhouse初始化Guest OS资源,在本实施例中,通过增加PCIE总线描述节点和gic-its描述节点实现的;
在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,避免PCIE设备的msi/msix中断频繁访问GICR_PENDBASER寄存器。
在本实施例中,Host OS中的gic-its在jailhouse中的资源包括GIC ITS地址空间大小、jailhouse访问gic-its内存的权限、gic-its的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问gic-its内存的权限包括读权限、写权限和输入输出权限。
在本实施例中,Host OS中的PCIE在jailhouse中的资源包括:
PCIE ECAM资源、PCIE IO资源、PCIE mem32资源和PCIE mem64资源,其中,
PCIE ECAM资源包括PCIE ECAM地址空间大小、jailhouse访问PCIE ECAM的权限、PCIE ECAM的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE ECAM的权限包括读权限、写权限和输入输出权限;
PCIE IO资源包括PCIE IO地址空间大小、jailhouse访问PCIE ECAM的权限、PCIEIO的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE IO的权限包括读权限、写权限和输入输出权限;
PCIE mem32资源包括PCIE mem32地址空间大小、jailhouse访问PCIE mem32的权限、PCIE mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem32的权限包括读权限、写权限和输入输出权限;
PCIE mem64资源包括PCIE mem64地址空间大小、jailhouse访问PCIE mem64的权限、PCIE mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem64的权限包括读权限、写权限和输入输出权限。
在本实施例中,修改Guest OS设备树文件,增加PCIE总线描述节点和gic-its描述节点。
在本实施例中,Guest OS中的PCIE在jailhouse中的资源包括(这部分增加的内存段与Host OS中的PCIE在jailhouse中的资源完全相同,因此,不再详细赘述代码内容。):
PCIE ECAM资源、PCIE IO资源、PCIE mem32资源和PCIE mem64资源,其中,
PCIE ECAM资源包括PCIE ECAM地址空间大小、jailhouse访问PCIE ECAM的权限、PCIE ECAM的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE ECAM的权限包括读权限、写权限和输入输出权限;
PCIE IO资源包括PCIE IO地址空间大小、jailhouse访问PCIE ECAM的权限、PCIEIO的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE IO的权限包括读权限、写权限和输入输出权限;
PCIE mem32资源包括PCIE mem32地址空间大小、jailhouse访问PCIE mem32的权限、PCIE mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem32的权限包括读权限、写权限和输入输出权限;
PCIE mem64资源包括PCIE mem64地址空间大小、jailhouse访问PCIE mem64的权限、PCIE mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem64的权限包括读权限、写权限和输入输出权限。
在本实施例中,在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,因为PCIE设备的msi/msix中断会频繁访问GICR_PENDBASER寄存器。
实施例二
本实施例在实施例一的基础上进行运行的。
本实施例提供了一种在jailhouse实现PCIE设备隔离的方法,具体包括:
1、修改Host OS设备树文件,去除PCIE总线描述节点和gic-its描述节点,目的是不让Host OS初始化PCIE总线和gic-its。
2、修改Host OS在jailhouse中的配置文件,增加PCIE和gic-its相关内存段的描述。这是因为,在jailhouse hypervisor层会对PCIE和gic-its进行资源分配,以供GuestOS来使用。
/* GIC ITS */
{
.phys_start = 0x29920000,
.virt_start = 0x29920000,
.size = 0x20000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
(以上代码表示把GIC ITS作为资源划分给hypervisor。其中.phys_start和.virt_start字段表征的是GIC ITS的物理地址和虚拟地址,在jailhouse中采取线性映射,所以这里物理地址和虚拟地址相等。字段.size表征GIC ITS地址空间大小。字段.flags表征jailhouse访问此段内存的权限,JAILHOUSE_MEM_READ表示读权限,JAILHOUSE_MEM_WRITE表示写权限,JAILHOUSE_MEM_IO表示输入输出权限。)
/* PCIe ECAM */
{
.phys_start = 0x40000000,
.virt_start = 0x40000000,
.size = 0x10000000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
(以上代码表示把PCIE ECAM作为资源分配给hypervisor,并设置访问权限为读、写和输入输出。)
/* PCIe IO */
{
.phys_start = 0x50000000,
.virt_start = 0x50000000,
.size = 0x8000000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
(以上表示把PCIE IO空间地址资源分配给hypervisor,并设置访问权限为读、写和输入输出。)
/* PCIe Mem32 */
{
.phys_start = 0x58000000,
.virt_start = 0x58000000,
.size = 0x28000000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
(以上表示把PCIE mem32空间地址资源分配给hypervisor,并设置访问权限为读、写和输入输出。)
/* PCIe Mem64 */
{
.phys_start = 0x1000000000,
.virt_start = 0x1000000000,
.size = 0x1000000000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
(以上表示把PCIE mem64空间地址资源分配给hypervisor,并设置访问权限为读、写和输入输出。)
3、修改Guest OS设备树文件,增加PCIE总线描述节点和gic-its描述节点。所有PCIE和gic-its相关的初始化过程都由Guest OS来完成。
pcie {
compatible = "pci-host-ecam-generic";
device_type = "pci";
#address-cells = <0x03>;
#size-cells = <0x02>;
#interrupt-cells = <0x01>;
reg = <0x00 0x40000000 0x00 0x10000000>;
msi-parent = <0x04>;
bus-range = <0x00 0xff>;
interrupt-map-mask = <0x00 0x00 0x00 0x07>;
interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x000x00 0x1c 0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x00 0x00 0x1d 0x04 0x00 0x000x00 0x03 0x01 0x00 0x00 0x00 0x1e 0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x000x00 0x1f 0x04>;
ranges = <0x1000000 0x00 0x00 0x00 0x50000000 0x000xf00000 0x2000000 0x00 0x58000000 0x00 0x58000000 0x00 0x28000000 0x30000000x10 0x00 0x10 0x00 0x10 0x00>;
};
(以上代码是linux设备树源文件标准格式代码,表征的是pcie总线资源。这会在linux kernel加载pcie设备驱动的时候用到。)
interrupt-controller@29900000 {
compatible = "arm,gic-v3";
#interrupt-cells = <0x03>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges;
interrupt-controller;
reg = <0x00 0x29900000 0x00 0x20000 0x00 0x29980000 0x000x80000 0x00 0x29c00000 0x00 0x10000 0x00 0x29c10000 0x00 0x10000 0x000x29c20000 0x00 0x10000>;
interrupts = <0x01 0x09 0x04>;
phandle = <0x01>;
gic-its@29920000 {
compatible = "arm,gic-v3-its";
msi-controller;
reg = <0x00 0x29920000 0x00 0x20000>;
phandle = <0x05>;
};
};
(以上表示linux设备树源文件对GIC的描述。其中节点gic-its描述是GIC中的ITS模块,这在Linux kernel启动过程中初始化GIC的后会用到。)
4、修改Guest OS在jailhouse中的配置文件,增加PCIE和gic-its相关内存段。这些内存段在jailhouse初始化Guest OS资源的时候会用到。这部分增加的内存段和步骤2中的完全相同,因此,不再详述。
5、在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,因为PCIE设备的msi/msix中断会频繁访问GICR_PENDBASER寄存器。
static enum mmio_result gicv3_handle_redist_access(void *arg,
struct mmio_access *mmio)
{
……
switch (mmio->address) {
case GICR_TYPER:
mmio_perform_access(cpu_public->gicr.base, mmio);
if (cpu_public->cpu_id == last_gicr)
mmio->value |= GICR_TYPER_Last;
return MMIO_HANDLED;
case GICR_TYPER + 4:
mmio_perform_access(cpu_public->gicr.base, mmio);
return MMIO_HANDLED;
……
case GICR_PENDBASER:
mmio_perform_access(cpu_public->gicr.base, mmio);
return MMIO_HANDLED;
……
}
上面代码中, case GICR_PENDBASER之后的代码,含义是在hypervisor访问GICR相关寄存器时增加对GICR_PENDBASER寄存器访问权限。当访问GICR_PENDBASER寄存器的时候,hypervisor会进行拦截,进而执行到gicv3_handle_redist_access函数,进一步的会调用mmio_perform_access来执行对GICR_PENDBASER寄存器的读、写或者输入输出操作。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Claims (6)
1.一种在jailhouse实现PCIE设备隔离的方法,其特征在于,所述方法包括:
修改Host OS设备树文件,防止Host OS初始化PCIE总线和gic-its;
修改Host OS在jailhouse中的配置文件,在jailhouse hypervisor层会对PCIE和gic-its进行资源分配,以供Guest OS来使用;
修改Guest OS设备树文件,使得所有PCIE和gic-its相关的初始化过程都由Guest OS来完成;
修改Guest OS在jailhouse中的配置文件,以便jailhouse初始化Guest OS资源;
在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,用以保证GuestOS中的避免PCIE设备的msi/msix中断能够频繁访问到GICR_PENDBASER寄存器资源。
2.根据权利要求1所述的一种在jailhouse实现PCIE设备隔离的方法,其特征在于,所述方法包括:
修改Host OS设备树文件,去除PCIE总线描述节点和gic-its描述节点;
修改Host OS在jailhouse中的配置文件,增加PCIE和gic-its相关内存段的描述;
修改Guest OS设备树文件,增加PCIE总线描述节点和gic-its描述节点;
修改Guest OS在jailhouse中的配置文件,增加PCIE和gic-its相关内存段;
在jailhouse hypervisor层增加对GICR_PENDBASER寄存器访问权限,用以保证GuestOS中的避免PCIE设备的msi/msix中断能够频繁访问到GICR_PENDBASER寄存器资源。
3.根据权利要求2所述的一种在jailhouse实现PCIE设备隔离的方法,其特征在于,Host OS中的gic-its在jailhouse中的资源包括GIC ITS地址空间大小、jailhouse访问gic-its内存的权限、gic-its的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问gic-its内存的权限包括读权限、写权限和输入输出权限。
4.根据权利要求3所述的一种在jailhouse实现PCIE设备隔离的方法,其特征在于,Host OS中的PCIE在jailhouse中的资源包括:
PCIE ECAM资源、PCIE IO资源、PCIE mem32资源和PCIE mem64资源,其中,
PCIE ECAM资源包括PCIE ECAM地址空间大小、jailhouse访问PCIE ECAM的权限、PCIEECAM的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE ECAM的权限包括读权限、写权限和输入输出权限;
PCIE IO资源包括PCIE IO地址空间大小、jailhouse访问PCIE ECAM的权限、PCIE IO的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE IO的权限包括读权限、写权限和输入输出权限;
PCIE mem32资源包括PCIE mem32地址空间大小、jailhouse访问PCIE mem32的权限、PCIE mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem32的权限包括读权限、写权限和输入输出权限;
PCIE mem64资源包括PCIE mem64地址空间大小、jailhouse访问PCIE mem64的权限、PCIE mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem64的权限包括读权限、写权限和输入输出权限。
5.根据权利要求4所述的一种在jailhouse实现PCIE设备隔离的方法,其特征在于,Guest OS中的PCIE在jailhouse中的资源包括:
PCIE ECAM资源、PCIE IO资源、PCIE mem32资源和PCIE mem64资源,其中,
PCIE ECAM资源包括PCIE ECAM地址空间大小、jailhouse访问PCIE ECAM的权限、PCIEECAM的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE ECAM的权限包括读权限、写权限和输入输出权限;
PCIE IO资源包括PCIE IO地址空间大小、jailhouse访问PCIE ECAM的权限、PCIE IO的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE IO的权限包括读权限、写权限和输入输出权限;
PCIE mem32资源包括PCIE mem32地址空间大小、jailhouse访问PCIE mem32的权限、PCIE mem32的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem32的权限包括读权限、写权限和输入输出权限;
PCIE mem64资源包括PCIE mem64地址空间大小、jailhouse访问PCIE mem64的权限、PCIE mem64的物理地址和虚拟地址,其中,物理地址和虚拟地址两者在jailhouse中采取线性映射;jailhouse访问PCIE mem64的权限包括读权限、写权限和输入输出权限。
6.根据权利要求5所述的一种在jailhouse实现PCIE设备隔离的方法,其特征在于,PCIE总线描述节点和gic-its描述节点均为linux设备树源文件中的标准格式代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310701490.7A CN116431293B (zh) | 2023-06-14 | 2023-06-14 | 一种在jailhouse实现PCIE设备隔离的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310701490.7A CN116431293B (zh) | 2023-06-14 | 2023-06-14 | 一种在jailhouse实现PCIE设备隔离的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431293A true CN116431293A (zh) | 2023-07-14 |
CN116431293B CN116431293B (zh) | 2023-09-26 |
Family
ID=87085918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310701490.7A Active CN116431293B (zh) | 2023-06-14 | 2023-06-14 | 一种在jailhouse实现PCIE设备隔离的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431293B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719613A (zh) * | 2023-08-10 | 2023-09-08 | 麒麟软件有限公司 | 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法 |
CN116954830A (zh) * | 2023-09-18 | 2023-10-27 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984591A (zh) * | 2014-05-15 | 2014-08-13 | 中国人民解放军国防科学技术大学 | 计算机虚拟化***的PCI设备INTx中断投递方法 |
CN107783913A (zh) * | 2016-08-31 | 2018-03-09 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN107861763A (zh) * | 2017-12-01 | 2018-03-30 | 天津麒麟信息技术有限公司 | 一种面向飞腾处理器休眠过程的中断路由环境恢复方法 |
CN108875360A (zh) * | 2017-05-12 | 2018-11-23 | 南京大学 | 基于kvm虚拟化的网络服务隔离设计 |
US20190068672A1 (en) * | 2003-11-21 | 2019-02-28 | Intel Corporation | System And Method For Caching Data |
US20210049263A1 (en) * | 2018-03-22 | 2021-02-18 | Trulyprotect Oy | Systems and methods for hypervisor-based protection of code |
CN113918311A (zh) * | 2021-12-10 | 2022-01-11 | 北京智芯微电子科技有限公司 | 多核***的软中断路由方法及响应软中断的方法和芯片 |
CN115269057A (zh) * | 2022-09-23 | 2022-11-01 | 麒麟软件有限公司 | 基于设备树的隔离***生成配置文件的方法 |
CN116204933A (zh) * | 2023-05-05 | 2023-06-02 | 麒麟软件有限公司 | 一种ARM64架构下基于jailhouse隔离PCIe网卡的方法 |
-
2023
- 2023-06-14 CN CN202310701490.7A patent/CN116431293B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190068672A1 (en) * | 2003-11-21 | 2019-02-28 | Intel Corporation | System And Method For Caching Data |
CN103984591A (zh) * | 2014-05-15 | 2014-08-13 | 中国人民解放军国防科学技术大学 | 计算机虚拟化***的PCI设备INTx中断投递方法 |
CN107783913A (zh) * | 2016-08-31 | 2018-03-09 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN108875360A (zh) * | 2017-05-12 | 2018-11-23 | 南京大学 | 基于kvm虚拟化的网络服务隔离设计 |
CN107861763A (zh) * | 2017-12-01 | 2018-03-30 | 天津麒麟信息技术有限公司 | 一种面向飞腾处理器休眠过程的中断路由环境恢复方法 |
US20210049263A1 (en) * | 2018-03-22 | 2021-02-18 | Trulyprotect Oy | Systems and methods for hypervisor-based protection of code |
CN113918311A (zh) * | 2021-12-10 | 2022-01-11 | 北京智芯微电子科技有限公司 | 多核***的软中断路由方法及响应软中断的方法和芯片 |
CN115269057A (zh) * | 2022-09-23 | 2022-11-01 | 麒麟软件有限公司 | 基于设备树的隔离***生成配置文件的方法 |
CN116204933A (zh) * | 2023-05-05 | 2023-06-02 | 麒麟软件有限公司 | 一种ARM64架构下基于jailhouse隔离PCIe网卡的方法 |
Non-Patent Citations (1)
Title |
---|
JAN-KISZKA: "jailhouse", pages 64, Retrieved from the Internet <URL:https://github.com/siemens/jailhouse/blob/master/configs/arm64/dts/inmate-amd-seattle.dts> * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719613A (zh) * | 2023-08-10 | 2023-09-08 | 麒麟软件有限公司 | 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法 |
CN116719613B (zh) * | 2023-08-10 | 2023-10-31 | 麒麟软件有限公司 | 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法 |
CN116954830A (zh) * | 2023-09-18 | 2023-10-27 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
CN116954830B (zh) * | 2023-09-18 | 2023-12-26 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116431293B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116431293B (zh) | 一种在jailhouse实现PCIE设备隔离的方法 | |
US9940291B2 (en) | Assigning processors to memory mapped configuration | |
RU2532708C2 (ru) | Способ и устройство для осуществления операции ввода/вывода в среде виртуализации | |
US7434224B2 (en) | Plural operating systems having interrupts for all operating systems processed by the highest priority operating system | |
US5953516A (en) | Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device | |
EP2409234B1 (en) | Inter operating system memory hotswap to support memory growth in a non-virtualized system | |
US7526578B2 (en) | Option ROM characterization | |
US9423958B2 (en) | System and method for managing expansion read-only memory and management host thereof | |
US20090265708A1 (en) | Information Processing Apparatus and Method of Controlling Information Processing Apparatus | |
US20150026678A1 (en) | Control method for computer, and computer | |
US10620963B2 (en) | Providing fallback drivers for IO devices in a computing system | |
EP4220394A1 (en) | Chip system, method for processing virtual interrupt, and corresponding device | |
CN111857840A (zh) | 基本输入输出***bios启动方法及装置 | |
CN114417373A (zh) | 一种NVMe-oF用户态客户端的数据访问方法和装置 | |
US10534732B2 (en) | Exposing memory-mapped IO devices to drivers by emulating PCI bus and PCI device configuration space | |
EP2761483B1 (en) | Protocol neutral fabric | |
US7484083B1 (en) | Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment | |
US7284084B2 (en) | ROM scan memory expander | |
WO2020177567A1 (zh) | 一种迁移数据的方法、装置及*** | |
CN109408407B (zh) | 显示内存的分配方法和装置 | |
CA2521748A1 (en) | Operating systems | |
CN112559120B (zh) | 定制化pcie总线io虚拟化支撑方法 | |
CN109408193B (zh) | 虚拟机实现方法、装置及计算机设备 | |
WO1998011489A1 (en) | A method and system for device virtualization based on an interrupt request in a dos-based environment | |
CN115562801A (zh) | 一种多cpu架构虚拟机pci总线地址管理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |