CN105718309B - 虚拟环境的中断处理方法与系统 - Google Patents
虚拟环境的中断处理方法与系统 Download PDFInfo
- Publication number
- CN105718309B CN105718309B CN201410733405.6A CN201410733405A CN105718309B CN 105718309 B CN105718309 B CN 105718309B CN 201410733405 A CN201410733405 A CN 201410733405A CN 105718309 B CN105718309 B CN 105718309B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- virtual
- hypervisor
- processor cores
- interruption
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
本申请公开一种虚拟环境的中断处理方法与系统。本申请实施例的虚拟环境的中断处理方法,可运作于具有一或多处理器内核的计算机上。该方法包括:通过该虚拟环境的超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及当该目的虚拟机器正在执行在该一或多处理器内核其中之一上时,将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器。
Description
技术领域
本申请涉及一种处理虚拟环境的中断的方法与系统。
背景技术
虚拟机器(Virtual Machine,VM)是以软件方式来实现机器(比如计算机),其能像真正机器般执行程序。多个机器会各自执行于其各自操作系统(称为客户OS)之上。客户OS并不需要符合于硬件,故而,可能在同一计算机上执行不同OS,且客户OS可共享虚拟硬件资源。超级管理程序(hypervisor),也可称为虚拟机器监控程序(virtual machine monitor,VMM),一般为计算机软件的一部分,或者也可为固件/硬件,其可在虚拟环境中建造与执行虚拟机器。如果超级管理程序在计算机上执行一或多个虚拟机器的话,则此台计算机可称为主机(host machine)。虚拟机器称为客户机。超级管理程序利用虚拟作业平台来呈现客户OS,且管理客户OS的执行。
当超级管理程序执行在一处理器内核上的话,则称此处理器内核处于主机模式(host mode);如果虚拟机器执行在处理器内核上的话,则称此处理器内核处于客户模式(guest mode)。处理器内核会处于客户模式,直到事件发生,来强迫处理器内核进入主机模式,这类事件比如为,由I/O装置或计时器(timer)所发出的中断,或者是其他事件。当转换成主机模式时,超级管理程序会接手来处理所触发的事件,将此中断送至目的虚拟机器的相关中断处理程序,接着,再次进入客户模式,以回复虚拟机器的执行。当相关中断处理程序已经完成处理后,相关中断处理程序发出用中断结束(EOI,end of interrupt)信号给硬件,比如但不受限于,相关中断处理程序可写入至处理器内核的相关区域中断控制器的EOI寄存器。甚至,由一处理器内核送至另一处理器内核的中断也可称为处理器之间中断(inter-processor interrupt)。
从客户模式进入至主机模式可称为虚拟机器离开(VM exit),而从主机模式进入至客户模式可称为虚拟机器进入(VM entry)。虚拟机器离开/进入的性能开销(performance overhead)在于,当执行超级管理程序代码时,花费在存储与回复上下文(context,又称之为“内文”)与处理器快取的相关污染。某些现在架构(比如x86服务架构)规定每个外部中断会造成虚拟机器离开,或者,外部中断无法造成虚拟机器离开。此限制造成,如果要依目的虚拟机器是否正在执行而来传送不同中断,这件事变得困难。
随着虚拟化的硬件支持变得愈来愈复杂,因为I/O虚拟化所导致的性能开销也逐渐出现。因而,单根I/O虚拟化(SR-IOV,Single Root I/O Virtualization),多根I/O虚拟化(MR-IOV,Multi-Root I/O Virtualization)与半虚拟化(para-virtualization)的出现使得虚拟机器能降低DMA相关虚拟化开销。然而,对于经常发生的一般性上下文交换而言,比如,在中断传送过程中所发生的虚拟机器离开/进入,造成I/O虚拟化性能开销的绝大部分。
只有当超级管理程序与虚拟机器皆执行在同一处理器内核当中时,超级管理程序才能将虚拟中断注入至虚拟机器。对于仿真(emulate)的虚拟装置而言,将使得由后端驱动程序送至其相关前端驱动程序的每一中断都会造成虚拟机器离开,因为这些驱动程序乃是执行在不同处理器内核上。此外,计时器中断的离开机制亦会对超级管理程序造成虚拟机器离开。
为降低虚拟机器离开的数量,某些硬件制造商致力于中断控制器的硬件虚拟支持。目前研究已提出二进位重写(binary rewriting)技术,以降低虚拟机器离开的数量。此机制动态地将虚拟机器码给以最佳化,藉由辨别出会造成连续虚拟机器离开的指令对,并动态地将客户码转译成可能造成较少虚拟机器离开的变化类型。另一研究则是藉由预先分配各资源与对客户进行半虚拟化来降低虚拟机器离开。此外,尚有另一机制乃是设定既定系统呼叫,以根据各种数据结构的设定来进入即时模式操作,以降低虚拟机器离开。
发明内容
本申请实施例提供虚拟环境的中断处理方法与系统,其能操作在具有一或多处理器内核的计算机上。
根据本申请一实施例,提出一种虚拟环境的中断处理方法,可运作在具有一或多处理器内核的计算机上。该中断处理方法包括:通过该虚拟环境的超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及当该目的虚拟机器正在执行在该一或多处理器内核之一上时,将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器。
根据本申请另一实施例,提出一种虚拟环境的中断处理系统,可运作在具有一或多处理器内核的计算机上。该中断处理系统包括:超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及输出入虚拟(IOV)装置及虚拟装置,当该目的虚拟机器正在执行在该一或多处理器内核之一上时,该系统将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器。
为了对本申请的上述及其他方面有更佳的了解,下文特举实施例,并配合附图,作详细说明如下:
附图说明
图1绘示根据本申请的在虚拟环境中直接传送中断至虚拟机器的中断处理方法一实施范例。
图2绘示依照本申请的输出入虚拟(I/O virtualization,IOV)装置和/或虚拟装置的中断处理方法一实施范例。
图3(a)、(b)显示当允许虚拟机器直接触发EOI信号时,有可能发生的情况。
图4绘示根据本申请的直接传送计时器中断至虚拟机器的中断处理方法一实施范例。
图5绘示根据本申请在虚拟环境中直接传送中断的中断处理系统一实施范例。
【符号说明】
110~130:步骤
131~135:步骤
410~413:步骤
500:中断处理系统
501:处理器内核
503:超级管理程序
505:虚拟机器
507:IOV装置
509:虚拟装置
511:计时器
具体实施方式
公开一种在虚拟环境中的中断处理方法与系统的实施范例。本申请实施例可以将由IOV(I/O虚拟化)装置,虚拟装置,和/或计时器所发出的中断直接送至目的虚拟机器,而不用唤起传送路径上的虚拟环境的超级管理程序(在虚拟环境中,许多的现有中断传送机制通常会唤起超级管理程序)。甚至,本申请一实施例可减少在中断传送过程中的相关于各I/O交易的虚拟机器离开的数量。
图1绘示根据本申请的在虚拟环境中直接传送中断至虚拟机器的中断处理方法一实施范例,其可执行在具有一或多处理器内核的计算机上。在方块110,此中断处理方法由虚拟环境的超级管理程序将目的为虚拟机器的中断所触发的虚拟机器离开给予失能。在本申请另一实施例中,超级管理程序会清除虚拟机器的相关控制结构中的外部中断离开(EIE,external interrupt exiting)位,以失能相关的虚拟机器离开,使得将中断传送至执行中虚拟机器不会造成虚拟机器离开。在本申请的中断处理方法再一实施例中,超级管理程序选择将可以直接发出EOI的虚拟机器给予致能,以通知中断服务已完成,如方块120。在方块130,当此目的虚拟机器执行在该一或多处理器内核之一上时,本申请的中断处理方法一实施例,将由IOV装置和/或虚拟装置所发出的一或多中断直接送至目的虚拟机器,否则,将此一或多中断送至超级管理程序,以将相关的一或多中断送至目的虚拟机器。
当在具有IOV装置(比如,网络中断控制器(Network Interrupt Controller,NIC)的SRIOV装置)的服务器上的虚拟机器M被启动时,会造此IOV装置上产生虚拟函数(VirtualFunction)F。一旦在虚拟机器M与虚拟函数F间的连结建立起来之后,虚拟机器M可直接发出存储器映对(map)I/O指令给虚拟函数F,且虚拟函数F只能中断虚拟机器M。在本申请一实施例的直接中断传送(DID,direct interrupt controller)中,当虚拟函数F产生中断时,如果虚拟机器M正在执行,则此中断会通过,举例但不受限于,譬如PCIe阶级(hierarchy)与输出入存储器管理单元,最后到达处理器内核(虚拟机器M执行在其上且此处理器内核为客户模式)的区域中断控制器(local interrupt controller,LIC),比如为,硬件区域先进可编程中断控制器(local advanced programmable interrupt controller,LAPIC);否则,依据本申请的DID机制一实施例可将中断送至超级管理程序,接着将相关中断注入至虚拟机器M。
图1的方块130一实施例,可如图2所示。现将参考图2,其绘示依照本申请的IOV装置和/或虚拟装置的中断处理方法一实施范例如。当超级管理程序安排虚拟机器执行在一或多处理器内核之一之上时,本申请的中断处理方法一实施例可对虚拟装置的IOV装置所相关的I/O中断表的项目再映对(remap),使得此虚拟机器的IOV装置的相关中断的目的(destination)可为执行此虚拟机器的一或多处理器内核之一(方块131)。当超级管理程序对虚拟装置进行反调度(deschedule)(方块133)时,本申请的中断处理方法一实施例可致能由虚拟机器的非屏蔽中断(non-maskable interrupt,NMI)所触发的非屏蔽(non-maskable)虚拟机器离开,将相关于虚拟机器的IOV装置所相关的I/O中断表项目的传送模式改变为NMI模式。在本申请一实施例中,超级管理程序可设定虚拟机器的控制结果的NMI离开位,以致能非屏蔽虚拟机器离开。此NMI中断将强制造成虚拟机器离开,即便当EIE位已被清除。
在本申请一实施例中,当超级管理程序安排虚拟机器M来执行在处理器内核C上时,其可能但不受限于,改变IOMMU中断再映对表项目(分配给虚拟机器M的虚拟函数),使得由这些虚拟函数所产生的中断的目的为处理器内核C。这可使得当虚拟机器M正在执行时,虚拟机器M的每一个IOV装置中断可直接送至分配给虚拟机器M的处理器内核。此外,当超级管理程序反调度虚拟机器M时,其改变IOMMU中断再映对表项目(分配给虚拟机器M的虚拟函数),使得由这些虚拟函数所产生的中断的传送模式被改变为NMI模式。这可使得当虚拟机器M未执行时,虚拟机器M的每一个IOV装置中断造成虚拟机器离开,且被当成NMI中断而送至超级管理程序。当超级管理程序安排与反调度虚拟机器时,对虚拟机器的中断表的额外再映对能使得,只有当中断的目的虚拟机器正在执行时,才将IOV装置中断直接传送。
当IOV装置中断通过超级管理程序来间接传送时,超级管理程序可执行在原本执行此中断的目的虚拟机器的该处理器内核上,而非执行在专用处理器内核上。这使得间接传送中断的处理开销能平均地横跨于所有处理器内核上。
即使当虚拟机器M正在执行在处理器内核C之上,当直接传送IOV装置中断到达处理器内核C时,处理器内核C仍然有可能处于主机模式(亦即,是超级管理程序而非虚拟机器M正在执行)。在此情况下,当正在回复虚拟机器M的执行时,超级管理程序将所接收的中断转换成虚拟中断,并注入至虚拟机器M。
在图2所示的实施例中,中断处理方法一实施例可使用处理器之间中断(inter-processor interrupt)来设定此虚拟机器所相关的虚拟装置的I/O线程,当超级管理程序安排虚拟机器来执行在一或多处理器内核之一上(虚拟机器执行于其上)时,以使得处理器间中断(inter-processor interrupt,IPI)的中断向量设定为虚拟机器的虚拟装置的相关中断向量(方块135)。本申请的中断处理方法另一实施例也可致能非屏蔽虚拟机器离开,如方块133所示。
本申请一实施例可利用自IPI(self-IPI)来将虚拟中断注入至虚拟机器。特别是,在超级管理程序回复虚拟机器之前,将IPI送至本身的处理器内核。在虚拟机器回复之后,此IPI接着被直接送至所注入的虚拟机器。如果有多个虚拟中断需要被注入至虚拟机器,则超级管理程序设定多重IPI,各相关于一个虚拟中断。
为了利用物理I/O装置操作与虚拟机器执行间的并行关系(parallelism),现有的超级管理程序,比如,内核虚拟机器(Kernel Virtual Machine,KVM),对于相关于虚拟机器的各虚拟装置专门配置一个线程。正常情况下,执行虚拟机器的虚拟装置线程的处理器内核不同于执行虚拟机器的处理器内核。在本申请的DID方法与系统实施例中,当虚拟装置线程送出虚拟装置中断I至虚拟机器M时,此虚拟装置线程先检查虚拟机器M是否正在执行,如果是的话,则发出IPI至执行此虚拟机器M的处理器内核,并将IPI中断向量设定为虚拟装置中断I的中断向量。因为EIE位已被清除,此IPI会送至虚拟机器M,而不会造成虚拟机器离开。最后结果是,虚拟装置中断直接送至虚拟机器,而不会造成虚拟机器离开。
即便是,只有当虚拟装置正在执行时,超级管理程序才试着要将虚拟装置中断送至虚拟装置,仍有可能造成竞争情况(race condition)。IPI式的虚拟装置中断只能被送至原本该执行虚拟机器的处理器内核上,但当此中断送达时,此处理器内核有可能处于主机模式,而非客户模式。在此情况下,超级管理程序代表虚拟机器来接收此IPI,将IPI式的虚拟装置中断转换成虚拟中断,并将之注入至虚拟机器,在回复客户执行之前。
但在未应用符合本申请DID机制实施例的环境下,当虚拟机器送出中断结束通知时,其会送至超级管理程序。超级管理程序比如但不受限于,则接着写入至硬件EOI寄存器来发出EOI。在本申请一实施例中,超级管理程序可使得虚拟机器直接发出EOI,以通知中断服务已完成。在本实施例中,当中断处理器完成对中断需求IRQ的服务时,其藉由写入至目的处理器内核的区域中断控制器(LIC)的EOI寄存器,以通知对目前中断的服务已完成,且LIC可传送下一待处理的中断。虽然当虚拟机器发出EOI时,最好能避免虚拟机器离开,但可能也会有不想要的边际效应产生,如果超级管理程序并未涉及到EOI的发出的话。
图3显示当允许虚拟机器直接触发EOI信号且将直接中断/虚拟中断混合来造成优先顺序反转时,有可能发生的情况。在图3中,假设优先顺序为IRQ3>IRQ1>IRQ2。如果虚拟中断处理器直接发出EOI的话,LIC可能接收虚拟中断IRQ3的EOI通知,如果其认为目前没有待处理的中断的话,如图3(a)所示,或认为目前待处理中断已经处理完毕(实际上,正在进行中),如图3(b)所示。甚至,LIC可能错误地发出低优先顺序中断(比如图3(b)的直接中断IRQ2)而优先于高优先顺序中断(比如图3(b)的直接中断IRQ1),因为虚拟中断IRQ3的处理器已直接发出EOI。优先顺序反转的原因在于,当虚拟中断通过,比如但不受限于,中断需求/服务寄存器的软件仿真而被注入时,LIC是无法察觉到这些虚拟中断的。
依据本申请的IPI式虚拟中断注入机制一实施例可减少优先顺序反转问题,因为将EOI直接发出。当虚拟中断以IPI的形式发出时,目的处理器内核的LIC便可察觉,使其能跟其他直接中断与虚拟中断竞争。因为LIC可察觉到要送至处理器内核的每个中断与每个EOI信号,其使得系统不会将正在服务中的中断误认为已被完成(然实际上,未被完成),也不会贸然地送出新的中断。在一实施例中,可使用特殊IPI(其传送模式被设为NMI)。NMI设定可在目的处理器内核上强制造成虚拟机器离开,使得超级管理程序能再度控制并对这些特殊IPI采取适当行动。
不论超级管理程序与虚拟机器(目前正有虚拟中断要注入)是否执行在同一处理器内核上,符合本申请的DID机制一实施例,使用相同的IPI式机制(具有适当的中断向量设定),来传送虚拟中断。当虚拟中断传送的来源与目的执行在不同处理器内核上时,不需要虚拟机器离开。因为各虚拟中断是以硬件中断形式(比如IPI)出现且通过目的处理器内核的LIC,不论中断是否直接传送,送至处理器内核的中断的优先顺序不会被反转。
现参考图4来描述本申请另一实施范例,其显示根据本申请的直接传送计时器中断至目的虚拟机器的中断处理方法一实施例。图4中,当此目的虚拟机器正执行在该一或多处理器内核其中之一上时,本申请的中断处理方法一实施例更可直接传送一或多计时器至目的虚拟机器,否则将该一或多计时器中断送至超级管理程序以将传送一或多计时器送至目的虚拟机器(方块410)。在图4的本申请另一实施例中,当超级管理程序反调度虚拟机器时,中断处理方法可存储该一或多处理器之一的计时器状态(比如,计时器相关寄存器及其他计时器状态等),方块411所示;以及,当超级管理程序安排虚拟机器来执行于该一或多处理器内核其中之一上时,失能对该一或多处理器内核其中之一上的计时器相关寄存器的抑制(trapping)并将所存储的计时器状态回复至该一或多处理器内核其中之一(方块413)。在本申请一实施例中,中断处理方法更可致能由虚拟机器的非屏蔽中断(NMI)所触发的非屏蔽虚拟机器离开,并在超级管理程序反调度虚拟机器时,将虚拟机器的计时器所相关的I/O中断表项目的传送模式改变为NMI模式。
现参考图5,其绘示根据本申请的在虚拟环境中的中断处理系统500一实施范例,其可执行在具有一或多处理器内核501的计算机上。中断处理系统500具有至少一或多处理器内核501,超级管理程序503,一或多虚拟机器505,一或多IOV装置507与一或多虚拟装置509。超级管理程序503将目的为虚拟机器505、IOV装置507或虚拟装置509的中断所触发的虚拟机器离开给予失能,且当此目的虚拟机器505正在执行在该一或多处理器内核501其中之一上时,此中断处理系统500将由IOV装置507和/或虚拟装置509所发出的一或多中断直接送至目的虚拟机器505;否则,将此一或多中断送至超级管理程序503以将此一或多中断送至目的虚拟机器。在本申请一实施例中,超级管理程序503可将虚拟机器505的控制结构的外部中断离开(EIE)位给予清除,以失能虚拟机器离开。
当超级管理程序503安排虚拟机器505来执行在该一或多处理器内核501其中之一上时,本申请的中断处理系统一实施例,可将虚拟机器505的IOV装置507所相关的I/O中断表项目再映对,使得要送至虚拟机器505的IOV装置的中断的目的为可执行虚拟机器505的该一或多处理器内核501其中之一;且当超级管理程序503对虚拟装置505进行反调度时,可致能由虚拟机器505的非屏蔽中断(non-maskable interrupt,NMI)所触发的非屏蔽虚拟机器离开,且将相关于虚拟机器505的IOV装置507所相关的I/O中断表项目的传送模式改变为NMI模式。
本申请的中断处理系统一实施例,还可以使用处理器之间中断(inter-processorinterrupt)来设定此虚拟机器505所相关的虚拟装置509的I/O线程,当超级管理程序安排虚拟机器来执行在一或多处理器内核其中之一上(虚拟机器执行于其上)时,以使得IPI的中断向量设定为虚拟机器505的虚拟装置509的相关中断向量。当超级管理程序对虚拟装置进行反调度时,可能致能非屏蔽虚拟机器离开,其由虚拟机器505的非屏蔽中断(NMI)所触发,且将虚拟机器505的虚拟装置509所相关的I/O中断表项目的传送模式改变为NMI模式,并将I/O线程的IPI中断转换成虚拟中断。
在本申请一实施例中,超级管理程序503可设定在虚拟机器505的控制结构的NMI离开位,以致能非屏蔽虚拟机器离开。在本申请一实施例中,超级管理程序503也可选择致能虚拟机器505来发出EOI,比如,虚拟机器505直接写入EOI寄存器,以通知中断处理器的中断服务已完成。
在本申请一实施例中,中断处理系统更可包括LIC的计时器511,中断处理系统500直接传送计时器511的一或多中断至目的虚拟机器505(其正在执行在该一或多处理器内核501其中之一上);否则,将计时器511的一或多中断送至超级管理程序503,以将一或多虚拟计时器中断送至目的虚拟机器505。
在本申请一实施例中,当超级管理程序503反调度虚拟机器505时,中断处理系统500可存储该一或多处理器内核501其中之一的计时器511的状态;以及,当超级管理程序503安排虚拟机器505来执行在该一或多处理器内核501其中之一上时,失能对该一或多处理器内核501其中之一上的计时器相关寄存器的抑制,并将所存储的计时器状态回复至该一或多处理器内核501其中之一。在本申请一实施例中,中断处理系统还可致能由虚拟机器的非屏蔽中断(NMI)所触发的非屏蔽虚拟机器离开,并在超级管理程序反调度虚拟机器时,将虚拟机器的计时器所相关的I/O中断表项目的传送模式改变为NMI模式。
以x86服务器为例,计时器中断乃是相关于每内核(per-core)LAPIC,且超级管理程序将LAPIC计时器虚拟化至虚拟机器。
因为计时器中断在到达目的处理器内核之前,并未通过中断再映对表,在设定之后,超级管理程序没有可以改变计时器中断如何传送的弹性。因此,如果将计时器中断直接传送,而无超级管理程序涉及其中,由虚拟机器所设定的计时器中断可能会误传至超级管理程序,如果目的处理器内核处于主机模式;或者是,其可能会被传至错误的虚拟机器,如果在计时器失效时,正有另一虚拟机器也执行在同一目的处理器内核上的话。
当超级管理程序安排虚拟机器M在处理器内核C上时,虚拟机器M所设定的计时器乃是安装于处理器内核C的硬件计时器之上;当超级管理程序从处理器内核C上反调度虚拟机器M时,虚拟机器M所设定的计时器被从处理器内核C的硬件计时器移除,且所指定的处理器内核C的硬件计时器变回至由超级管理程序所使用。除了所指定处理器内核之外,安装在处理器内核C的硬件计时器之上的计时器只被目前正在此处理器内核上运行的虚拟机器所设定。在被指定的处理器内核上,超级管理程序准备服务由超级管理程序与目前未执行的虚拟机器所设定的计时器中断。当这些虚拟机器回复时,目的为目前未执行的虚拟机器的计时器中断会如同虚拟中断般被传送至这些虚拟机器。
综上所述,虽然本申请已以实施范例公开如上,然其并非用以限定本申请。本申请所属领域技术人员在不脱离发明的精神和范围内,当可作各种的更动与润饰。因此,本申请的保护范围当视所附权利要求书界定范围为准。
Claims (30)
1.一种虚拟环境的中断处理方法,可运作在具有一或多处理器内核的计算机上,该中断处理方法包括:
通过该虚拟环境的超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及
当该目的虚拟机器正在执行在该一或多处理器内核其中之一上时,将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器,
其中,当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,将该虚拟机器的该输出入虚拟装置所相关的输出入中断表项目再映对,使得要送至该虚拟机器的该输出入虚拟装置的该相关中断的目的为执行该虚拟机器的该一或多处理器内核该其中之一,以及
当该超级管理程序对该虚拟装置进行反调度时,致能由该虚拟机器的非屏蔽中断所触发的非屏蔽虚拟机器离开,且将该虚拟机器的该输出入虚拟装置所相关的该输出入中断表项目的传送模式改变为非屏蔽中断模式。
2.如权利要求1所述的中断处理方法,还包括:
致能该虚拟机器以直接发出中断结束,以通过该超级管理程序来通知中断服务已完成。
3.如权利要求1所述的中断处理方法,还包括:
由该超级管理程序将该虚拟机器的相关控制结构的外部中断离开位给予清除,以失能该虚拟机器离开。
4.如权利要求1所述的中断处理方法,其中,致能由该非屏蔽中断所触发的该非屏蔽虚拟机器离开的该步骤包括:
设定该虚拟机器的相关控制结构的非屏蔽中断离开位,以致能该非屏蔽虚拟机器离开。
5.如权利要求1所述的中断处理方法,还包括:
当该目的虚拟机器正在执行在该一或多处理器内核该其中之一上时,直接传送一或多计时器中断至该目的虚拟机器,否则,将该一或多计时器中断送至该超级管理程序,以将相关的一或多虚拟计时器中断送至该目的虚拟机器。
6.如权利要求5所述的中断处理方法,还包括:
当该超级管理程序反调度该虚拟机器时,存储该一或多处理器内核该其中之一的计时器状态;以及
当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,失能对该一或多处理器内核该其中之一上的计时器相关寄存器的抑制,并将所存储的该计时器状态回复至该一或多处理器内核该其中之一。
7.如权利要求1所述的中断处理方法,其中,该超级管理程序执行在原本执行该目的虚拟机器的该一或多处理器内核的同一处理器内核之上。
8.一种虚拟环境的中断处理系统,可运作在具有一或多处理器内核的计算机上,该中断处理系统包括:
超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及
输出入虚拟装置及虚拟装置,当该目的虚拟机器正在执行在该一或多处理器内核其中之一上时,该系统将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器,
其中,当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,将该虚拟机器的该输出入虚拟装置所相关的输出入中断表项目再映对,使得要送至该虚拟机器的该输出入虚拟装置的该相关中断的目的为执行该虚拟机器的该一或多处理器内核该其中之一;以及
当该超级管理程序对该虚拟装置进行反调度时,致能由该虚拟机器的非屏蔽中断所触发的非屏蔽虚拟机器离开,且将该虚拟机器的该输出入虚拟装置所相关的该输出入中断表项目的传送模式改变为非屏蔽中断模式。
9.如权利要求8所述的中断处理系统,其中,该超级管理程序更致能该虚拟机器,以直接发出中断结束,来通知中断服务已完成。
10.如权利要求8所述的中断处理系统,其中,该超级管理程序还将该虚拟机器的一相关控制结构的一外部中断离开位给予清除,以失能该虚拟机器离开。
11.如权利要求8所述的中断处理系统,其中,该中断处理系统致能由该非屏蔽中断所触发的该非屏蔽虚拟机器离开时,该中断处理系统设定该虚拟机器的相关控制结构的非屏蔽中断离开位,以致能该非屏蔽虚拟机器离开。
12.如权利要求8所述的中断处理系统,还包括:
计时器,
当该目的虚拟机器正在执行在该一或多处理器内核该其中之一上时,该中断处理系统直接传送一或多计时器中断至该目的虚拟机器,否则,该中断处理系统将该一或多计时器中断送至该超级管理程序,以将相关的一或多虚拟计时器中断送至该目的虚拟机器。
13.如权利要求12所述的中断处理系统,其中:
当该超级管理程序反调度该虚拟机器时,该中断处理系统存储该一或多处理器内核该其中之一的计时器状态;以及
当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,该中断处理系统失能对该一或多处理器内核该其中之一上的计时器相关寄存器的抑制,并将所存储的该计时器状态回复至该一或多处理器内核该其中之一。
14.如权利要求8所述的中断处理系统,其中,该超级管理程序执行在原本执行该目的虚拟机器的该一或多处理器内核的同一处理器内核之上。
15.一种虚拟环境的中断处理方法,可运作在具有一或多处理器内核的计算机上,该中断处理方法包括:
通过该虚拟环境的超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及
当该目的虚拟机器正在执行在该一或多处理器内核其中之一上时,将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器,
其中,当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,利用处理器间中断来设定该虚拟机器的该虚拟装置的输出入线程,以将该处理器间中断的中断向量设定为该虚拟机器的该虚拟装置的相关中断向量;以及
当该超级管理程序对该虚拟装置进行反调度时,致能由该虚拟机器的非屏蔽中断所触发的非屏蔽虚拟机器离开,且将该虚拟机器的该虚拟装置所相关的该输出入中断表项目的传送模式改变为非屏蔽中断模式,并将该输出入线程的该处理器间中断转换成相关虚拟中断。
16.如权利要求15所述的中断处理方法,还包括:
致能该虚拟机器以直接发出中断结束,以通过该超级管理程序来通知中断服务已完成。
17.如权利要求15所述的中断处理方法,还包括:
由该超级管理程序将该虚拟机器的相关控制结构的外部中断离开位给予清除,以失能该虚拟机器离开。
18.如权利要求15所述的中断处理方法,其中,致能由该非屏蔽中断所触发的该非屏蔽虚拟机器离开的该步骤包括:
设定该虚拟机器的相关控制结构的非屏蔽中断离开位,以致能该非屏蔽虚拟机器离开。
19.如权利要求15所述的中断处理方法,还包括:
由该超级管理程序来直接致能该虚拟机器来发出中断结束,以通知中断服务已完成。
20.如权利要求15所述的中断处理方法,还包括:
当该目的虚拟机器正在执行在该一或多处理器内核该其中之一上时,直接传送一或多计时器中断至该目的虚拟机器,否则,将该一或多计时器中断送至该超级管理程序,以将相关的一或多虚拟计时器中断送至该目的虚拟机器。
21.如权利要求20所述的中断处理方法,还包括:
当该超级管理程序反调度该虚拟机器时,存储该一或多处理器内核该其中之一的计时器状态;以及
当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,失能对该一或多处理器内核该其中之一上的计时器相关寄存器的抑制,并将所存储的该计时器状态回复至该一或多处理器内核该其中之一。
22.如权利要求15所述的中断处理方法,其中,该超级管理程序执行在原本执行该目的虚拟机器的该一或多处理器内核的同一处理器内核之上。
23.一种虚拟环境的中断处理系统,可运作在具有一或多处理器内核的计算机上,该中断处理系统包括:
超级管理程序,将目的为虚拟机器的中断所触发的虚拟机器离开给予失能;以及
输出入虚拟装置及虚拟装置,当该目的虚拟机器正在执行在该一或多处理器内核其中之一上时,该系统将由输出入虚拟装置和/或虚拟装置所发出的一或多中断直接送至该目的虚拟机器,否则,将该一或多中断送至该超级管理程序,以将该一或多中断送至该目的虚拟机器,
其中,当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,利用处理器间中断来设定该虚拟机器的该虚拟装置的输出入线程,以将该处理器间中断的中断向量设定为该虚拟机器的该虚拟装置的相关中断向量;以及
当该超级管理程序对该虚拟装置进行反调度时,致能由该虚拟机器的非屏蔽中断所触发的非屏蔽虚拟机器离开,且将该虚拟机器的该虚拟装置所相关的该输出入中断表项目的传送模式改变为非屏蔽中断模式,并将该输出入线程的该处理器间中断转换成相关虚拟中断。
24.如权利要求23所述的中断处理系统,其中,该超级管理程序更致能该虚拟机器,以直接发出中断结束,来通知中断服务已完成。
25.如权利要求23所述的中断处理系统,其中,该超级管理程序还将该虚拟机器的一相关控制结构的一外部中断离开位给予清除,以失能该虚拟机器离开。
26.如权利要求23所述的中断处理系统,其中,该中断处理系统致能由该非屏蔽中断所触发的该非屏蔽虚拟机器离开时,该中断处理系统设定该虚拟机器的相关控制结构的非屏蔽中断离开位,以致能该非屏蔽虚拟机器离开。
27.如权利要求23所述的中断处理系统,其中,该超级管理程序还直接致能该虚拟机器来发出中断结束,以通知中断服务已完成。
28.如权利要求23所述的中断处理系统,还包括:
计时器,
当该目的虚拟机器正在执行在该一或多处理器内核该其中之一上时,该中断处理系统直接传送一或多计时器中断至该目的虚拟机器,否则,该中断处理系统将该一或多计时器中断送至该超级管理程序,以将相关的一或多虚拟计时器中断送至该目的虚拟机器。
29.如权利要求28所述的中断处理系统,其中:
当该超级管理程序反调度该虚拟机器时,该中断处理系统存储该一或多处理器内核该其中之一的计时器状态;以及
当该超级管理程序安排该虚拟机器来执行在该一或多处理器内核该其中之一上时,该中断处理系统失能对该一或多处理器内核该其中之一上的计时器相关寄存器的抑制,并将所存储的该计时器状态回复至该一或多处理器内核该其中之一。
30.如权利要求23所述的中断处理系统,其中,该超级管理程序执行在原本执行该目的虚拟机器的该一或多处理器内核的同一处理器内核之上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/488,061 US9772868B2 (en) | 2014-09-16 | 2014-09-16 | Method and system for handling interrupts in a virtualized environment |
US14/488,061 | 2014-09-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718309A CN105718309A (zh) | 2016-06-29 |
CN105718309B true CN105718309B (zh) | 2019-07-12 |
Family
ID=55454832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410733405.6A Active CN105718309B (zh) | 2014-09-16 | 2014-12-04 | 虚拟环境的中断处理方法与系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9772868B2 (zh) |
CN (1) | CN105718309B (zh) |
TW (1) | TWI547876B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025621B2 (en) * | 2015-02-24 | 2018-07-17 | Wind River Systems, Inc | Method and system for transition from direct interrupt state to virtual interrupt state of emulated computing environments |
US10338822B2 (en) * | 2016-06-15 | 2019-07-02 | Vmware, Inc. | Systems and methods for non-uniform memory access aligned I/O for virtual machines |
CN109144679B (zh) * | 2017-06-27 | 2022-03-29 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
US10771554B2 (en) * | 2017-09-30 | 2020-09-08 | Intel Corporation | Cloud scaling with non-blocking non-spinning cross-domain event synchronization and data communication |
JP2019114097A (ja) * | 2017-12-25 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11042494B1 (en) | 2018-06-21 | 2021-06-22 | Amazon Technologies, Inc. | Direct injection of a virtual interrupt |
WO2020164819A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt for multilevel virtualization with interrupt table |
WO2020165666A1 (en) * | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt virtualization with blocking indicator |
WO2020164935A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt virtualization with running indicator |
TWI727607B (zh) | 2019-02-14 | 2021-05-11 | 美商萬國商業機器公司 | 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
TWI764082B (zh) | 2019-02-14 | 2022-05-11 | 美商萬國商業機器公司 | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 |
BR112021016093A2 (pt) | 2019-02-14 | 2021-10-26 | International Business Machines Corporation | Interrupção dirigida para virtualização de multiníveis |
TWI759677B (zh) | 2019-02-14 | 2022-04-01 | 美商萬國商業機器公司 | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
EP3924817A1 (en) | 2019-02-14 | 2021-12-22 | International Business Machines Corporation | Directed interrupt virtualization |
US11042495B2 (en) * | 2019-09-20 | 2021-06-22 | Advanced Micro Devices, Inc. | Providing interrupts from an input-output memory management unit to guest operating systems |
US11513983B2 (en) | 2020-05-15 | 2022-11-29 | International Business Machines Corporation | Interrupt migration |
US11768696B2 (en) * | 2020-12-14 | 2023-09-26 | Ati Technologies Ulc | Security for microengine access |
US20240111563A1 (en) * | 2022-09-30 | 2024-04-04 | Advanced Micro Devices, Inc. | Security for simultaneous multithreading processors |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135997A (zh) * | 2006-08-29 | 2008-03-05 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件设备中断处理方法 |
CN101553792A (zh) * | 2006-12-06 | 2009-10-07 | 微软公司 | 虚拟化环境中的经优化的中断传递 |
CN102945186A (zh) * | 2005-12-30 | 2013-02-27 | 英特尔公司 | 直接传送中断到虚拟处理器 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117532A1 (en) | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
US7237051B2 (en) | 2003-09-30 | 2007-06-26 | Intel Corporation | Mechanism to control hardware interrupt acknowledgement in a virtual machine system |
US7802250B2 (en) * | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US7853744B2 (en) | 2007-05-23 | 2010-12-14 | Vmware, Inc. | Handling interrupts when virtual machines have direct access to a hardware device |
US8151264B2 (en) | 2007-06-29 | 2012-04-03 | Intel Corporation | Injecting virtualization events in a layered virtualization architecture |
US8453143B2 (en) | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
JP5352848B2 (ja) | 2008-11-28 | 2013-11-27 | 株式会社日立製作所 | 仮想計算機の制御方法及び計算機装置 |
US8910158B2 (en) | 2011-12-14 | 2014-12-09 | Intel Corporation | Virtualizing interrupt priority and delivery |
WO2013100959A1 (en) | 2011-12-28 | 2013-07-04 | Intel Corporation | Processor accelerator interface virtualization |
US8892802B2 (en) | 2012-01-01 | 2014-11-18 | International Business Machines Corporation | Enhancing interrupt handling in a virtual environment |
US9164789B2 (en) * | 2012-02-29 | 2015-10-20 | Red Hat Israel, Ltd. | Multiple queue management and adaptive CPU matching in a virtual computing system |
US9594703B2 (en) * | 2012-03-29 | 2017-03-14 | Intel Corporation | Architecture and method for managing interrupts in a virtualized environment |
US9489223B2 (en) * | 2012-11-27 | 2016-11-08 | Red Hat Israel, Ltd. | Virtual machine wakeup using a memory monitoring instruction |
CN103473135B (zh) | 2013-09-23 | 2016-08-24 | 中国科学技术大学苏州研究院 | 虚拟化环境下自旋锁lhp现象的处理方法 |
-
2014
- 2014-09-16 US US14/488,061 patent/US9772868B2/en active Active
- 2014-10-31 TW TW103137783A patent/TWI547876B/zh active
- 2014-12-04 CN CN201410733405.6A patent/CN105718309B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102945186A (zh) * | 2005-12-30 | 2013-02-27 | 英特尔公司 | 直接传送中断到虚拟处理器 |
CN101135997A (zh) * | 2006-08-29 | 2008-03-05 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件设备中断处理方法 |
CN101553792A (zh) * | 2006-12-06 | 2009-10-07 | 微软公司 | 虚拟化环境中的经优化的中断传递 |
Also Published As
Publication number | Publication date |
---|---|
US20160077848A1 (en) | 2016-03-17 |
CN105718309A (zh) | 2016-06-29 |
US9772868B2 (en) | 2017-09-26 |
TWI547876B (zh) | 2016-09-01 |
TW201612749A (en) | 2016-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718309B (zh) | 虚拟环境的中断处理方法与系统 | |
CN103761145B (zh) | 用于各个处理器的辅助中断虚拟化的访客中断控制器 | |
US10152602B2 (en) | Protecting state information for virtual machines | |
Tu et al. | A comprehensive implementation and evaluation of direct interrupt delivery | |
CN101859258A (zh) | 系统管理模式处理器间中断重定向 | |
US9715403B2 (en) | Optimized extended context management for virtual machines | |
US20170269867A1 (en) | Virtual machine trigger | |
JP5357972B2 (ja) | コンピュータシステムにおける割り込み通信技術 | |
US7814496B2 (en) | Method and system for replicating schedules with regard to a host controller for virtualization | |
CN103197949B (zh) | 用于利用具有至少两个虚拟机的硬件平台的资源的方法和装置 | |
EP3254199B1 (en) | System and method for generating cross-core breakpoints in a multi-core microcontroller | |
WO2012170709A2 (en) | System and method for virtual partition monitoring | |
JP2016517572A5 (zh) | ||
CN102279769B (zh) | 一种面向嵌入式Hypervisor 的中断虚拟化操作方法 | |
KR20160033517A (ko) | 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법 | |
US10564889B2 (en) | Method and apparatus for processing data based on physical host | |
US20150347169A1 (en) | Scheduler limited virtual device polling | |
CN103744716A (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
EP3147784A1 (en) | Interruption handling method and relevant device of virtual platform | |
RU2014151557A (ru) | Сетевое управление наборами защищенных данных | |
CN109933451A (zh) | 一种基于risc-v架构的异常和中断处理系统及方法 | |
US9069741B2 (en) | Emulating level triggered interrupts of physical devices assigned to virtual machine | |
US11210393B2 (en) | Context data control | |
US9904567B2 (en) | Limited hardware assisted dirty page logging | |
US9122549B2 (en) | Method and system for emulation of instructions and hardware using background guest mode processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |