本发明专利技术公开了一种虚拟化下的中断动态分发方法,包括:虚拟机管理器对其虚拟高级可编程中断处理器进行初始化,并且虚拟域对其本地可高级编程中断控制器进行初始化,虚拟机管理器接收来自于外设的物理中断请求,虚拟机管理器根据物理中断请求判断其分发方式是静态分发方式,还是动态分发方式,如果是动态分发方式,则虚拟机管理器检查驱动域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后虚拟机管理器通过目的虚拟微处理器的事件通道将物理中断请求发送到该目的虚拟微处理器,驱动域根据物理中断请求生成对应的域间中断请求。本发明专利技术能够解决现有方法中存在的中断请求负载不均衡、中断请求延迟和分离驱动模型的并发处理的问题。
【技术实现步骤摘要】
本专利技术属于虚拟化领域,更具体地,涉及。
技术介绍
虚拟化技术是云计算技术的基础,I/O虚拟化的性能将直接影响虚拟化技术的发展,特别是网络I/o的虚拟化性能。在服务器虚拟化领域,高速网络设备(如千兆以太网卡等)短时间内会带来内大量的中断请求;因此高效的中断虚拟化技术就显得更加重要了。在X86平台的SMP架构中,外设的中断线连接到一个名为I/O高级可编程中断控制器(Input/OutputAdvanced Programmable Interrupt Controller,简称 I/O APIC)上。此外,X86微处理器当前所有CPU都含有一个本地高级可编程中断控制器(Advanced ProgrammableInterrupt Controller,简称APIC)。每个本地APIC都有32位的寄存器、一个内部时钟、一个本地定时设备及为本地APIC保留的两条额外的IRQ线LINTO和LINTl。所有的本地APIC都连接到一个外部1/0 APIC,形成一个多APIC的系统。1/0 APIC其中最重要的是中断重定向表,表中的信息负责将每个外部IRQ转化成一条消息并通过APIC总线发送给一个或者多个APIC单元。因此,在非虚拟化的情况下,外设的IRQ由1/0 APIC负责分发。如图1所示,在引入了虚拟化技术后,由于CPU虚拟化增加了虚拟微处理器,中断的处理响应的增加了虚拟中断层。但目前的中断虚拟化技术没有完全对I/O APIC多APIC系统进行虚拟化,导致了虚拟化中断都只能简单的进行静态分发,默认都是分发给第一个虚拟微处理器,而不能进行动态分发。具体来说,就是虚拟机管理器只能将所有的物理中断发送给驱动域的第一个虚拟微处理器,即所有的物理中断请求都需要由驱动域的第一个微处理器来处理;虚拟域只能将所有的域间中断都发送给其他域的第一个虚拟微处理器,即所有的域间中断请求都需要由虚拟域的第一个微处理器来处理。然而,现有的虚拟化下的中断分发方法存在以下问题1、中断请求集中在第一个微处理器上,造成中断分发在多核虚拟域的负载不均衡;2、虚拟1/0的服务延迟增大,由于中断请求在单一微处理器上排队,排队的延迟比非虚拟化下的增大,造成1/0的服务延迟增大;3、分离驱动模型的中断请求不能并发处理,即域间中断只能在驱动域的第一个虚拟微处理器和其他域的第一个微处理器之间发送,没有充分利用虚拟域的多核特性,从而造成了分离驱动模型的1/0性能下降。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于提供,旨在解决现有方法中存在的中断请求负载不均衡、中断请求延迟和分离驱动模型的并发处理的问题。为实现上述目的,本专利技术提供了,包括以下步骤( I)虚拟机管理器对其虚拟高级可编程中断处理器进行初始化,并且虚拟域对其本地可高级编程中断控制器进行初始化;(2)虚拟机管理器接收来自于外设的物理中断请求;(3)虚拟机管理器根据物理中断请求判断其分发方式是静态分发方式,还是动态分发方式,如果是静态分发方式,则进入步骤(5),如果是动态分发方式,则进入步骤(4);(4)虚拟机管理器检查驱动域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后进入步骤(6);(5)虚拟机管理器根据物理中断请求确定目的虚拟微处理器;(6)虚拟机管理器通过目的虚拟微处理器的事件通道将物理中断请求发送到该目的虚拟微处理器;(7)驱动域根据物理中断请求生成对应的域间中断请求;(8)驱动域根据域间中断请求判断其分发方式是静态分发方式,还是动态分发方式;如果是静态分发方式,则进入步骤(10),如果是动态分发方式,则进入步骤(9);(9)驱动域检查其他域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后进入步骤(11);( 10)驱动域根据域间中断请求确定目的虚拟微处理器;( 11)驱动域通过目的虚拟微处理器的事件通道将域间中断请求发送到该目的虚拟微处理器。在步骤(I)中,虚拟机管理器将虚拟I/O APIC的分发方式设置为动态分发方式,并且虚拟域设置本地PIC中的优先级和仲裁优先级。虚拟域包括驱动域和其他域,外设包括外部存储器、网络设备,物理中断请求包括物理请求编号、物理请求地址。步骤(3)中,虚拟机管理器是根据物理中断请求中的物理请求编号及虚拟机管理器中的配置文件来判断分发方式的类型。其他域和虚拟微处理器的配置均包括其优先级和仲裁优先级。步骤(7)中,通过驱动域中的后端驱动产生域间中断请求包括有域间中断请求的编号和地址等信息。步骤(8)中,驱动域是根据域间中断请求中的域间中断请求编号及驱动域中的配置文件来判断分发方式的类型。步骤(5)包括以下子步骤(5-1)虚拟机管理器中的虚拟I/O APIC判断在驱动域中查找到的优先级最低的虚拟微处理器的数量是I个还是多个,如果是I个,则进入步骤(5-5),如果是多个,则进入步骤(5-2);(5-2)虚拟I/O APIC确定本地APIC的仲裁优先级中最低的一个仲裁优先级所对应的虚拟微处理器;(5-3)虚拟I/O APIC将该虚拟微处理器对应的本地APIC的仲裁优先级设置为0,将其他虚拟微处理器对应的本地APIC的仲裁优先级加I ;(5-4)虚拟I/O APIC判断所有虚拟微处理器对应的本地APIC的仲裁优先级是否有大于15的,如果有,则将步骤(5-2)中确定的虚拟微处理器对应的本地APIC的仲裁优先级加1,过程结束;否则过程结束;(5-5)虚拟I/O APIC将物理中断请求发送到该虚拟微处理器。步骤(10)包括以下子步骤( 10-1)驱动域中的虚拟I/O APIC判断在其他域中查找到的优先级最低的虚拟微处理器的数量是I个还是多个,如果是I个,则进入步骤(10-5),如果是多个,则进入步骤(10-2);(10-2)虚拟I/O APIC确定本地APIC的仲裁优先级中最低的一个仲裁优先级所对应的虚拟微处理器;(10-3)虚拟I/O APIC将该虚拟微处理器对应的本地APIC的仲裁优先级设置为0,将其他虚拟微处理器对应的本地APIC的仲裁优先级加I ;(10-4)虚拟I/O APIC判断所有虚拟微处理器对应的本地APIC的仲裁优先级是否有大于15的,如果有,则将步骤(5-2)中确定的虚拟微处理器对应的本地APIC的仲裁优先级加1,过程结束;否则过程结束;(10-5)虚拟I/O APIC将域间中断请求发送到该虚拟微处理器。通过本专利技术所构思的以上技术方案,与现有技术相比,本专利技术具有以下的有益效果1、能实现负载均衡由于采用了步骤(I)、(5-1)、(5-4)、(10-1)和(10-4),从而使得所有的虚拟微处理器都可以参数响应和处理物理中断请求和域间中断请求,即中断请求被均衡到所有的虚拟处理器上,中断请求本均衡的分布在各个虚拟微处理器上;2、减小了虚拟I/O的服务延迟由于采用了步骤(5-2)、(5-4)、(10-2)和(10-4),物理中断请求和域间中断请求队列从单一队列增加到每个微处理器都有一个队列,从而使得虚拟I/O的中断请求的服务延迟减小;3、增加了分离驱动模型中的中断请求处理的并发度由于采用了步骤(10-2)、(10-3)和(10-4),域间中断请求可以再驱动域和其他域的所有虚拟微处理器之间传递,而不是单一地从驱动域的第一个微处理器和其他本文档来自技高网...
【技术保护点】
一种虚拟化下的中断动态分发方法,其特征在于,包括以下步骤:(1)虚拟机管理器对其虚拟高级可编程中断处理器进行初始化,并且虚拟域对其本地可高级编程中断控制器进行初始化;(2)虚拟机管理器接收来自于外设的物理中断请求;(3)虚拟机管理器根据物理中断请求判断其分发方式是静态分发方式,还是动态分发方式,如果是静态分发方式,则进入步骤(5),如果是动态分发方式,则进入步骤(4);(4)虚拟机管理器检查驱动域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后进入步骤(6);(5)虚拟机管理器根据物理中断请求确定目的虚拟微处理器;(6)虚拟机管理器通过目的虚拟微处理器的事件通道将物理中断请求发送到该目的虚拟微处理器;(7)驱动域根据物理中断请求生成对应的域间中断请求;(8)驱动域根据域间中断请求判断其分发方式是静态分发方式,还是动态分发方式;如果是静态分发方式,则进入步骤(10),如果是动态分发方式,则进入步骤(9);(9)驱动域检查其他域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后进入步骤(11);(10)驱动域根据域间中断请求确定目的虚拟微处理器;(11)驱动域通过目的虚拟微处理器的事件通道将域间中断请求发送到该目的虚拟微处理器。...
【技术特征摘要】
1.一种虚拟化下的中断动态分发方法,其特征在于,包括以下步骤 (1)虚拟机管理器对其虚拟高级可编程中断处理器进行初始化,并且虚拟域对其本地可高级编程中断控制器进行初始化; (2)虚拟机管理器接收来自于外设的物理中断请求; (3)虚拟机管理器根据物理中断请求判断其分发方式是静态分发方式,还是动态分发方式,如果是静态分发方式,则进入步骤(5),如果是动态分发方式,则进入步骤(4); (4)虚拟机管理器检查驱动域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后进入步骤(6); (5)虚拟机管理器根据物理中断请求确定目的虚拟微处理器; (6)虚拟机管理器通过目的虚拟微处理器的事件通道将物理中断请求发送到该目的虚拟微处理器; (7)驱动域根据物理中断请求生成对应的域间中断请求; (8)驱动域根据域间中断请求判断其分发方式是静态分发方式,还是动态分发方式;如果是静态分发方式,则进入步骤(10),如果是动态分发方式,则进入步骤(9); (9)驱动域检查其他域中虚拟微处理器的配置,并根据配置确定目的虚拟微处理器,然后进入步骤(11); (10)驱动域根据域间中断请求确定目的虚拟微处理器; (11)驱动域通过目的虚拟微处理器的事件通道将域间中断请求发送到该目的虚拟微处理器。2.根据权利要求1所述的中断动态分发方法,其特征在于,在步骤(I)中,虚拟机管理器将虚拟I/O APIC的分发方式设置为动态分发方式,并且虚拟域设置本地PIC中的优先级和仲裁优先级。3.根据权利要求1所述的中断动态分发方法,其特征在于, 虚拟域包括驱动域和其他域; 外设包括外部存储器、网络设备; 物理中断请求包括物理请求编号、物理请求地址。4.根据权利要求1所述的中断动态分发方法,其特征在于,步骤(3)中,虚拟机管理器是根据物理中断请求中的物理请求编号及虚拟机管理器中的配置文件来判断分发方式的类型。5.根据权利要求1所述的中断动态分发方法,其特征在于,其他域和虚拟微处理器的配置均包括其优先级和仲裁优先级。6.根据权利要求1所述的中断动态分发方法,其特征在于,步骤(7)中,通过驱动域中的后端...
【专利技术属性】
技术研发人员:金海,邵志远,鲁志强,郑龙,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。