针对中断持有者抢占问题的综合调度方法及装置制造方法及图纸

技术编号:18142379 阅读:38 留言:0更新日期:2018-06-06 14:22
本发明专利技术发现并定义了虚拟对称多处理环境下中断重映射机制可能存在的一个问题:中断持有者抢占(IHP,Interruptability Holder Preemption)问题。该问题导致中断重映射机制失效,降低了虚拟机的I/O性能。为了解决IHP问题,本发明专利技术提供一种前摄性的、基于中断持有者信息的VCPU综合调度方法。该方法基于目前广泛使用的KVM(Kernel‑Based Virtual Machine)及其半虚拟化网络模型,通过对中断持有者运行状态的全局把握与分析,并兼顾系统的全局调度公平性,构建一种VCPU综合调度方法,有效消除IHP问题,显著提升虚拟机的I/O性能。

【技术实现步骤摘要】
针对中断持有者抢占问题的综合调度方法及装置
本专利技术涉及计算机
,尤其涉及一种针对中断持有者抢占问题的综合调度方法及装置。
技术介绍
系统虚拟化为允许多个虚拟机同时运行在一个物理服务器上创造了环境。虚拟机监控器(VMM,VirtualMachineMonitor)将底层硬件抽象为虚拟资源,并管理虚拟机的运行。I/O虚拟化是系统虚拟化的重要分支,负责为虚拟机提供I/O设备。随着网络互联速度的持续增加,I/O虚拟化已经成为云数据中心的关键议题之一。虚拟对称多处理(VSMP,VirtualSymmetricMultiprocessing)技术使得一个虚拟机可以拥有多个虚拟处理器(VCPU,VirtualCPU),这不仅带来了更高的并发度和资源利用率,也有利于进一步提升I/O吞吐量和响应性。基于硬件的中断递交技术,如MessageSignalingInterrupt、PostedInterrupt等,可以将I/O设备中断高效地递交至目标虚拟机进行处理。然而,在VSMP环境下,由于多个VCPU需要时分共享一个物理CPU核,这使得虚拟中断的处理过程变得复杂:负责处理虚拟中断的VCPU可能会被VMM调度器调度出去,导致中断事件的处理延迟,进而影响虚拟机的I/O性能。很多已有研究致力于提升虚拟对称多处理环境下的I/O吞吐量和响应性。现有的解决方案大致可以分为三种:旁核(side-core)策略、调度相关策略以及中断重映射机制。旁核策略使用一个单独的CPU核专用于虚拟机的I/O处理,虽然可以保证I/O性能,但很容易造成CPU资源的浪费。调度相关策略通过减少VMM调度器的时间片来减少每个VCPU在运行队列中的等待时间,从而降低I/O延迟,但该方法会造成频繁的上下文切换,不利于CPU密集型(PU-intensive)任务的运行。相比之下,中断重映射机制通过将I/O设备中断智能地重映射至虚拟机多个VCPU中最合适的一个,既能提升I/O性能,也不会引入其它副作用。目前,中断重映射机制已经成为虚拟对称多处理环境下最具有吸引力的I/O性能解决方案之一。但是,在实际过程中,中断重映射机制可能会发生失效的风险,如何避免中断重映射机制失效是目前亟待解决的问题。
技术实现思路

技术介绍
中所述,中断重映射机制会发生失效的风险。专利技术人对此进行研究,发现,如果虚拟机运行的是Linux操作系统,该系统中针对网络I/O设备的NAPI处理模式可能会和中断重映射机制发生冲突,使得中断重映射机制失效。NAPI是Linux上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后关闭设备中断进入轮询(POLL)模式读取数据,等轮询模式结束时再开启设备中断。由于NAPI需要操作I/O设备的可中断性,而中断重映射需要修改设备中断的目的地址,如果不加以协调,会产生冲突以致中断重映射失效。至此,专利技术人首先发现并定义了虚拟对称多处理环境下中断重映射机制可能存在的问题:中断持有者抢占(IHP,InterruptabilityHolderPreemption)问题。IHP问题的定义:假设虚拟机的某个VCPU当前正在处理某个网络I/O设备的中断,并进入了NAPI处理过程的轮询(POLL)模式,则该设备的可中断性被关闭,此时称该VCPU为中断持有者(IH,InterruptabilityHolder)。如果此时该IH被VMM调度器调度出去,那么就发生了IHP问题。在IH被再次调度并重新开启设备中断的这段时间里,该网络I/O设备无法产生中断,即使它收到了外界的数据包。由于没有中断产生,中断重映射失效,该设备收到的数据包无法被即使处理,降低了I/O性能。因此,专利技术人在上述研究的基础上提出一种针对虚拟多对称处理环境下中端持有者抢占问题的综合调度方法及装置,以解决IHP问题,该方法基于目前广泛使用的KVM(Kernel-BasedVirtualMachine)及其半虚拟化网络模型,通过对中断持有者运行状态的全局把握与分析,并兼顾系统的全局调度公平性,构建一种VCPU综合调度方法,有效消除IHP问题,显著提升虚拟机的I/O性能。本专利技术的技术方案提供一种针对中断持有者抢占问题的综合调度方法,包括如下步骤:步骤1:当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达;步骤2:分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;步骤3:目标虚拟CPU接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据包;步骤4:当要将一虚拟CPU调离出物理CPU时,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;步骤5:以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,若已打开,则立即将所述优选虚拟CPU调离物理CPU。可选的,步骤1中根据中断重映射机制选择一虚拟CPU作为目标虚拟CPU。可选的,步骤4中,当要被调离出物理CPU的虚拟CPU未被标记为中断持有者,则立即将该虚拟CPU调离出物理CPU。可选的,步骤5中,在VMExit处理函数中判断优选虚拟CPU是否已经打开虚拟网络设备的中断。本专利技术的技术方案还提供一种针对中断持有者抢占问题的综合调度装置,包括:多个虚拟CPU;选择模块,用于当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达,所述目标虚拟CPU用于接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据;中断持有者检测模块,用于分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;调度模块,与所述中断持有者检测模块连接,用于当要将一虚拟CPU调离出物理CPU时,根据所述中断持有者检测模块标记的中断持有者信息,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU,并且当优选虚拟CPU开启虚拟网络设备的中断后,立即将所述优选虚拟CPU调离物理CPU;判断模块,与所述调度模块连接,用于以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,并将判断信息发送至调度模块。可选的,所述选择模块用于根据中断重映射机制选择一虚拟CPU作为目标虚拟CPU。可选的,所述调度模块包括:延时调度单元,与所述终端持有者检测模块连接,用于继续调度被标记为中断持有者的虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;即时调度单元,与所述判断模块连接,用于将未被标记为中断持有者的虚拟CPU和已关闭虚拟网络设备中断的优选虚拟CPU立即调离物理CPU;常规调度单元,与所述延时调度单元连接,用于将需要调离的未被标记为中断持有者的虚拟CPU立即调离出物理CPU。可选的,所述判断模块用于在VMExit处理函数中判断优选虚拟CPU是否已经开启虚拟网络设备的中断。本专利技术提供的一种前摄性的、基于中断持有者信息的VCPU综合调度方法具有以下有益的技术效果本文档来自技高网
...
针对中断持有者抢占问题的综合调度方法及装置

【技术保护点】
一种针对中断持有者抢占问题的综合调度方法,其特征在于,包括以下步骤:步骤1:当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达;步骤2:分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;步骤3:目标虚拟CPU接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据包;步骤4:当要将一虚拟CPU调离出物理CPU时,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;步骤5:以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,若已打开,则立即将所述优选虚拟CPU调离物理CPU。

【技术特征摘要】
1.一种针对中断持有者抢占问题的综合调度方法,其特征在于,包括以下步骤:步骤1:当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达;步骤2:分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;步骤3:目标虚拟CPU接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据包;步骤4:当要将一虚拟CPU调离出物理CPU时,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;步骤5:以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,若已打开,则立即将所述优选虚拟CPU调离物理CPU。2.根据权利要求1所述的针对中断持有者抢占问题的综合调度方法,其特征在于,步骤1中根据中断重映射机制选择一虚拟CPU作为目标虚拟CPU。3.根据权利要求1所述的针对中断持有者抢占问题的综合调度方法,其特征在于,步骤4中,当要被调离出物理CPU的虚拟CPU未被标记为中断持有者,则立即将该虚拟CPU调离出物理CPU。4.根据权利要求1所述的针对中断持有者抢占问题的综合调度方法,其特征在于,步骤5中,在VMExit处理函数中判断优选虚拟CPU是否已经打开虚拟网络设备的中断。5.一种针对中断持有者抢占问题的综合调度装置,其特征在于,包括:多个虚拟CPU;选择模块,用于当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达,所述目标虚拟CPU用于接收所述虚拟中断,触...

【专利技术属性】
技术研发人员:李健管海兵胡小康张望
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

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

1