中断虚拟化的方法技术

技术编号:39581470 阅读:6 留言:0更新日期:2023-12-03 19:31
本发明专利技术实施例提供了一种中断虚拟化的方法

【技术实现步骤摘要】
中断虚拟化的方法、装置、操作系统、设备及存储介质


[0001]本专利技术涉及操作系统领域,尤其涉及一种中断虚拟化的方法

装置

操作系统

设备及存储介质


技术介绍

[0002]目前,在计算机虚拟化方案中,通常情况下,虚拟机所接收到的中断都是虚拟中断,即物理中断产生后,首先由
hypervisor
处理,接着会对虚拟机进行虚拟中断的注入,虚拟机才会接收到虚拟中断并进行中断的处理

[0003]但是,在这个过程中,
hypervisor
不仅会接收到第一次所产生的物理中断,在虚拟机对虚拟中断进行应答时,
hypervisor
还会接收到一个维护中断,对注入虚拟中断时所写的
List
寄存器进行清除处理,这样,每产生一次物理中断,都会额外产生一次维护中断,增加了中断产生次数,从而降低了中断虚拟化效率


技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种中断虚拟化的方法

装置

操作系统

设备及存储介质,用于虚拟化操作系统的中断虚拟化场景

通过在选择的虚拟中断寄存器中设置不产生维护中断的指示信息,使虚拟机在处理虚拟中断时不产生维护中断

相对于现有技术中虚拟机在处理虚拟中断时,额外产生一次维护中断,本专利技术实施例的技术方案向虚拟机注入的虚拟中断每次被响应时,不会都产生维护中断,进而减少维护中断产生次数,提高中断虚拟化效率

[0005]第一方面,本专利技术实施例提供了一种中断虚拟化的方法,包括:当
hypervisor
向第一虚拟机注入虚拟中断时,在运行第一虚拟机的物理
CPU
中选择一空闲的虚拟中断寄存器为该虚拟中断的虚拟中断寄存器,第一虚拟机为运行在
hypervisor
上任一虚拟机;在选择的虚拟中断寄存器中存储虚拟中断信息时,设置不产生维护中断的指示信息,使第一虚拟机在处理该虚拟中断时不产生维护中断;第一虚拟机陷入
hypervisor
时且第一虚拟机已处理完成所述虚拟中断时,
hypervisor
清除该选择的虚拟中断寄存器中内容

[0006]由上,通过在选择的虚拟中断寄存器中设置不产生维护中断的指示信息,使虚拟机在处理虚拟中断时不会都产生维护中断,进而减少维护中断产生次数,提高中断虚拟化效率

[0007]在第一方面的一种可能实施方式中,第一虚拟机陷入
hypervisor
时且第一虚拟机已处理完成所述虚拟中断时,
hypervisor
清除该选择的虚拟中断寄存器中内容,包括:在第一虚拟机陷入
hypervisor
时,
hypervisor
查询所述物理
CPU
中虚拟中断寄存器的状态,对非激活的虚拟中断寄存器进行内容清除,使之变为空闲的虚拟中断寄存器,其中,非激活的虚拟中断寄存器对应的虚拟中断已经处理完成

[0008]由上,通过在任何原因的陷入
hypervisor
时清除所有非激活的虚拟中断寄存器中内容使其变为空闲的虚拟中断寄存器,以被后续新的虚拟中断注入使用

[0009]在第一方面的一种可能实施方式中,
hypervisor
向第一虚拟机注入的虚拟中断的来源至少包括下列之一:需要第一虚拟机处理的物理中断;第一虚拟机产生的且需要自身处理的虚拟中断;其他虚拟机产生的且需要第一虚拟机处理的核间中断

[0010]由上,本专利技术实施例的适合各种来源的虚拟中断

[0011]在第一方面的一种可能实施方式中,还包括:在运行第一虚拟机的物理
CPU
中虚拟中断的写入数目等于该物理
CPU
的虚拟中断寄存器的数目时,在选择的虚拟中断寄存器中设置产生维护中断的指示信息,使第一虚拟机在处理该虚拟中断时产生维护中断,其中,所述写入数目为第一虚拟机未处理完成的且信息写入到该物理
CPU
的对应的虚拟中断寄存器中的虚拟中断的数目

[0012]由上,通过在运行第一虚拟机的物理
CPU
中虚拟中断的写入数目等于该物理
CPU
的虚拟中断寄存器的数目时,在选择的虚拟中断寄存器中设置产生维护中断的指示信息,从而最后一个空闲或非激活的虚拟中断寄存器能被及时维护,使后续虚拟中断可以及时注入

[0013]在第一方面的一种可能实施方式中,当第一虚拟机不在运行时,运行第一虚拟机的物理
CPU
的虚拟中断寄存器保存在第一虚拟机的上下文的数据结构中,在虚拟中断注入时对所述的运行第一虚拟机的物理
CPU
的虚拟中断寄存器的操作为对其在第一虚拟机的上下文对应的数据结构的操作

[0014]由上,通过对运行第一虚拟机的物理
CPU
的虚拟中断寄存器保存在第一虚拟机的上下文中对应的数据结构操作,使在第一虚拟机不在运行时也能进行本专利技术的虚拟中断注入

[0015]在第一方面的一种可能实施方式中,当
hypervisor
运行在
ARM
结构的芯片上时,虚拟中断寄存器为
List
寄存器

[0016]由上,本专利技术的技术方案利用
ARM
结构的芯片的
List
寄存器实现本专利技术的虚拟中断寄存器,实现方案更简单

[0017]第二方面,本专利技术实施例提供了一种中断虚拟化的装置,包括:寄存器选择模块,用于当
hypervisor
向第一虚拟机注入虚拟中断时,在运行第一虚拟机的物理
CPU
中选择一空闲的虚拟中断寄存器为该虚拟中断的虚拟中断寄存器,第一虚拟机为运行在
hypervisor
上任一虚拟机;维护中断设置模块,用于在选择的虚拟中断寄存器中存储虚拟中断信息时,设置不产生维护中断的指示信息,使第一虚拟机在处理该虚拟中断时不产生维护中断;寄存器内容清除模块,用于第一虚拟机陷入
hypervisor
时且第一虚拟机已处理完成所述虚拟中断时,
hypervisor
清除该选择的虚拟中断寄存器中内容

[0018]由上,通过在选择的虚拟中断寄存器中设置不产生维护中断的指示信息,使虚拟机在处理虚拟中断时不会都产生维护中断,进而减少维护中断产生次数,提高中断虚拟化效率

[0019]在第二方面的一种可能实施方式中,寄存器内容清除模块具体用于在第一虚拟机陷入
hypervisor
时,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种中断虚拟化的方法,其特征在于,包括:当
hypervisor
向第一虚拟机注入虚拟中断时,在运行第一虚拟机的物理
CPU
中选择一空闲的虚拟中断寄存器为该虚拟中断的虚拟中断寄存器,第一虚拟机为运行在
hypervisor
上任一虚拟机;在选择的虚拟中断寄存器中存储虚拟中断信息时,设置不产生维护中断的指示信息,使第一虚拟机在处理该虚拟中断时不产生维护中断;在第一虚拟机陷入
hypervisor
时且第一虚拟机已处理完成所述虚拟中断时,
hypervisor
清除该选择的虚拟中断寄存器中内容
。2.
根据权利要求1所述方法,其特征在于,在第一虚拟机陷入
hypervisor
时且第一虚拟机已处理完成所述虚拟中断时,
hypervisor
清除该选择的虚拟中断寄存器中内容,具体包括:在第一虚拟机陷入
hypervisor
时,
hypervisor
查询所述物理
CPU
中虚拟中断寄存器的状态,对非激活的虚拟中断寄存器进行内容清除,使之变为空闲的虚拟中断寄存器,其中,非激活的虚拟中断寄存器对应的虚拟中断已经处理完成
。3.
根据权利要求1所述方法,其特征在于,
hypervisor
向第一虚拟机注入的虚拟中断的来源至少包括下列之一:需要第一虚拟机处理的物理中断;第一虚拟机产生的且需要自身处理的虚拟中断;其他虚拟机产生的且需要第一虚拟机处理的核间中断
。4.
根据权利要求1所述方法,其特征在于,还包括:在运行第一虚拟机的物理
CPU
中虚拟中断的写入数目等于该物理
CPU
的虚拟中断寄存器的数目时,在选择的虚拟中断寄存器中设置产生维护中断的指示信息,使第一虚拟机在处理该虚拟中断时产生维护中断,其中,所述写入数目为第一虚拟机未处理完成的且信息写入到该物理
CPU

【专利技术属性】
技术研发人员:田焱彭元志
申请(专利权)人:科东广州软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1