CN117762560A - 一种lpi中断虚拟化方法、装置、操作系统及存储介质 - Google Patents

一种lpi中断虚拟化方法、装置、操作系统及存储介质 Download PDF

Info

Publication number
CN117762560A
CN117762560A CN202311775528.1A CN202311775528A CN117762560A CN 117762560 A CN117762560 A CN 117762560A CN 202311775528 A CN202311775528 A CN 202311775528A CN 117762560 A CN117762560 A CN 117762560A
Authority
CN
China
Prior art keywords
virtual machine
physical
command
interrupt
simulation
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.)
Pending
Application number
CN202311775528.1A
Other languages
English (en)
Inventor
田焱
彭元志
殷灿菊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kedong Guangzhou Software Technology Co Ltd
Original Assignee
Kedong Guangzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kedong Guangzhou Software Technology Co Ltd filed Critical Kedong Guangzhou Software Technology Co Ltd
Priority to CN202311775528.1A priority Critical patent/CN117762560A/zh
Publication of CN117762560A publication Critical patent/CN117762560A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供了一种LPI中断虚拟化方法、装置、操作系统及存储介质,所述方法包括:在创建虚拟机时hypervisor将物理设备分配给所述虚拟机;首次运行创建的所述虚拟机时,通过模拟ITS命令在物理ITS映射表里建立所述虚拟机、所述设备的设备ID和事件ID对应的表项;hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机;hypervisor向该虚拟机注入所述物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。本发明实施例的技术方案通过为虚拟机静态分配设备和在物理ITS映射表里建立对应的表项,把物理LPI中断映射到对应的虚拟机上,实现多个虚拟机使用虚拟vLPI中断。

Description

一种LPI中断虚拟化方法、装置、操作系统及存储介质
技术领域
本发明涉及操作系统领域,尤其涉及一种LPI中断虚拟化方法、装置、操作系统及存储介质。
背景技术
目前,在Type1虚拟化方案中,中断的虚拟化分为普通中断虚拟化和LPI中断虚拟化,而LPI与普通中断是不同的,其在运行时进行动态分配的,无法通过LPI中断号来进行唯一标识,ITS的虚拟化只能针对一个虚拟机,其他虚拟机无法使用ITS功能,无法使用LPI中断。
例如,目前xen虚拟化方案只允许dom0使用ITS和LPI,显然,这种方法存在着使用的局限性,无法满足每个虚拟机都能使用ITS和LPI的场景。
发明内容
有鉴于此,本发明实施例提供了一种LPI中断虚拟化方法、装置、操作系统及存储介质。本发明实施例的技术方案在基于type1虚拟化的计算机系统里,通过为虚拟机静态分配设备和在物理ITS映射表里建立对应的表项,把物理LPI中断映射到对应的虚拟机上,实现多个虚拟机使用虚拟vLPI中断。
第一方面,本发明实施例提供了一种LPI中断虚拟化方法,包括:在创建虚拟机时hypervisor将物理设备分配给所述虚拟机;首次运行创建的所述虚拟机时,通过模拟ITS命令在物理ITS映射表里建立所述虚拟机、所述设备的设备ID和事件ID对应的表项;hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机;Hypervisor向该虚拟机注入所述物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。
由上,在基于type1虚拟化的计算机系统,通过为虚拟机静态分配设备和在物理ITS映射表里建立对应的表项,把物理LPI中断映射到对应的虚拟机上,实现多个虚拟机使用虚拟vLPI中断。
在第一方面的一种可能实施方式中,所述模拟ITS命令包括:模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令,分别用于模拟物理MAPC命令、物理MAPD命令和物理MAPTI命令。
由上,通过模拟ITS命令模拟物理ITS命令,使每个虚拟机都能发出模拟ITS命令,以模拟物理ITS命令。
在第一方面的一种可能实施方式中,所述的首次运行创建的所述虚拟机时,通过模拟ITS命令在物理ITS映射表里建立所述虚拟机、所述设备的设备ID和事件ID对应的表项,包括:所述虚拟机发送模拟MAPC命令时,hypervisor在ITS的物理Collection表中添加所述虚拟机对应的表项:所述虚拟机发送模拟MAPD命令且其包括所述设备ID时,hypervisor利用ITS的物理MAPD命令在ITS的物理device表中添加所述设备ID对应的表项;所述虚拟机发送模拟MAPTI命令且其包括所述设备ID时,hypervisor利用ITS的物理MAPTI命令在相应的物理ITT表里添加所述设备的物理LPI中断对应的表项。
由上,通过模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令在物理Collection表、物理device表和物理ITT表建立物理LPI中断的虚拟机、设备ID和事件ID对应的表项,以把物理LPI中断映射到其对应设备的虚拟机上,使物理LPI中断可以注入到对应的虚拟机中,避免按照中断号无法注入物理LPI中断的问题。
在第一方面的一种可能实施方式中,首次运行创建的所述虚拟机时,还包括:所述虚拟机通过模拟MAPC命令建立其模拟Collection表,其实现所述虚拟机的各物理LPI中断的Collection ID与所述虚拟机对应的vCPU映射;所述虚拟机通过模拟MAPD命令建立其模拟device表,其实现所述虚拟机的各设备ID与模拟ITT表的基地址映射;所述虚拟机通过模拟MAPTI命令建立其模拟ITT表,其实现所述虚拟机的各事件ID与CollectionID和虚拟vLPI中断的映射。
由上,通过模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令在模拟Collection表、模拟device表和模拟ITT表,以根据这些虚拟表获得虚拟vLPI中断的对应Redistributor和物理CPU,以更新其上虚拟vLPI中断对应的在缓存中信息,以进行物理LPI中断的注入和处理。
在第一方面的一种可能实施方式中,所述模拟ITS命令还包括模拟物理INV命令,还包括:所述虚拟机发送模拟INV命令且其包括所述设备ID和所述事件ID时,根据所述模拟device表和所述模拟ITT表获得对应的Collection ID和虚拟vLPI中断,hypervisor利用该虚拟vLPI中断的配置信息更新Collection ID对应的Redistributor中对应的缓存信息。
由上,通过模拟INV命令获得虚拟vLPI中断的对应Redistributor,以更新该对应Redistributor上的虚拟vLPI中断对应的在缓存中信息,以进行物理LPI中断的注入。
在第一方面的一种可能实施方式中,所述模拟ITS命令还包括模拟物理INVALL命令,还包括:所述虚拟机发送模拟INVALL命令且其包括Collection ID时,根据所述模拟Collection表获得其对应的vCPU,hypervisor利用该vCPU上所有虚拟vLPI中断的配置信息更新该vCPU对应的物理CPU中相应的缓存信息。
由上,通过模拟INVALL命令获得虚拟vLPI中断的对应物理CPU,以更新该对应物理CPU上的虚拟vLPI中断对应的在缓存中信息,以进行物理LPI处理。
在第一方面的一种可能实施方式中,所述模拟ITS命令还包括模拟SYNC命令,所述虚拟机在之前发送的所有模拟ITS命令都处理完后发送模拟SYNC命令,hypervisor利用ITS物理SYNC命令使物理ITS命令都生效。
由上,模拟SYNC命令通过ITS物理SYNC命令使之前的物理ITS命令都生效。,从而之前的各模拟ITS命令生效。
在第一方面的一种可能实施方式中,所述虚拟机发送模拟ITS命令时,更新模拟ITS寄存器GITS_CWRITER,并陷入到hypervisor进行模拟ITS命令对应的物理ITS命令处理,处理完物理ITS命后更新模拟ITS寄存器GITS_CREADR。
由上,通过模拟ITS命令触发模拟ITS寄存器GITS_CWRITER和模拟ITS寄存器GITS_CREADR的更新,以对模拟ITS命令对应的物理ITS命令进行处理。
在第一方面的一种可能实施方式中,所述虚拟机通过写访问模拟ITS寄存器GITS_BASER0设置物理Collection表的基地址,其中,所述虚拟机写访问模拟ITS寄存器GITS_BASER0时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER0保存所述虚拟机写的值;所述虚拟机通过写访问模拟ITS寄存器GITS_BASER1设置物理device表的基地址,其中,所述虚拟机写访问模拟ITS寄存器GITS_BASER1时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER1保存所述虚拟机写的值。
由上,虚拟机通过写访问模拟ITS寄存器GITS_BASER0和GITS_BASER1,使hypervisor设置正确的物理Collection表和物理device表的基地址。
第二方面,本发明实施例提供了一种LPI中断虚拟化装置,包括:设备分配模块,用于在创建虚拟机时hypervisor将物理设备分配给所述虚拟机;映射表创建模块,用于首次运行创建的所述虚拟机时,通过模拟ITS命令根据所述虚拟机、设备ID和事件ID在物理ITS映射表里建立所述设备对应的表项;中断映射模块,用于hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机;中断注入模块,hypervisor向该虚拟机注入所述物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。
由上,在基于type1虚拟化的计算机系统,通过为虚拟机静态分配设备和在物理ITS映射表里建立对应的表项,把物理LPI中断映射到对应的虚拟机上,实现多个虚拟机使用虚拟vLPI中断。
在第二方面的一种可能实施方式中,所述模拟ITS命令包括:模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令,分别用于模拟物理MAPC命令、物理MAPD命令和物理MAPTI命令。
由上,通过模拟ITS命令模拟物理ITS命令,使每个虚拟机都能发出模拟ITS命令,以模拟物理ITS命令。
在第二方面的一种可能实施方式中,所述映射表创建模块具体用于,包括:所述虚拟机发送模拟MAPC命令时,hypervisor在ITS的物理Collection表中添加所述虚拟机对应的表项:所述虚拟机发送模拟MAPD命令且其包括所述设备ID时,hypervisor利用ITS的物理MAPD命令在ITS的物理device表中添加所述设备ID对应的表项;所述虚拟机发送模拟MAPTI命令且其包括所述设备ID时,hypervisor利用ITS的物理MAPTI命令在相应的物理ITT表里添加所述设备的物理LPI中断对应的表项。
由上,通过模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令在物理Collection表、物理device表和物理ITT表建立物理LPI中断的虚拟机、设备ID和事件ID对应的表项,以把物理LPI中断映射到其对应设备的虚拟机上,使物理LPI中断可以注入到对应的虚拟机中,避免按照中断号无法注入物理LPI中断的问题。
在第二方面的一种可能实施方式中,所述映射表创建模块还具体用于首次运行创建的所述虚拟机时,包括:所述虚拟机通过模拟MAPC命令建立其模拟Collection表,其实现所述虚拟机的各物理LPI中断的Collection ID与所述虚拟机对应的vCPU映射;所述虚拟机通过模拟MAPD命令建立其模拟device表,其实现所述虚拟机的各设备ID与模拟ITT表的基地址映射;所述虚拟机通过模拟MAPTI命令建立其模拟ITT表,其实现所述虚拟机的各事件ID与CollectionID和虚拟vLPI中断的映射。
由上,通过模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令在模拟Collection表、模拟device表和模拟ITT表,以根据这些虚拟表获得虚拟vLPI中断的对应Redistributor和物理CPU,以更新其上虚拟vLPI中断对应的在缓存中信息,以进行物理LPI中断的注入和处理。
在第二方面的一种可能实施方式中,所述模拟ITS命令还包括模拟物理INV命令,还包括:混存更新模块,用于所述虚拟机发送模拟INV命令且其包括所述设备ID和所述事件ID时,根据所述模拟device表和所述模拟ITT表获得对应的Collection ID和虚拟vLPI中断,hypervisor利用该虚拟vLPI中断的配置信息更新Collection ID对应的Redistributor中对应的缓存信息。
由上,通过模拟INV命令获得虚拟vLPI中断的对应Redistributor,以更新该对应Redistributor上的虚拟vLPI中断对应的在缓存中信息,以进行物理LPI中断的注入。
在第二方面的一种可能实施方式中,所述模拟ITS命令还包括模拟物理INVALL命令,所述混存更新模块还用于所述虚拟机发送模拟INVALL命令且其包括Collection ID时,根据所述模拟Collection表获得其对应的vCPU,hypervisor利用该vCPU上所有虚拟vLPI中断的配置信息更新该vCPU对应的物理CPU中相应的缓存信息。
由上,通过模拟INVALL命令获得虚拟vLPI中断的对应物理CPU,以更新该对应物理CPU上的虚拟vLPI中断对应的在缓存中信息,以进行物理LPI处理。
在第二方面的一种可能实施方式中,所述模拟ITS命令还包括模拟SYNC命令,还包括命令同步模块,用于所述虚拟机在之前发送的所有模拟ITS命令都处理完后发送模拟SYNC命令,hypervisor利用ITS物理SYNC命令使物理ITS命令都生效。
由上,模拟SYNC命令通过ITS物理SYNC命令使之前的物理ITS命令都生效,从而之前的各模拟ITS命令生效。
在第二方面的一种可能实施方式中,还包括:寄存器设置模块,用于所述虚拟机发送模拟ITS命令时,更新模拟ITS寄存器GITS_CWRITER,并陷入到hypervisor进行模拟ITS命令对应的物理ITS命令处理,处理完物理ITS命后更新模拟ITS寄存器GITS_CREADR。
由上,通过模拟ITS命令触发模拟ITS寄存器GITS_CWRITER和模拟ITS寄存器GITS_CREADR的更新,以对模拟ITS命令对应的物理ITS命令进行处理。
在第一方面的一种可能实施方式中,所述寄存器设置模块还用于所述虚拟机通过写访问模拟ITS寄存器GITS_BASER0设置物理Collection表的基地址,其中,所述虚拟机写访问模拟ITS寄存器GITS_BASER0时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER0保存所述虚拟机写的值;所述虚拟机通过写访问模拟ITS寄存器GITS_BASER1设置物理device表的基地址,其中,所述虚拟机写访问模拟ITS寄存器GITS_BASER1时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER1保存所述虚拟机写的值。
由上,虚拟机通过写访问模拟ITS寄存器GITS_BASER0和GITS_BASER1,使hypervisor设置正确的物理Collection表和物理device表的基地址。
第三方面,本发明实施例提供了一种操作系统,其被配置为运行第一方面任一实施方式所述方法。
第四方面,本发明实施例提供了一种计算设备,包括:总线;通信接口,其与所述总线连接;至少一个处理器,其与所述总线连接;以及至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行本发明第一方面任一所述实施方式。
附图说明
图1为本发明的一种LPI中断虚拟化方法实施例一的流程示意图;
图2为本发明的一种LPI中断虚拟化方法实施例二的流程示意图;
图3为本发明的一种LPI中断虚拟化装置实施例一的结构示意图;
图4为本发明的一种LPI中断虚拟化装置实施例二的结构示意图;
图5为本发明的计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明实施例提供了一种LPI中断虚拟化方法、装置、操作系统及存储介质,所述方法包括:在创建虚拟机时hypervisor将物理设备分配给所述虚拟机;首次运行创建的所述虚拟机时,通过模拟ITS命令在物理ITS映射表里建立所述虚拟机、所述设备的设备ID和事件ID对应的表项;hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机;Hypervisor向所述虚拟机注入所述物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。
本发明实施例的技术方案在基于type1虚拟化的计算机系统里,通过为虚拟机静态分配设备和在物理ITS映射表里建立对应的表项,把物理LPI中断映射到对应的虚拟机上,实现多个虚拟机使用虚拟vLPI中断。
下面结合附图介绍本发明的各实施例,首先结合图1介绍一种LPI中断虚拟化方法实施例一。
图1示出了一种LPI中断虚拟化方法实施例一的流程,其包括步骤S110至S140。
S110:在创建虚拟机时hypervisor将相应的物理设备分配给该虚拟机。
其中,为每个虚拟机静态分配相应的设备ID,该相应的设备为通过ITS总线发送物理LPI中断的消息给ITS的设备,该相应的设备至少包括PCI设备。
S120:首次运行创建的虚拟机时,通过模拟ITS命令在物理ITS映射表里建立根据该虚拟机、其所分设备的设备ID和事件ID所述设备对应的表项。
其中,模拟ITS命令为对ITS物理命令进行模拟的虚拟机执行的命令,物理ITS映射表包括物理device表、物理ITT表和物理Collection表。
其中,在物理device表、物理ITT表和物理Collection表里建立产生物理LPI中断的设备ID和事件ID对应的表项,以把物理LPI中断映射其对应设备的所属虚拟机上。
在一些实施例中,模拟ITS命令包括:模拟MAPC命令、MAPD命令和模拟MAPTI命令,分别用于模拟ITS的物理MAPC、物理MAPD命令和物理MAPTI命令。
在一些实施例中,在每个虚拟机首次运行时,该虚拟机发送模拟MAPC命令时,hypervisor在ITS的物理Collection表中添加该虚拟机对应的表项,把该表项的CollectinID映射到一个Redistributor,也就是映射到该虚拟机的CPU。
在一些实施例中,在每个虚拟机首次运行时,该虚拟机发送MAPD命令且该命令包括该虚拟机的一个设备ID时,hypervisor通过ITS驱动利用ITS的物理MAPD命令在ITS的物理device表中添加其一个设备ID对应的表项,该表项包括该设备ID对应的物理ITT表的基地址;
在一些实施例中,在每个虚拟机首次运行时,该虚拟机发送模拟MAPTI命令且该命令包括该虚拟机的一个设备ID时,hypervisor为该设备申请其物理LPI中断的识别号,并以该识别号为参数通过ITS驱动利用ITS的物理MAPTI命令在该设备ID对应的物理ITT表里添加该物理LPI中断对应的表项,使ITS根据一个物理LPI中断中设备ID和事件ID,通过物理device表、物理ITT表和物理Collection表把该物理LPI中断映射到对应的Redistributor,以获得处理该物理LPI中断对应vCPU即处理物理LPI中断的虚拟机。
需要强调的是:在一个虚拟机首次运行时,其通过MAPC命令、MAPD命令和模拟MAPTI命令使Hypervisor建立物理Collection表、物理device表和物理ITT表,后面其他虚拟机再首次次运行时在物理Collection表、物理device表和物理ITT表添加其设备的物理LPI中断对应的表项。
在一些实施例中,在每个虚拟机首次运行时,该虚拟机通过模拟MAPC命令建立该虚拟机的模拟Collection表,其实现该虚拟机的各物理LPI中断的Collection ID与处理物理LPI中断的虚拟机相应的vCPU映射。
在一些实施例中,在每个虚拟机首次运行时,该虚拟机通过模拟MAPD命令建立该虚拟机的模拟device表,其实现该虚拟机的各设备ID与相应的虚拟ITT表的基地址映射。
在一些实施例中,在每个虚拟机首次运行时,该虚拟机通过模拟MAPTI命令建立模拟ITT表,其实现该虚拟机的各事件ID与相应的CollectionID和虚拟vLPI中断的映射。
在一些实施例中,通过模拟device表、模拟ITT表和模拟Collection表获取虚拟vLPI的配置信息以更新相应的Redistributor中的和相应的物理CPU中虚拟vLPI中断的缓存信息,也可以根据模拟device表、模拟ITT表和模拟Collection表进行物理LPI中断进行迁移。
在一些实施例中,模拟ITS命令包括模拟INV命令,用于模拟ITS的物理INV命令;每个虚拟机首次运行时,该虚拟机通过模拟INV命令利用根据模拟INV命令包括的设备ID和事件ID在该虚拟机的模拟device表和模拟ITT表获得该设备ID和该事件ID对应的物理LPI中断对应的Collection ID和虚拟vLPI中断,并据该Collection ID获得对应的Redistributor,还利用该虚拟vLPI中断的配置信息更新相应的Redistributor中对应的缓存信息,使该Redistributor根据该缓存信息把该虚拟vLPI中断映射到对应的vCPU上。
在一些实施例中,模拟ITS命令包括模拟INVALL命令,用于模拟ITS的物理INVALL命令;每个虚拟机首次运行时,该虚拟机通过模拟INVALL命令利用根据模拟INVALL命令包括的Collection ID在模拟Collection表获得该Collection ID对应的vCPU,并据此获得该vCPU相应应的物理CPU,还利用该vCPU上所有虚拟vLPI中断的配置信息更新该相应的物理CPU中对应的缓存信息,使该物理CPU根据该缓存信息进行虚拟vLPI中断的处理。
在一些实施例中,模拟ITS命令包括所述模拟ITS命令还包括模拟SYNC命令用于模拟物理SYNC命令,虚拟机在之前发送的所有模拟ITS命令都处理完后发送模拟SYNC命令,hypervisor利用ITS物理SYNC命令使物理ITS命令都生效。
在一些实施例中,虚拟机发送模拟ITS命令时,更新模拟ITS寄存器GITS_CWRITER,并陷入到hypervisor进行模拟ITS命令对应的物理ITS命令处理,处理完物理ITS命后更新模拟ITS寄存器GITS_CREADR。模拟ITS寄存器GITS_CWRITER用于模拟ITS的寄存器GITS_CWRITER,模拟ITS寄存器GITS_CREADR用于模拟ITS的寄存器GITS_CREADR。
在一些实施例中,虚拟机通过写访问模拟ITS寄存器GITS_BASER0设置物理Collection表的基地址,其中,虚拟机写访问模拟ITS寄存器GITS_BASER0时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER0保存虚拟机写的值。模拟ITS寄存器GITS_BASER0用于模拟ITS的寄存器GITS_BASER0。
在一些实施例中,虚拟机通过写访问模拟ITS寄存器GITS_BASER1设置物理device表的基地址,其中,虚拟机写访问模拟ITS寄存器GITS_BASER1时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER1保存虚拟机写的值。模拟ITS寄存器GITS_BASER1用于模拟ITS的寄存器GITS_BASER1。
S130:hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机。
其中,一个设备产生物理LPI中断,通过ITS总线发送ITS消息到ITS,hypervisor进行处理,ITS根据ITS消息中的设备ID和该事件ID通过物理Device表、物理ITT表和物理Collection表获得该物理LPI中断对应的Redistributor;该对应的Redistributor根据其缓存中的虚拟vLPI中断的配置信息为该物理LPI中断获得对应的vCPU,该对应的vCPU对应该设备所属的虚拟机。
其中,查询物理Device表、物理ITT表和物理Collection表,可以利用芯片的物理ITS映射实现,也可以通过其他方法实现。
S140:Hypervisor向查询到的虚拟机注入收到的物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。
其中,hypervisor获得产生物理LPI中断的设备所属的虚拟机,从而向该虚拟机注入物理LPI中断对应的虚拟vLPI中断,实现不同设备的物理LPI中断对应的虚拟vLPI中断注入到相应的虚拟机,从而实现各虚拟机均可以处理物理LPI中断。该虚拟机处理对应的虚拟vLPI中断时根据其缓存中的虚拟vLPI中断的配置信息进行处理。
综上,一种LPI中断虚拟化方法实施例一用于在基于type1虚拟化的计算机系统里,通过为虚拟机静态分配设备和在物理ITS映射表里建立对应的表项,把物理LPI中断映射到对应的虚拟机上,实现多个虚拟机使用虚拟vLPI中断。
一种LPI中断虚拟化方法实施例二为一种LPI中断虚拟化方法实施例一的详细实施方式,具有一种LPI中断虚拟化方法实施例一的一切优点。
图2示出了一种LPI中断虚拟化方法实施例二的流程,包括步骤S210至S270。
为了描述方便,以为虚拟机vm1分配的设备D1为例。
S210:创建虚拟机vm1时,将设备D1的device_id分配给虚拟机vm1。
其中,设备D1为PCI设备,其设备ID(称为device_id)根据设备D1的bus、dev、func唯一确定,device_id会作为模拟ITS命令的参数,虚拟机vm1运行发送ITS模拟命令时,当命令中的device_id属于虚拟机vm1时,根据device_id进行不同额外的操作。
其中,在创建虚拟机vm1时还为虚拟机vm1在物理的Collection表建立相应的表项,该表项的值至少包括虚拟机vm1的Redistributor。
S220:虚拟机vm1首次运行时通过Hypervisor中设置模拟ITS寄存器。
其中,虚拟机vm1通过写访问模拟ITS寄存器GITS_BASER,设置devicetable和Collectiontable的基地址,此时虚拟机vm1陷入到Hypervisor中,Hypervisor设置GITS_BASER0和GITS_BASER1,其分别指向物理devicetable和Collectiontable的基地址。模拟ITS寄存器GITS_BASER0和GITS_BASER1用于模拟ITS的寄存器GITS_BASER0和GITS_BASER1。
其中,虚拟机vm1操作GITS_CBASER,对此寄存器进行写访问时,虚拟机vm1陷入到Hypervisor中,Hypervisor设置GITS_CBASER,其指向ITS命令队列的基地址。模拟ITS寄存器GITS_CBASER用于模拟ITS的寄存器GITS_CBASER。
其中,虚拟机vm1还设置GITS_CTLR使能ITS虚拟化,虚拟机vm1陷入到Hypervisor中,Hypervisor设置GITS_CTLR使能ITS虚拟化。模拟ITS寄存器GITS_CTLR用于模拟ITS的寄存器GITS_CTLR。
其中,模拟ITS寄存器还包括GITS_CWRITER和GITS_CREADR,虚拟机vm1对GITS_CWRITER寄存器进行写访问,代表其在发送ITS命令,此寄存器值表明下一条ITS命令在命令队列中的偏移,hypervisor需将其进行保存,并进行ITS命令处理。虚拟机vm1对GITS_CREADR寄存器进行读访问,代表其想知晓hypervisor处理ITS命令的进度,此寄存器值表明hypervisor待处理的下一条ITS命令在命令队列中的偏移。模拟ITS寄存器GITS_CWRITER用于模拟ITS的寄存器GITS_CWRITER,模拟ITS寄存器GITS_CREADR用于模拟ITS的寄存器GITS_CREADR。
S230:虚拟机vm1首次运行时发送模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令建立相关模拟ITS映射表和物理ITS映射表。
其中,每个虚拟机完全模拟ITS映射表,包括模拟Collection表、模拟device表、模拟ITT表,分别模拟ITS的物理Collection表、模拟device表、模拟ITT表。这些模拟表都存储在虚拟机自己的内存空间中,查询和设置这些模拟表,都需要访问虚拟机的内存空间。
其中,模拟Collection表的每个表项索引为CollectionID,内容包括其对应的vCPU;模拟device表的每个表项索引为device_id,内容包括其对应的ITT表基地址、事件ID(event_id)bit数;模拟ITT表的每个表项索引为event_id,内容包括其对应的虚拟vLPI中断和CollectionID。
其中,每个虚拟机发出模拟MAPC命令时,hypervisor解析MAPC命令参数,含有参数CollectionID、vCPU,在物理Collection表建立对应的表项,物理Collection表将Collection ID映射到一个Redistributor,也就是映射到一个vCPU;并把MAPC命令参数设置到模拟Collection表中。
其中,每个虚拟机发出模拟MAPC命令的同时,该虚拟机还建立其模拟Collection表,其实现该虚拟机的各物理LPI中断的Collection ID与该虚拟机对应的vCPU映射。
其中,每个虚拟机发出模拟MAPD命令时,hypervisor解析MAPC命令参数,含有参数device_id、ITT table基地址、event_idbit数,设置到模拟device表中;如果MAPD命令参数中的device_id已经分配给了当前的虚拟机,则需额外调用物理ITS驱动发送物理MAPD命令建立在物理device表建立相应的表项,将device_id映射到相应的ITT table基地址。
其中,每个虚拟机发出模拟MAPD命令的同时,该虚拟机还建立其模拟device表,其实现该虚拟机的各设备ID与模拟ITT表的基地址映射。
其中,每个虚拟机发出模拟MAPTI命令时,hypervisor解析MAPTI命令参数,含有参数device_id、event_id、vLPI、CollectionID,根据device_id获取模拟ITT table地址,根据event_id、vLPI、CollectionID在模拟ITT中建立相应的报表项,并配置虚拟vLPI数据结构的配置信息,该配置信息包括虚拟vLPI的优先级、中断使能情况等;此时,若MAPTI命令参数中的device_id已经分配给了当前的虚拟机,则需额外申请物理LPI中断号,以物理LPI中断号为参数调用物理ITS驱动发送物理MAPTI命令建立在物理ITT table中添加相应的表项,将该相应的物理ITT表中一个ITTID映射到一个Collection ID。
其中,每个虚拟机发出模拟MAPI命令的同时,该虚拟机还建立其模拟ITT表,其实现该虚拟机的各事件ID与CollectionID和虚拟vLPI中断的映射。
S240:虚拟机vm1首次运行时,按需发送模拟INV命令和模拟INVALL命令设置相应的Redistributor和相应的CPU中vLPI的缓存信息。
其中,每个虚拟机发送模拟INV命令时,hypervisor根据该命令中device_id和event_id查询模拟device表和虚拟ITT table获取其所对应的vLPI中断号,更新对应vLPI数据结构,包括优先级、中断使能情况等;此时,若模拟INV命令参数中的device_id已经分配给了当前的虚拟机,则需额外调用物理ITS驱动发送物理INV命令进行相应的Redistributor上对应的vLPI的物理缓存同步。
其中,每个虚拟机发送模拟INVALL命令时,hypervisor需要根据该命令中的CollectionID查询虚拟Collectiontable获取其所对应vCPU号,根据更新虚拟机对应vCPU上所有vLPI数据结构,根据vCPU号获取对应的物理CPU,调用物理ITS驱动发送物理INVALL命令该对应物理CPU上的所有vLPI的缓存进行同步。
S250:虚拟机vm1首次运行时,在执行完各虚拟ITS命令后,发送模拟SYNC命令使之前的虚拟ITS命令有效。
其中,虚拟机发送ITS命令时,都会更新GITS_CWRITER,进而陷入hypervisor进行ITS命令处理,处理完一个命令就会更新GITS_CREADR,只要GITS_CWRITER不等于GITS_CREADR,hypervisor就会一直处理ITS命令,也就是说,hypervisor中不会存在未处理的ITS命令。虚拟机发送模拟SYNC命令时,所有的虚拟ITS命令都已经处理了,只需调用物理ITS驱动发送物理SYNC命令进行让物理ITS命令都生效,也就实现让虚拟ITS命令都生效。
S260:设备D1产生物理LPI中断,由hypervisor处理,通过物理ITS映射表确定处理该物理LPI中断的虚拟机vm1。
其中,一个设备产生物理LPI中断,通过ITS总线送到ITS,hypervisor中ITS进行处理;ITS根据该设备ID和物理Device表获得其对应的物理ITT表的基地址;根据该物理ITT表和该事件ID获得其对应的Collection ID;根据该Collection ID和物理Collection表获得其对应的Redistributor;该对应的Redistributor根据其缓存中的虚拟vLPI中断的配置信息为该物理LPI中断获得对应的vCPU,该对应的vCPU对应该设备所属的虚拟机。
S270:hypervisor为虚拟机vm1注入物理LPI中断对应的vLPI中断,使虚拟机vm1处理该虚拟vLPI中断。
其中,hypervisor获得产生物理LPI中断的设备所属的虚拟机,从而向该虚拟机注入物理LPI中断对应的虚拟vLPI中断,实现不同设备的物理LPI中断对应的虚拟vLPI中断注入到相应的虚拟机,从而实现各虚拟机均可以处理物理LPI中断。各虚拟机对应的物理CPU根据其缓存中的虚拟vLPI中断的配置信息处理物理LPI中断。
综上,一种LPI中断虚拟化方法实施例二本发明提供了通过静态分配device_id、模拟ITS寄存器和模拟ITS命令和模拟ITS表,实现静态LPI中断虚拟化,把静态LPI中断映射到所属虚拟机上,能够实现允许多个虚拟机使用LPI中断。
下面结合附图介绍一种LPI中断虚拟化装置实施例。
一种LPI中断虚拟化装置实施例一执行一种LPI中断虚拟化方法实施例一所述方法,具有其一切优点。
图3示出了一种LPI中断虚拟化装置实施例一的结构,包括:设备分配模块310、映射表创建模块320、中断映射模块330和中断注入模块340。
设备分配模块310用于在创建各虚拟机时hypervisor为每个虚拟机分配相应的设备。其工作原理和优点请参照一种LPI中断虚拟化方法实施例一的步骤S130。
映射表创建模块320用于首次运行创建的虚拟机时,通过模拟ITS命令根据该虚拟机、设备ID和事件ID在物理ITS映射表里建立该虚拟机所分配设备对应的表项。其工作原理和优点请参照一种LPI中断虚拟化方法实施例一的步骤S120。
中断映射模块330用于当hypervisor收到一个设备的物理LPI中断的消息,根据该消息中的设备ID和事件ID利用通过物理ITS映射表获得该设备所属的虚拟机。其工作原理和优点请参照一种LPI中断虚拟化方法实施例一的步骤S130。
中断注入模块340用于Hypervisor向查询到的虚拟机注入物理LPI中断对应的虚拟vLPI中断,使该虚拟机处理对应的虚拟vLPI中断。其工作原理和优点请参照一种LPI中断虚拟化方法实施例一的步骤S140。
一种LPI中断虚拟化装置实施例二执行一种LPI中断虚拟化方法实施例二所述方法,具有其一切优点。
图4示出了一种LPI中断虚拟化装置实施例二的结构,包括:设备分配模块410、寄存器设置模块420、映射表建立模块430、缓存更新模块440、命令同步模块450、中断映射模块460和中断注入模块470。
设备分配模块410用于创建虚拟机vm1时,将设备D1的device_id分配给虚拟机vm1。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S210。
寄存器设置模块420用于虚拟机vm1首次运行时通过hypervisor中设置模拟ITS寄存器。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S220。
映射表建立模块430用于虚拟机vm1首次运行时发送模拟MAPC命令、MAPD命令和MAPTI命令建立相关模拟ITS映射表和物理ITS映射表。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S230。
缓存更新模块440用于虚拟机vm1首次运行时,按需发送模拟INV命令和模拟INVALL命令设置相应的Redistributor和相应的CPU中vLPI的缓存信息。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S240。
命令同步模块450用于虚拟机vm1首次运行时,在执行完各虚拟ITS命令后,发送模拟SYNC命令使之前的虚拟ITS命令有效。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S250。
中断映射模块460用于设备D1产生物理LPI中断,由hypervisor处理,通过物理ITS映射表确定处理该物理LPI中断的虚拟机vm1。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S260。
中断注入模块470用于hypervisor为虚拟机vm1注入物理LPI中断对应的vLPI中断,使虚拟机vm1处理该虚拟vLPI中断。其工作原理和优点请参照一种LPI中断虚拟化方法实施例二的步骤S270。
本发明实施例还提供了一种操作系统,其被配置为运行一种虚拟机资源的管理方法实施例一或一种虚拟机资源的管理方法实施例二所述方法,其被配置为包括一种虚拟机资源的管理方法实施例一或一种虚拟机资源的管理方法实施例二所述装置。
本发明实施例还提供了一种计算设备,下面图5详细介绍。
该计算设备500包括,处理器510、存储器520、通信接口530、总线540。
应理解,该图所示的计算设备500中的通信接口530可以用于与其他设备之间进行通信。
其中,该处理器510可以与存储器520连接。该存储器520可以用于存储该程序代码和数据。因此,该存储器520可以是处理器510内部的存储单元,也可以是与处理器510独立的外部存储单元,还可以是包括处理器510内部的存储单元和与处理器510独立的外部存储单元的部件。
可选的,计算设备500还可以包括总线540。其中,存储器520、通信接口530可以通过总线540与处理器510连接。总线540可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线540可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器510可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器510采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器520可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。处理器510的一部分还可以包括非易失性随机存取存储器。例如,处理器510还可以存储设备类型的信息。
在计算设备500运行时,所述处理器510执行所述存储器520中的计算机执行指令执行各方法实施例的操作步骤。
应理解,根据本发明实施例的计算设备500可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备500中的各个模块的上述和其它操作和/或功能分别为了实现本方法实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本方法实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述译码方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行各方法实施例的操作步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。

Claims (13)

1.一种LPI中断虚拟化方法,其特征在于,包括:
在创建虚拟机时hypervisor将物理设备分配给所述虚拟机;
首次运行创建的所述虚拟机时,通过模拟ITS命令在物理ITS映射表里建立所述虚拟机、所述设备的设备ID和事件ID对应的表项;
hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机;
hypervisor向该虚拟机注入所述物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。
2.根据权利要求1所述方法,其特征在于,所述模拟ITS命令包括:模拟MAPC命令、模拟MAPD命令和模拟MAPTI命令,分别用于模拟物理MAPC命令、物理MAPD命令和物理MAPTI命令。
3.根据权利要求2所述方法,其特征在于,所述的首次运行创建的所述虚拟机时,通过模拟ITS命令在物理ITS映射表里建立所述虚拟机、所述设备的设备ID和事件ID对应的表项,包括:
所述虚拟机发送模拟MAPC命令时,hypervisor在ITS的物理Collection表中添加所述虚拟机对应的表项:
所述虚拟机发送模拟MAPD命令且其包括所述设备ID时,hypervisor利用ITS的物理MAPD命令在ITS的物理device表中添加所述设备ID对应的表项;
所述虚拟机发送模拟MAPTI命令且其包括所述设备ID时,hypervisor利用ITS的物理MAPTI命令在相应的物理ITT表里添加所述设备的物理LPI中断对应的表项。
4.根据权利要求2所述方法,其特征在于,首次运行创建的所述虚拟机时,还包括:
所述虚拟机通过模拟MAPC命令建立其模拟Collection表,其实现所述虚拟机的各物理LPI中断的Collection ID与所述虚拟机对应的vCPU映射;
所述虚拟机通过模拟MAPD命令建立其模拟device表,其实现所述虚拟机的各设备ID与模拟ITT表的基地址映射;
所述虚拟机通过模拟MAPTI命令建立其模拟ITT表,其实现所述虚拟机的各事件ID与CollectionID和虚拟vLPI中断的映射。
5.根据权利要求4所述方法,其特征在于,所述模拟ITS命令还包括模拟INV命令,还包括:
所述虚拟机发送模拟INV命令且其包括所述设备ID和所述事件ID时,根据所述模拟device表和所述模拟ITT表获得对应的Collection ID和虚拟vLPI中断,hypervisor利用该虚拟vLPI中断的配置信息更新Collection ID对应的Redistributor中对应的缓存信息。
6.根据权利要求4所述方法,其特征在于,所述模拟ITS命令还包括模拟INVALL命令,还包括:
所述虚拟机发送模拟INVALL命令且其包括Collection ID时,根据所述模拟Collection表获得其对应的vCPU,hypervisor利用该vCPU上所有虚拟vLPI中断的配置信息更新该vCPU对应的物理CPU中相应的缓存信息。
7.根据权利要求2所述方法,其特征在于,还包括:
所述模拟ITS命令还包括模拟SYNC命令,所述虚拟机在之前发送的所有模拟ITS命令都处理完后发送模拟SYNC命令,hypervisor利用ITS物理SYNC命令使物理ITS命令都生效。
8.根据权利要求1所述方法,其特征在于,还包括:
所述虚拟机发送模拟ITS命令时,更新模拟ITS寄存器GITS_CWRITER,并陷入到hypervisor进行模拟ITS命令对应的物理ITS命令处理,处理完物理ITS命后更新模拟ITS寄存器GITS_CREADR。
9.根据权利要求1所述方法,其特征在于,还包括:
所述虚拟机通过写访问模拟ITS寄存器GITS_BASER0设置物理Collection表的基地址,其中,所述虚拟机写访问模拟ITS寄存器GITS_BASER0时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER0保存所述虚拟机写的值;
所述虚拟机通过写访问模拟ITS寄存器GITS_BASER1设置物理device表的基地址,其中,所述虚拟机写访问模拟ITS寄存器GITS_BASER1时,陷入到hypervisor,hypervisor在模拟ITS寄存器GITS_BASER1保存所述虚拟机写的值。
10.一种LPI中断虚拟化装置,其特征在于,包括:
设备分配模块,用于在创建虚拟机时hypervisor将物理设备分配给所述虚拟机;
映射表创建模块,用于首次运行创建的所述虚拟机时,通过模拟ITS命令根据所述虚拟机、设备ID和事件ID在物理ITS映射表里建立所述设备对应的表项;
中断映射模块,用于hypervisor收到物理LPI中断的消息时,根据所述消息中的设备ID和事件ID,利用物理ITS映射表获得该设备ID对应设备所属的虚拟机;
中断注入模块,hypervisor向该虚拟机注入所述物理LPI中断对应的虚拟vLPI中断,由该虚拟机进行虚拟vLPI中断处理。
11.一种操作系统,其特征在于,其为配置为执行权利要求1至9任一所述方法。
12.一种计算设备,其特征在于,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;
以及至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1至9任一所述方法。
13.一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行权利要求1至9任一所述方法。
CN202311775528.1A 2023-12-21 2023-12-21 一种lpi中断虚拟化方法、装置、操作系统及存储介质 Pending CN117762560A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311775528.1A CN117762560A (zh) 2023-12-21 2023-12-21 一种lpi中断虚拟化方法、装置、操作系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311775528.1A CN117762560A (zh) 2023-12-21 2023-12-21 一种lpi中断虚拟化方法、装置、操作系统及存储介质

Publications (1)

Publication Number Publication Date
CN117762560A true CN117762560A (zh) 2024-03-26

Family

ID=90309958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311775528.1A Pending CN117762560A (zh) 2023-12-21 2023-12-21 一种lpi中断虚拟化方法、装置、操作系统及存储介质

Country Status (1)

Country Link
CN (1) CN117762560A (zh)

Similar Documents

Publication Publication Date Title
WO2021051914A1 (zh) 基于gpu资源的数据处理方法、电子设备及系统
KR101782398B1 (ko) 보안된 가상 머신간 공유된 메모리 통신을 위한 기술
CN107015845B (zh) Gpu虚拟化
US10191759B2 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US20190042329A1 (en) System with programmable multi-context accelerator circuitry
CN103034524A (zh) 半虚拟化的虚拟gpu
CN109995814B (zh) 云主机资源的迁移方法及装置、通信设备、存储介质
CN111183411B (zh) 用于虚拟机的动态地址转换
CN104794069A (zh) 一种cpu中缓存的用户态分配方法和系统
CN107832151B (zh) 一种cpu资源分配方法、装置及设备
CN115309511B (zh) 基于Xen的数据交互方法、装置、存储介质以及电子设备
CN104268229A (zh) 一种基于多进程浏览器的资源获得方法及装置
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
JP2022104872A (ja) バッファ保護における境界情報アクセスを提供する方法、システム、およびコンピュータ・プログラム
CN104714792A (zh) 多进程共享数据处理方法和装置
CN117573338A (zh) 一种资源分配方法、装置及电子设备
KR101535792B1 (ko) 운영체제 구성 장치 및 방법
CN113032088B (zh) 脏页记录方法、装置、电子设备及计算机可读介质
CN117762560A (zh) 一种lpi中断虚拟化方法、装置、操作系统及存储介质
CN115150268A (zh) Kubernetes集群的网络配置方法、装置、及电子设备
WO2022083158A1 (zh) 数据处理的方法、实例以及系统
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine
CN109408407B (zh) 显示内存的分配方法和装置
CN109460296B (zh) 一种处理器的资源分配方法、装置和存储介质
US9176910B2 (en) Sending a next request to a resource before a completion interrupt for a previous request

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