CN112817690B - 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 - Google Patents
一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 Download PDFInfo
- Publication number
- CN112817690B CN112817690B CN202110088713.8A CN202110088713A CN112817690B CN 112817690 B CN112817690 B CN 112817690B CN 202110088713 A CN202110088713 A CN 202110088713A CN 112817690 B CN112817690 B CN 112817690B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- vmm
- vcpu
- virtual
- irq
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 10
- 238000002347 injection Methods 0.000 claims abstract description 21
- 239000007924 injection Substances 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 89
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000000034 method Methods 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
Images
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
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统,涉及ARM硬件架构的虚拟化技术领域,该方法包括:虚拟中断采集步骤:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。本发明能够满足嵌入式操作系统的实时性需求,具有良好的通用性,且适用于嵌入式多核系统。
Description
技术领域
本发明涉及ARM硬件架构的虚拟化技术领域,具体地,涉及一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统。
背景技术
ARM硬件架构中对中断的处理流程为:由中断控制器GIC汇集硬中断产生的中断信号或者由指令直接给出软中断的中断信号,然后通知CPU;CPU保存当前程序的运行环境,然后调用中断服务程序来处理该中断;中断服务程序通过读取相关寄存器识别出中断类型,接着执行相应的处理;中断请求执行完毕后,将通过读写相关中断控制寄存器清除中断;最后恢复被中断程序的执行环境,继续执行被中断的程序。
为了支持在同一个嵌入式硬件平台上同时运行多个隔离的执行环境,需要在原有的架构基础上,添加一个虚拟机管理器VMM的中间层,由VMM作为系统软件直接管理所有的硬件设备,多个隔离的执行环境通过调用VMM提供的服务接口运行在VMM之上。在添加虚拟机管理器VMM之后,为了不影响应用执行环境内客户操作系统对中断响应过程,需要VMM对中断进行虚拟化处理,主要涉及虚拟中断采集与虚拟中断注入,对于中断的处理则交由虚拟机的客户操作系统进行实现。
由于嵌入式领域的独特性,将虚拟化技术应用到嵌入式领域内,通常采用基于微内核设计模式的VMM。现有的基于微内核设计模式的虚拟化方案有Xen,但是Xen为了降低设计的复杂性,将大部分硬件设备都移交给Linux根域进行管控,对于中断虚拟化的处理也需要VMM和根域共同完成,这种处理流程不仅复杂而且低效。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统,能够满足嵌入式操作系统的实时性需求,具有良好的通用性,且适用于嵌入式多核系统。
根据本发明提供的一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统,所述方案如下:
第一方面,提供了一种面向ARM架构虚拟化领域的中断虚拟化处理方法,所述方法包括:
虚拟中断采集步骤:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;
虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。
优选的,所述虚拟中断采集步骤包括:
VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;
虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:
若是,接着将中断发送给对应的虚拟中断控制器;
若不是,该虚拟机所拥有的中断,则不需要任何处理。
优选的,所述虚拟中断注入步骤包括:
当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理。
优选的,所述虚拟中断注入步骤包括:
虚拟时钟设备vTimer所产生的时钟IRQ中断:
步骤2-1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;
步骤2-2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;
步骤2-3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理;
步骤2-4:vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理;
步骤2-5:中断请求完毕后,将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理;
步骤2-6:VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内;
步骤2-7:中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU。
优选的,所述步骤2-5具体包括:
中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理;
RERUN处理结束后,进入到VMM内核态vCPU管理模块,VMM内核态vCPU管理模块将虚拟机退出原因修改为HYP_IRQ中断所导致的,因此会将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理。
第二方面,提供了一种面向ARM架构虚拟化领域的中断虚拟化处理系统,所述系统包括:
虚拟中断采集模块:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;
虚拟中断注入模块:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。
优选的,所述虚拟中断采集模块包括:
VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;
虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:
若是,接着将中断发送给对应的虚拟中断控制器;
若不是,该虚拟机所拥有的中断,则不需要任何处理。
优选的,所述虚拟中断注入模块包括:
当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理。
优选的,所述虚拟中断注入模块包括:
虚拟时钟设备vTimer所产生的时钟IRQ中断:
模块2-1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;
模块2-2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;
模块2-3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理;
模块2-4:vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理;
模块2-5:中断请求完毕后,将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理;
模块2-6:VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内;
模块2-7:中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU。
优选的,所述模块2-5包括:
中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理;
RERUN处理结束后,进入到VMM内核态vCPU管理模块,VMM内核态vCPU管理模块将虚拟机退出原因修改为HYP_IRQ中断所导致的,因此会将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理。
与现有技术相比,本发明具有如下的有益效果:
1、具有良好的通用性:本发明所涉及的中断虚拟化机制适用于常见ARM硬件架构,能有效满足市面常见ARM架构的移植需求,尤其针对目前ARM版本—ARMv8.0和ARMv8.1的硬件架构,满足ARM系统寄存器注入虚拟中断的机制,使本发明能够得到广泛的运用;
2、满足嵌入式操作系统的实时性需求:市面常见嵌入式操作系统对实时性有较高的需求,如果增添虚拟机管理器为中间层,那么嵌入式操作系统对实时性要求更苛刻;常规中断虚拟化操作必须切换到根域,其实现过于复杂,不能满足目前所需要的嵌入式操作系统的实时性;而本发明涉及的中断虚拟化处理机制由VMM进行统一管理,简化中断机制的采集和注入的流程,能更好的满足嵌入式操作系统的实时性需求;
3、适用于嵌入式多核系统:本发明涉及的中断虚拟化机制适配了GIC属性,因此可以同时为多个CPU核提供中断虚拟化服务。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的虚拟化系统架构图;
图2为本发明的中断虚拟化处理流程图;
图3为中断虚拟化处理虚拟时钟中断的案例图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明实施例提供了一种面向ARM架构虚拟化领域的中断虚拟化处理方法,适配了GIC中断控制器,不仅适用于单核系统的中断虚拟化,同样适用于多核系统的中断虚拟化。其中GIC部件由两个部分组成,分别是中断分发器以及CPU接口,中断分发器主要是汇集各个模块的中断线到GIC上,然后通过中断请求所对应的CPU接口IRQ或者FIQ管脚连接到CPU核上的中断管脚线上,这样便可以触发中断所对应CPU核进行中断处理。CPU接收到GIC发送的中断之后,通过读取GIC的寄存器,就可以知道中断的来源,从而进行相应的中断处理工作。当CPU处理完中断之后,会通知GIC该中断处理完毕,GIC就会接收到该信息,接着该中断源取消,避免重新发送给该中断给CPU以及允许中断抢占。
在虚拟化环境中,GIC由VMM直接管理控制。VMM需要为虚拟机中的vCPU展现出一个与物理中断架构类似的虚拟中断架构,即为每个vCPU创建一个对应虚拟中断控制器,而虚拟中断控制器是由VMM所维护的软件实体。VMM可使用虚拟中断控制器处理虚拟机中虚拟设备产生的中断或是向虚拟机中注入虚拟中断。
虚拟机可以在初始化阶段配置是否支持GIC模块,若支持就在初始虚拟机实例的时候,将GIC对应的内存区域地址映射给该虚拟机,并添加到虚拟机所对应的第二阶段页表内。而真正使用虚拟中断控制器的是虚拟机中的vCPU,vCPU可以根据自身需求设置是否使用虚拟中断控制器。若使用的话,需要在vCPU初始化上下文的时候,初始化虚拟中断控制器CPU接口供其使用,该接口的目的是为了使用虚拟中断控制器将虚拟中断注入到vCPU中,或者清除vCPU中的虚拟中断。当GIC完成中断采集之后,虚拟中断控制器可以将虚拟中断注入到对应的vCPU中。之后vCPU被重新调度执行时,vCPU所处的客户操作系统就可以使用虚拟中断控制器注入的中断号,进行相应的中断处理。
参照图1和图2所示,ARM架构虚拟化领域的中断虚拟化的主要任务就是实现虚拟中断控制器的创建,主要涉及虚拟中断采集和虚拟中断注入两个方面:
虚拟中断采集:虚拟中断的采集是指将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器。其中虚拟机的中断有两个可能的来源:来自软件模拟的虚拟设备,比如一个模拟出来的串口或者时钟,可以产生一个虚拟串口中断或者虚拟时钟中断。来自直接分配给虚拟机的物理设备的中断,比如一个物理网卡,可以产生一个真正的物理中断。但是无论哪种类型的中断,当发生中断请求之后,都会陷入到内核态,内核态将根据存放在系统寄存器ESR以及HPFAR中的陷入原因,执行相应的中断处理任务。
在虚拟化环境内,VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机。虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:如果是的话,接着将中断发送给对应的虚拟中断控制器;如果不是,该虚拟机所拥有的中断,则不需要任何处理。
虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。当某个vCPU被调度到重新获得物理CPU的使用权时,就可以按照虚拟机内客户操作系统的中断服务处理流程进行中断处理。
参照图3所示,以虚拟时钟设备vTimer所产生的时钟IRQ中断为例进行中断虚拟化说明:
虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断。
触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块。
由于当前的虚拟时钟设备vTimer仍然处于有效状态,因此当返回VMM用户态vCPU管理模块时,会再一次触发时钟IRQ中断。由于在第二步中虚拟机退出时已经改变了HCR_EL2寄存器的相关标志位,因此这次触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理。
vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理,不过本次中断处理的结果就是在VMM内核态生成对应的HYP_IRQ中断号,表示虚拟机需要接收虚拟中断。
中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理。RERUN处理结束后,进入到VMM内核态vCPU管理模块,本次VMM内核态vCPU管理模块会将虚拟机退出原因修改为HYP_IRQ中断所导致的,因此会将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理。
VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内。
中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU。当vCPU开始执行时将会收到虚拟中断,接下来就可以使用客户操作系统的中断处理机制对虚拟中断进行处理。
本发明实施例提供了一种面向ARM架构虚拟化领域的中断虚拟化处理方法,其中,(1)本发明涉及的中断虚拟化处理机制全部在VMM层中进行实现,由VMM层将外部设备或者内部虚拟设备的中断进行虚拟化,最后转交给中断请求所对应虚拟机中的客户操作系统进行最终的中断服务处理流程,这种由VMM统一完成中断虚拟化的处理较原有的中断虚拟化处理更加高效。(2)本发明涉及的中断虚拟化机制适配ARM的GIC硬件特性,对于多核系统的中断虚拟化处理仍然适用。(3)本发明涉及的中断虚拟化针对的是虚拟机中的vCPU对象,若vCPU支持GIC,就可以通过设置虚拟中断控制器进行中断注入,否则的话使用系统寄存器HCR_EL2.vi进行中断注入。因此本发明可以灵活的根据虚拟机中vCPU的上下文进行中断注入处理。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (2)
1.一种面向ARM架构虚拟化领域的中断虚拟化处理方法,其特征在于,所述方法包括:
虚拟中断采集步骤:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;
虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中;
所述虚拟中断采集步骤包括:
步骤1-1:VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;
步骤1-2:虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:
若是,接着将中断发送给对应的虚拟中断控制器;
若不是该虚拟机所拥有的中断,则不需要任何处理;
所述虚拟中断注入步骤包括:
虚拟时钟设备vTimer所产生的时钟IRQ中断:
步骤2-1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;
步骤2-2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;
步骤2-3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理;
步骤2-4:vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理;
步骤2-5:中断请求完毕后,将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理;
步骤2-6:VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内;
步骤2-7:中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU;
当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理;
所述步骤2-5具体包括:
步骤2-5-1:中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理;
步骤2-5-2:RERUN处理结束后,进入到VMM内核态vCPU管理模块,VMM内核态vCPU管理模块将虚拟机退出原因修改为HYP_IRQ中断所导致的,因此会将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理。
2.一种面向ARM架构虚拟化领域的中断虚拟化处理系统,其特征在于,所述系统包括:
虚拟中断采集模块:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;
虚拟中断注入模块:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中;
所述虚拟中断采集模块包括:
VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;
虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:
若是,接着将中断发送给对应的虚拟中断控制器;
若不是该虚拟机所拥有的中断,则不需要任何处理;
所述虚拟中断注入模块包括:
虚拟时钟设备vTimer所产生的时钟IRQ中断:
模块2-1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;
模块2-2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;
模块2-3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理;
模块2-4:vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理;
模块2-5:中断请求完毕后,将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理;
模块2-6:VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内;
模块2-7:中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU;
当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理;
所述模块2-5包括:
中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理;
RERUN处理结束后,进入到VMM内核态vCPU管理模块,VMM内核态vCPU管理模块将虚拟机退出原因修改为HYP_IRQ中断所导致的,因此会将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110088713.8A CN112817690B (zh) | 2021-01-22 | 2021-01-22 | 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110088713.8A CN112817690B (zh) | 2021-01-22 | 2021-01-22 | 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817690A CN112817690A (zh) | 2021-05-18 |
CN112817690B true CN112817690B (zh) | 2022-03-18 |
Family
ID=75858827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110088713.8A Active CN112817690B (zh) | 2021-01-22 | 2021-01-22 | 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817690B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113687909B (zh) * | 2021-07-28 | 2024-01-30 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于微内核的分时vcpu多核调度方法及系统 |
CN113672342B (zh) * | 2021-08-02 | 2024-02-27 | 上海交通大学 | 嵌入式虚拟化系统及构建、测试方法、终端及介质 |
CN114356812B (zh) * | 2021-12-31 | 2022-08-26 | 元心信息科技集团有限公司 | 中断处理方法、装置、电子设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279769A (zh) * | 2011-07-08 | 2011-12-14 | 西安交通大学 | 一种面向嵌入式Hypervisor 的中断虚拟化操作方法 |
CN102799465A (zh) * | 2012-06-30 | 2012-11-28 | 华为技术有限公司 | 分布式虚拟化系统的虚拟中断管理方法及装置 |
CN103559087A (zh) * | 2013-10-31 | 2014-02-05 | 华为技术有限公司 | 一种虚拟处理器之间的中断的实现方法、相关装置和系统 |
CN103744716A (zh) * | 2014-01-15 | 2014-04-23 | 上海交通大学 | 一种基于当前vcpu调度状态的动态中断均衡映射方法 |
CN106462451A (zh) * | 2014-06-20 | 2017-02-22 | 华为技术有限公司 | 虚拟化平台处理中断方法和相关设备 |
CN109144679A (zh) * | 2017-06-27 | 2019-01-04 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
CN111190692A (zh) * | 2019-12-26 | 2020-05-22 | 山东乾云启创信息科技股份有限公司 | 一种基于鲲鹏处理器的监控方法、系统及可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424211B2 (en) * | 2008-12-31 | 2016-08-23 | Intel Corporation | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
-
2021
- 2021-01-22 CN CN202110088713.8A patent/CN112817690B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279769A (zh) * | 2011-07-08 | 2011-12-14 | 西安交通大学 | 一种面向嵌入式Hypervisor 的中断虚拟化操作方法 |
CN102799465A (zh) * | 2012-06-30 | 2012-11-28 | 华为技术有限公司 | 分布式虚拟化系统的虚拟中断管理方法及装置 |
CN103559087A (zh) * | 2013-10-31 | 2014-02-05 | 华为技术有限公司 | 一种虚拟处理器之间的中断的实现方法、相关装置和系统 |
CN103744716A (zh) * | 2014-01-15 | 2014-04-23 | 上海交通大学 | 一种基于当前vcpu调度状态的动态中断均衡映射方法 |
CN106462451A (zh) * | 2014-06-20 | 2017-02-22 | 华为技术有限公司 | 虚拟化平台处理中断方法和相关设备 |
CN109144679A (zh) * | 2017-06-27 | 2019-01-04 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
CN111190692A (zh) * | 2019-12-26 | 2020-05-22 | 山东乾云启创信息科技股份有限公司 | 一种基于鲲鹏处理器的监控方法、系统及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112817690A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817690B (zh) | 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 | |
EP3185128B1 (en) | Gpu virtualisation | |
US7757231B2 (en) | System and method to deprivilege components of a virtual machine monitor | |
US10255090B2 (en) | Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels | |
US8024742B2 (en) | Common program for switching between operation systems is executed in context of the high priority operating system when invoked by the high priority OS | |
US7434224B2 (en) | Plural operating systems having interrupts for all operating systems processed by the highest priority operating system | |
US8612992B2 (en) | Operating systems | |
EP2296089A2 (en) | Operating systems | |
JPS61206043A (ja) | 仮想計算機システムにおける割込制御方法 | |
TW201245975A (en) | Apparatus and method for managing hypercalls in a hypervisor and the hypervisor thereof | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
US10628189B2 (en) | Synchronous operation method performance in context of asynchronous event loop | |
CN104618158A (zh) | 嵌入式网络虚拟化环境中VirtIO网络虚拟化工作方法 | |
WO2015192381A1 (zh) | 虚拟化平台处理中断方法和相关设备 | |
US11169837B2 (en) | Fast thread execution transition | |
US20050251803A1 (en) | Method of performing kernel task upon initial execution of process at user level | |
KR102003721B1 (ko) | Gpu 커널 트랜잭션화 방법 및 컴퓨팅 장치 | |
CN114489941B (zh) | 运行在宿主模式用户态的虚拟机管理方法及系统 | |
KR100928866B1 (ko) | 가상 환경에서의 어플리케이션 실행 장치 및 방법 | |
WO2004090719A2 (en) | Operating systems | |
CA2540490A1 (en) | Operating systems | |
Ritchie | Operating Systems | |
US20230418509A1 (en) | Switching memory consistency models in accordance with execution privilege level | |
US20230229473A1 (en) | Adaptive idling of virtual central processing unit | |
EP1673693B1 (en) | Operating systems |
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 |