CN107273199B - 用于管理虚拟化环境中的中断的体系结构和方法 - Google Patents
用于管理虚拟化环境中的中断的体系结构和方法 Download PDFInfo
- Publication number
- CN107273199B CN107273199B CN201710472572.3A CN201710472572A CN107273199B CN 107273199 B CN107273199 B CN 107273199B CN 201710472572 A CN201710472572 A CN 201710472572A CN 107273199 B CN107273199 B CN 107273199B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- value
- processor
- exit
- hypervisor
- 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
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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
-
- 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
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
一种方法,可包括:识别指示客户操作系统(OS)的实时模式操作的信号并在该客户OS正在运行时直接将用于第一处理器的中断路由至该客户OS,而不引起从由该客户OS执行到由主机系统执行的转移。其他实施例被公开和声明。
Description
本申请是2012年3月29日提交的、申请号为201280071792.0、发明名称为“用于管理虚拟化环境中的中断的体系结构和方法”的中国专利申请的分案申请。
背景技术
当前,多个设备需要最佳运行的实时操作系统,同时非实时应用的需求仍然流行。随着处理体系结构诸如多个核处理器的增殖,在单个平台满足两种需要是有用的,其可通过增加处理器核的复杂度实现。
虚拟化长期用于安全并且可靠地对多个应用域服务。这允许负载平衡以及鲁棒性。然而,当前实时操作系统无法容易地作为真正虚拟化实体而存在而不牺牲响应能力。这很大程度上由于在虚拟化环境处理中断的过程所导致。
在某些设置中,程序诸如管理程序,也称为虚拟机管理器(VMM),将虚拟操作平台呈现至称为客户的多个操作系统或客户操作系统。术语“虚拟机”(VM),其表示管理程序所管理的实体,总体上指代完全隔离的客户操作系统,安装于一般主机操作系统。
管理程序可安装于硬件主机,其任务为运行客户OS。当应用在虚拟化环境运行时,管理程序管理用于给定客户OS的应用的中断。例如,当用于第一客户OS的中断递送至管理程序时,虚拟机(VM)退出被触发,其中发生从客户执行到主机执行的转移。在中断成功地在管理程序处理之后,发生后续VM进入并且中断被注入至客户OS。然后客户OS重新开始执行并且就将管理程序注入的中断视为生成自客户OS自己的设备之一的中断。中断处理可导致中断延迟,具有当非虚拟化应用直接运行于硬件主机时产生的中断延迟的多倍的持续时间。由于许多应用对中断延迟敏感,其增加了延迟(还有其他因素),限制虚拟化的普及使用。
结合上述和其他考虑,需要当前的改进。
附图说明
图1说明了第一系统的一个实施例。
图2说明了图1的系统的体系结构的细节。
图3描述与本实施例一致的中断处理的一个示例。
图4说明了与本实施例一致的中断转译的一个示例。
图5描述了与多种实施例一致的用于处理中断的一种情形。
图6描述了与多种实施例一致的用于处理中断结束的一种情形。
图7说明了第一逻辑流程一个实施例。
图8说明了第二逻辑流程的一个实施例。
图9说明了第三逻辑流程的一个实施例。
图10说明了第四逻辑流程的一个实施例。
图11说明了计算体系结构的实施例。
具体实施方式
多种实施例针对用于在虚拟化环境中管理中断的技术。除其他优点,实施例可改进成本可承受性、可伸缩性、模块性、可扩展性或操作者、设备或网络的互操作性。
现参考附图,其中相同的参考数字用于指代全文中相同的元件。在如下描述中,为进行说明,多个特定细节被提出,以提供其全面理解。然而,显而易见的是,新的实施例可被实施,而不需要这些特定细节。在其它实例中,熟知的结构和设备在框图形式中示出,以实现其描述。其意图在于涵盖属于所声明主题的精神和范围的所有修改、等同和备选。
在多种实施例,硬件和/或软件中断可被管理以当应用运行于客户操作系统时降低应用的中断延迟。多种实施例呈现了新的体系结构,其通过提供伪发布的中断来降低关联于用于实时应用的中断的开支。在多种实施例,客户OS直接处理中断,而不是具有最初处理中断的管理程序。
关联于中断的开支的降低可使运行于客户操作系统的实时应用以如同应用直接运行于非虚拟化环境的硬件的相同的中断延迟操作。由本实施例提供的优点包括加强多个实时工作量的能力。特别地,本实施例使N-l实时工作量利用虚拟化来加强,其中N包含任何正整数并且N-l的值仅由实时操作系统所固定的系统中核的数量N限制,假设一个核专用于管理程序和/或其他活动。本实施例致力于运行对虚拟化环境中的中断延迟敏感的实时应用的能力,由此提供虚拟化处理的可伸缩性以及低延迟操作的鲁棒性。这提供了虚拟化许多实时应用的能力,其目前为止由于减少中断延迟的关键性而总体上限于运行于本地硬件。作为这种应用的示例,在用于控制机器诸如机器人设备的多种工业控制操作中,计时可能非常关键,使得需要减少中断延迟。其他示例包括产生高分组速率传输的网络应用,其中及时响应分组的能力可由于高中断延迟而大打折扣,以使分组因为中断而丢弃。因此,由于相比于非虚拟化操作所产生的更大的中断延迟,这限制了在虚拟化环境中运行该实时应用的能力。
为解决该问题,在多种实施例,中断的直接处理或发布,可通过提供在系统中管理一个或多个客户OS的无记号管理程序来完成。无记号管理程序不需要定时器记号或其他外部中断,用于合适地在正在运行实时客户OS的处理器核上起作用。在其它实施例,管理程序可基于记号,并可在其他处理核的多个客户之间实现时间分片(time slicing),其不需要实时客户固定于其上。
图1说明了与多种实施例一致的用于处理中断的系统100的框图。如所说明的,系统100可从中断源102接收中断(未独立示出),用于由运行于系统100的应用来处理。在中断102源递送硬件中断的情况下,中断可为来自硬件设备的信号,其当处理器设备执行操作时被发送至处理器设备。然后目的处理器设备可停止正常处理,诸如应用的运行,并可执行关联于中断源102的存储器中的例程或程序。如图1所说明的,系统100可包括一个或多个处理器104a-104n,在某些实施例其可为多核平台的处理器核。系统100还包括虚拟机监视器/管理程序(以下简称为“管理程序”)106和一个或多个客户操作系统(OS)108m-108z,其中a,n,m和z表示任何正整数。一个或多个客户OS 108m-108z可运行于虚拟化环境中的管理程序106之上,如图2进一步描述。系统100还包括实时中断模块110用于管理中断,下文描述了其操作。
与进一步的实施例一致,图2说明了图1的系统100的体系结构的细节。图2描述两个虚拟机(VM)202a,202b,其包括相应的客户OS 108m,108n。每个VM 202a,202b还包括应用,诸如相应的非实时应用204a-l,204b-1和实时应用204a-2,204b-2。在多种实施例,当客户OS正在运行实时应用时,并当客户OS正在运行非实时应用时,实时中断模块110可用于管理用于客户OS的中断。实时中断模块110可体现于软件,硬件或硬件和软件的组合。在某些实施例,实时中断模块可包括于管理程序106,一个或多个客户OS 108m-108z和/或处理器104a-104n的其他部分。
在实时中断模块110至少部分地包括于管理程序106的某些实施例中,管理程序106可从传统操作修改,以使其可操作以支持两个独立的操作模式,用于一个或多个客户OS108m-108z。在第一操作模式,非实时操作模式,管理程序106可执行为传统管理程序,其中要应用于给定处理器104a-104n的中断由管理程序106处理。非实时操作模式可适用于当非实时应用正在运行时管理一个或多个客户OS 108m-108z,诸如前述非实时应用204a-1,204b-1。以这种方式,因为非实时应用可能对中断延迟不敏感,管理程序处理过程中断所产生的开支是可接受的,使管理程序106以传统方式来处理中断。
在多种实施例,一个或多个客户OS 108m-108z可进入第二、实时操作模式,其当实时应用,诸如实时应用204a-2,204b-2,正在运行时可能是所希望的。在实时操作模式,如图3说明的,所有外部中断可直接路由至目的客户OS,而不是由管理程序106处理。图3描述了与本实施例一致的实时操作模式的一个中断处理的示例。中断源102可生成中断,示出为中断请求(IRQ)302,处理器104a将其直接路由至客户OS 108m。以这种方式,进入的中断可路由至客户OS而不产生VM退出事件,其指代在所谓的非根(root)操作模式到根(root)操作模式之间的转移。根(root)操作模式指代当处理器可在没有虚拟化而运行主机系统时或当管理程序在虚拟化为活动时控制操作时的状态。在非根(root)模式,处理器操作是不同的。例如,结构诸如虚拟机控制结构(VMCS)可用于控制处理器操作并确定特定指令如何被执行。VMCS可位于存储器304,其存储主机和客户两者的完整的CPU状态,以及某些控制位(例如,何时从当前模式退出)。非根(root)模式特别地用于客户OS正在运行时。因此,VM退出事件可需要从指令由VM或客户OS执行到由主机或管理程序执行的转移。由于,在图3的示例中,IRQ302直接路由至客户OS 108m,管理程序106未被调用,并且不产生VM退出。
由于避免了外部处理步骤,在实时操作模式中操作的能力所带来的VM退出事件的防止可在运行实时应用时特别有用。此外,在实时和非实时操作模式之间切换的能力提供了应用操作的灵活性,其可对中断延迟不明显敏感。
因此,例如,在非实时操作模式,当客户OS 108m正在运行非实时应用204a-1时,由管理程序106的中断接收可产生VM退出,其中指令执行从客户OS 108传输至管理程序106。当中断处理完成时,VM进入可被执行,其指代从根(root)模式到非根(root)模式操作的转移。因此,在VM进入发生之后,执行返回客户OS 108m,并且非实时应用204a-1在中断被接收之前运行。每次在客户OS 108m系统正在运行非实时应用204a-1时中断被处理时,VM进入和VM退出事件可生成显著延迟。然而,如果非实时应用204a-1足以对中断延迟不敏感,则该中断延迟是可接受的。
相反,当客户OS 108m正在运行实时应用204a-2时,在实时应用204a-2正在运行时执行的任何VM退出和/或VM进入操作可产生中断延迟,其持续时间对实时应用204a-2的最佳操作是不可接受的或不希望的。因此,客户OS 108m希望进入实时操作模式,其中当实时应用204a-2将被运行时,中断不产生VM退出,并且相反直接路由至客户OS 108m,如图3所描述。
在多种实施例,在支持实时应用的虚拟化操作的系统中实时操作模式可当客户OS运行于管理程序时被启动。例如,当实时应用正在运行或将被客户OS运行时,客户OS可生成信号以进入实时模式操作。在实时中断模块110的至少一部分被包含于管理程序106中的实施例中,由客户OS生成的用于实时操作模式的特定信号可路由至管理程序。当管理程序接收特定信号时,管理程序可将信号识别为指示用于客户OS的实时模式操作被请求。然后,系统100的操作可被修改以使用于给定处理器的中断在客户OS正在运行时直接路由至客户OS的核而不产生VM退出操作。
在一个实施例,客户OS可对管理程序进行“VM调用”,指示客户OS准备好进入实时操作模式。作为响应,管理程序可采取一个或多个动作来设置实时模式的操作。在某些实施例,管理程序可在运行客户OS的处理器的VMCS中执行改变。例如,管理程序可改变VMCS的域,其确定接收的中断是否用于导致VM退出。因此,管理程序可“清除”指示中断用于导致VM退出的位。然后,当中断由运行客户OS的处理器接收时,没有产生VM退出,处理器仍在非根(root)操作模式,并且客户OS仍在实时操作模式。
应当理解,在VM退出被禁止用于所接收的外部中断的实施例中,发送至运行客户OS的处理器的所有中断将被客户OS接收。除了其他类型的中断,这包括处理器间中断(IPI)。因此,希望客户OS正在运行于其上的管理程序不发送任何中断(包括定时器中断)至运行客户OS的处理器。因此,与多种实施例一致,运行实时应用的客户OS可固定于特定处理器。例如,再次参见图1,客户OS 108m可固定于处理器104a,客户OS 108n可固定于处理器104b等。在多核平台的实施例,每个处理器104a-104n可表示独立的处理器核。这使客户OS将实时设备编程成客户OS所固定的目标处理器(核),由此始终在该处理器(核)接收那些中断。在某些实施例,实时中断模块110可将客户OS固定在特定处理器核,以使在不同的处理器核之间不产生迁移,即使当实时应用没有运行于客户OS时,而在其它实施例管理程序106可操作以在不同的处理器或核之间以限制形式迁移客户OS,其中,在客户OS被迁移的任何时间,管理程序106更新多种数据结构以保证正确的中断转发。
与多种实施例一致,因为给定处理器的所有中断可由运行于该处理器的客户OS接收,中断格式可按需修改,以使该中断按照使客户OS正确地解释中断的格式被递送至客户OS。在一个实施例,管理程序106可经由实时中断模块110生成直接转译,用于被送往客户OS的中断。该转译可将由硬件生成的中断从第一格式转译为第二格式,以该第二格式,客户OS合适地处理该中断。
图4说明了与本实施例一致的中断转译的一个示例。在说明的示例中,中断源102可生成具有特定格式的IRQ 402。例如,中断源可为机器人设备硬件,其生成中断“4”(对应于IRQ 402的格式),以指示特定动作。IRQ 402可递送至管理程序106,其可识别中断“4”表示对应于客户OS 108m的格式的中断“12”的特定动作。因此,管理程序可利用例如软件例程执行中断“4”到中断“12”的转译。转译的中断可作为IRQ 404转发至客户OS 108m,其正确地将中断解释为指示由中断源102生成的中断“4”所表示的特定动作,并且因此以正确方式处理中断。
在某些实施例,硬件转译表(未示出)可用于将中断从由硬件中断源生成的格式转译为实时客户OS的正确的格式。例如,返回先前示例,为表示特定硬件中断的中断“4”和中断“12”之间的转译可被编程到硬件或控制硬件的设备驱动器中。
在多种附加的实施例,设置可被调整,以保证客户OS不从运行中被抢占,除非客户OS执行指令以引起VM退出。在一个实施例,实时中断模块110可修改典型管理程序初始化,以禁止HLT退出。术语“HLT退出”指代当“暂停”(HLT)命令由运行客户OS的处理器执行时执行VM退出。因此,再次参见图1,当客户OS 108m运行于处理器104a时,处理器,经由客户OS108m,可执行HLT指令,其将处理器104a设置于空闲状态。在传统操作下,HLT指令的执行可使VM退出,其中产生到根(root)操作模式的转移。因此,管理程序106可被调用,以使当空闲状态被终止时,客户OS 108m不再运行。相反,与本实施例一致,因为VM退出并未由HLT指令的执行触发,客户OS 108m在处理器104a退出空闲状态之后保持处理器控制。在一个实施例,HLT退出的禁止可通过修改控制域实现。例如,指定HLT指令的客户执行是否使VM退出的位的值可设置为“零”,以指示在HLT执行时VM退出不发生。尽管HLT退出的禁止防止客户正在运行的处理器由其他虚拟机使用,该禁止通过保持由客户OS控制而可保证低延迟。
为减少中断延迟的效应,还可希望减少可抢占客户OS的附加的事件,特别当关键实时应用运行于客户OS时。因此,当运行于实时操作模式时,实时中断模块110可指示客户OS降低或消除可导致VM退出的动作。
应当理解,根据本实施例的禁止客户OS的抢占可改变设备驱动器在管理程序中仿真的方式。例如,如果系统中的硬驱动机(hard drive)被共享,在虚拟化处理器正在运行客户OS的传统操作下,由硬驱动机生成的中断被路由至自举处理器,其正确地将中断转发至虚拟化处理器。这促成VM退出,VM退出时,该处理器上的管理程序通过VMCS注入中断。然而,根据本实施例,实时中断模块110可暂时修改自举处理器的操作或发送信号至自举处理器,指示自举处理器将由硬驱动机生成为处理器间中断(IPI)的中断转发至实时客户处理器以模仿所转译的中断。
图5描述了与多种实施例一致的用于处理中断的一种情形。如所说明的,硬驱动机502生成中断IRQ 504。中断由自举处理器506接收,其将作为IPI508的中断发送至处理器104a。IPI 508可被路由至客户OS108m而不调用管理程序106。
根据进一步的实施例,处理中断结束(EOI)的方式可被调整。EOI为发送至可编程中断控制器(PIC)的信号,其可为高级PIC(APIC),以指示对给定中断的中断处理完成。在EOI传统的处理的情况下,当客户OS正在运行时,当中断过程完成时,客户OS生成EOI,其导致VM退出。客户OS正在运行于其上的管理程序被调用,并且,如果中断已被正确地处理,则转发EOI至PIC。然后EOI可用于使PIC清除寄存器中的对应位,诸如服务中寄存器(ISR),并由此使更多IRQ由PIC生成。然而,每次客户OS生成EOI时,操作模式从非根(root)模式转移到根(root)操作模式,并且控制返回管理程序。因此,即使进入的IRQ最初被设置为在客户OS正在运行时绕过管理程序,在EOI生成的VM退出之后处理的中断将由于客户OS不再运行而产生延迟。
因此,在多种实施例,本地PIC,诸如APIC,可例如通过实时中断模块110编程,以使EOI的生成不产生VM退出。因此,当中断的处理完成,并且EOI被生成时,管理程序不被调用并且客户OS仍然运行。
图6描述了与多种实施例一致的用于处理EOI的一种情形。如所说明的,客户OS108m生成EOI 602,其可在中断成功处理之后发生,同时客户OS 108m正操作于实时模式,如上所讨论。EOI 602可发送至虚拟APIC 604,其可设置成执行传统硬件APIC的至少某些功能。当EOI 602被生成时,虚拟APIC 604可基于数据结构的设置而确定,诸如EOI位图,无论VM退出是否发生。在所说明的情形中,EOI 602不引起VM退出,管理程序106不被调用,并且APIC 604可通知处理器104a关联于EOI 602的中断完成,以使进一步的中断可按需处理。以这种方式,源于VM退出和/或VM进入的任何延迟被避免,并且运行于客户108m的任何实时应用由于接收、处理、并完成中断而不退出非根(root)模式而可继续具有所产生的最小延迟。
在虚拟APIC未被使用的某些实施例中,本地中断延迟仍可被实现,但以更低的频率。换言之,当中断被接收并且客户OS运行于实时模式时,中断可指向客户OS而不产生VM退出。然而,为确认中断,管理程序通过EOI的生成而被调用。
表I呈现了根据一个实施例的多种设置的综述,可应用于在客户OS运行期间管理中断。如所说明的,“外部中断退出”位可设置为“0”,以使外部中断直接被引导至客户而不导致VM退出。例如,中断可直接递送至客户中断描述符表(IDT),其将中断请求关联于合适的中断处理方(interrupt handler)。当位设置为“1”时VM退出产生于中断的接收,如上所讨论。
表I
类似地,“虚拟化APIC访问”位可设置为“0”,以使当客户OS试图访问APIC页时,不发生VM退出。
对给定的运行OS的处理器的APIC具有称为任务优先权寄存器(TPR)的特征,其提供特定存储器位置,由此(客户)OS可与APIC通信。“使用TPR阴影”位的值确定客户OS在APIC写入TPR是否导致VM退出。
如表I进一步说明的和先前讨论的,EOI位图可设置为“1”以使由客户OS生成的EOI被引导至虚拟化APIC页;其他情况下,当位图设置为“0”时,发生VM退出。这同样适用于“APIC寄存器虚拟化”进入,其中,如果值为“1”,客户OS对APIC页的访问(读/写)被引导至虚拟化APIC,否则发生VM退出。最终,“HLT退出”位可设置为零,以当HLT命令被执行时禁止VM退出,如先前讨论的。表I说明的设置的组仅仅是示例性的,并且位图/寄存器设置的其他组合,以及附加的或不同的位图/寄存器可例如,根据应用来使用。
本文包括一组流程图,表示用于执行新的公开体系结构的方面的示例性方法。尽管为了简化说明,本文以流程图或流图的形式示出了一个或多个方法,例如,示出和描述为一系列动作,但应当理解并领会,方法不限于动作的顺序,某些动作可根据实际情况以不同的顺序发生和/或与本文示出和描述的其他动作并发。例如,本领域技术人员将理解并领会,方法可选地表示为一系列相关状态或事件,诸如在状态图中。此外,并非方法说明的所有动作在新的实现中是必需的。
图7说明了示例性逻辑流700。在框702,信号被识别,其发送自客户OS,指示实时模式的操作。例如,信号可采用VM调用的形式。在框704,中断,诸如外部中断,被接收用于第一处理器。在框706,用于第一处理器的中断直接路由至运行于第一处理器的客户OS,而不引起VM退出操作,否则在VM退出操作中,将会发生非根(root)操作模式到根(root)操作模式之间的转移。
图8说明了示例性逻辑流800。在框802,客户OS固定于第一处理器。在框804,第一客户OS系统耦合于无记号管理程序。在框806,系统调用从客户OS中被识别,其指示实时操作模式。在框808,位在虚拟机控制结构(VMCS)中被清除,其当外部中断被接收时触发VM退出。在框810,在客户OS运行于实时操作模式时,外部中断在客户OS被接收。在框812,因为位在VMCS中被清除,VM退出被防止并且管理程序未被调用。
图9说明了另一示例性逻辑流900。在框902,中断被接收用于第一处理器,诸如第一处理器核。在框904,运行于第一处理器核的目的客户OS被确定。然后流程移动至框906,其中确定运行于第一处理器核的客户OS是否处于实时操作模式。如果否,流进入框908,其中中断请求被转发至目的客户OS,以触发VM退出。如果,在框906,客户OS运行于实时操作模式,流程移动至框910,其中中断请求被转译成与客户OS兼容的格式。以这种方式,客户可解释中断并以合适的方式处理中断请求。
图10说明了进一步示例性逻辑流1000。在框1002,中断处理完成。在框1004,中断结束(EOI)被发送至控制器,诸如高级可编程中断控制器(APIC)用于处理。然后流程移动至框1006,其中EOI位图的位值被检查。如果位图值未被设置为“1”,流程移动至框1008,其中VM退出被启动。如果位图值不等于“1,”流程移动至框1010,其中EOI被引导至虚拟化APIC页,用于处理。
图11说明了示例性计算体系结构1100的实施例,适用于实现先前描述的多种实施例。如在本申请所使用的,术语“系统”和“组件”意图指代计算机相关实体,无论是硬件,硬件和软件的组合,软件或执行中的软件,其示例由示例性计算体系结构1100提供。例如,组件可为,但不限于,运行于处理器的进程、处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质的)、对象、可执行程序、执行线程、程序和/或计算机。以说明的形式,运行于服务器的应用和服务器两者可为组件。一个或多个组件可驻留于进程和/或执行线程,以及组件可本地化于一个计算机和/或分布在两个或多个计算机之间。进一步,组件通过多种类型的通信媒体可通信地相互耦合,以协同操作。该协同可包括单向或双向信息交换。例如,组件可以通过通信媒体传输的信号的形式传送信息。信息可实现为分配至多种信号线的信号。在该分配中,每个消息为信号。然而,进一步的实施例可选地使用数据消息。该数据消息可通过多种连接发送。示例性连接包括并行接口、串行接口,以及总线接口。
在一个实施例,计算体系结构1100可包含或实现为电子设备的一部分。电子设备的示例可包括而非限制于,移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息传递设备、计算机、个人计算机(PC)、桌面计算机、膝上型计算机、笔记本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器群组、web服务器、网络服务器、互联网服务器、工作站、微型计算机、大型计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子器件、可编程消费电子器件、电视、数字电视、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器,网关、桥、交换机、机器或其组合。该实施例不限于该环境。
计算体系结构1100包括多种通用计算元件,诸如一个或多个处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件等。然而,实施例不限于由计算体系结构1100实现。
如图11所示,计算体系结构1100包含处理单元1104、系统存储器1106和系统总线1108。处理单元1104可为多种商业可用处理器中的任一个。双微处理器和其他多处理器体系结构还可作为处理单元1104使用。系统总线1108提供用于系统组件的接口,包括,但不限于,系统存储器1106到处理单元1104的接口。系统总线1108可为若干类型的总线结构中的任一种,其可进一步利用多种商业可用总线体系结构中的任一个来互联至存储器总线(具有或不具有存储器控制器)、外围总线,以及本地总线。
计算体系结构1100可包含或实现多种制造产品。制造产品可包含计算机可读存储介质以存储逻辑。实施例还可至少部分地实现为包含于非暂存计算机可读介质中或包含在非暂存计算机可读介质上的指令,其可由一个或多个处理器读取并执行,以实现本文描述的操作的执行。计算机可读存储介质的示例可包括能够存储电子数据的任何有形的媒体,包括易失性存储器或非易失性存储器,可移除或非可移除存储器,可擦除或非可擦除存储器,可写或可重写存储器等。逻辑的示例可包括可执行计算机程序指令,利用任何合适的代码类型实现,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等。
系统存储器1106可包括多种类型的计算机可读存储媒体,以一个或多个更高速的存储器单元的形式,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、聚合物存储器诸如铁电聚合物存储器、双向半导体存储器(ovonic memory)、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡或适用于存储信息的其他任何类型的媒体。在所说明的图11所示的实施例,系统存储器1106可包括非易失性存储器1110和/或易失性存储器1112。基本输入/输出系统(BIOS)可存储于非易失性存储器1110。
电子设备1102可包括多种类型的计算机可读存储媒体,以一个或多个更低速存储器单元的形式,包括一个或多个硬盘驱动器(HDD)1114(或者内部HDD或者外部HDD)、磁性软盘驱动器(FDD)1116以读写可移除磁盘1118,以及光盘驱动器1120以读写可移除光盘1122(例如,CD-ROM或DVD)。HDD 1114、FDD 1116和光盘驱动器1120可分别通过HDD接口1124、FDD接口1126和光驱动器接口1128连接于系统总线1108。用于外部驱动器实现的HDD接口1124可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或二者。
驱动器和相关计算机可读媒体提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可存储于驱动器和存储器单元1110、1112中,包括操作系统1130、一个或多个应用程序1132、其他程序模块1134和程序数据1136。
一个或多个应用程序1132、其他程序模块1134,以及程序数据1136可包括例如,搜索组件和显示组件。
用户可将命令和信息通过一个或多个有线/无线输入设备、例如键盘1138和指点设备(诸如鼠标1140)输入至电子设备1102。其他输入设备可包括麦克风、红外(IR)远程控制、游戏杆、游戏板、触控笔、触摸屏幕或类似物。上述和其他输入设备通常通过耦合于系统总线1108的输入设备接口1142连接于处理单元1104,但可通过其他接口诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等来连接。
监视器1144或其他类型的显示设备也经由接口诸如视频适配器1146连接于系统总线1108。除监视器1144之外,计算机典型地包括其他外围输出设备,诸如扬声器、打印机等。
电子设备1102可利用逻辑连接经由至一个或多个远程计算机,诸如远程计算机1148的有线和/或无线通信而操作于网络环境。远程计算机1148可为工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他公共网络节点,并且典型地包括相对于电子设备1102描述的多个或所有元件,然而为简单起见,仅说明了存储器/存储设备1150。描述的逻辑连接包括至局域网(LAN)1152和/或更大网络例如广域网(WAN)1154的有线/无线连接。该LAN和WAN网络环境常用于办公室和公司,并实现企业范围的计算机网络,诸如内联网,其全部可连接至全局通信网络,例如,互联网。
当在LAN网络环境中使用时,电子设备1102通过有线和/或无线通信网络接口或适配器1156连接于LAN 1152。适配器1156可实现与LAN 1152的有线和/或无线通信,其还可包括设置于其上的无线接入点,用于与适配器1156的无线功能通信。
当用于WAN网络环境时,电子设备1102可包括调制解调器1158或连接于WAN 1154的通信服务器或具有其他方式,用于通过WAN 1154建立通信,诸如以互联网的形式。调制解调器1158,其可为内部或外部和有线和/或无线设备,经由输入设备接口1142连接至系统总线1108。在网络环境中,相对于电子设备1102描述的程序模块或其部分,可存储于远程存储器/存储设备1150。应当理解,示出的网络连接是示例性的,而在计算机之间建立通信链路的其他方式也可使用。
电子设备1102可操作以利用IEEE 802标准家族与有线和无线设备或实体相通信,诸如在操作上设置成与例如打印机、扫描仪、桌面和/或便携式计算机、个人数字助理(PDA)、通信卫星、任何一种关联于无线可检测标签的装置或位置(例如,售货亭、报刊亭、卫生间)无线通信(例如,IEEE 802.11空中调制技术)的无线设备,以及电话。这包括至少Wi-Fi(或无线高保真)、WiMax和蓝牙TM无线技术。因此,通信可为利用传统网络的预定义结构或仅为至少两个设备的之间自组织通信。Wi-Fi网络使用无线电技术,称为IEEE 802.11x(a、b、g、n等),以提供安全、可靠、快速的无线连接。Wi-Fi网络可用于相互连接计算机、连接至互联网,以及连接至有线网络(其使用IEEE 802.3相关的媒体和功能)。
某些实施例可利用表达“一个实施例”或“一实施例”及其派生词来描述。该术语表示结合该实施例描述的特定特征、结构或特性包括于至少一个实施例。词语“在一个实施例中”在说明书多处的出现并非一定全部参考同一实施例。进一步,某些实施例可利用表达“耦合”和“连接”及其派生词描述。该术语不一定意图作为相互的同义词。例如,某些实施例可利用术语“连接”和/或“耦合”描述,以指示两个或多个元件相互直接物理或电性接触。然而,术语“耦合”还可表示两个或多个元件不直接相互接触,但仍然协同或相互交互。
在一个实施例,计算机实现的方法可包括识别指示客户操作系统(OS)的实时模式操作的信号并在客户OS正在运行时直接将用于第一处理器的中断路由至客户OS,而不引起从客户OS执行到由主机系统执行的转移。
在另一实施例,计算机实现的方法可进一步包括,响应于信号,清除虚拟机控制结构(VMCS)中指示外部中断要生成其中发生从由客户OS执行到由主机系统执行的转移的VM退出的位。
可选地或附加地,在另一实施例,计算机实现的方法可包括在客户OS实时操作期间将客户OS固定于第一处理器。
可选地或附加地,在进一步的实施例,计算机实现的方法可包括当客户OS执行HLT指令时禁止客户OS执行VM退出操作。
可选地或附加地,在又另一实施例,计算机实现的方法可包括指示自举处理器将由硬驱动机生成的作为处理器间中断(IPI)的中断转发至客户OS。
可选地或附加地,在进一步的实施例,计算机实现的方法可包括设置直接转译结构,用于要转发至客户OS的中断。
可选地或附加地,在另一实施例,计算机实现方法可包括将中断转译为客户操作系统的中断格式。
可选地或附加地,在进一步的实施例,计算机实现的方法可包括编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC),以当中断结束(EOI)被生成时防止VM退出。
可选地或附加地,在另一实施例,计算机实现的方法可包括转发EOI至虚拟化APIC页用于处理。
在另一实施例,可选地或附加地,装置可配置以执行任一先前实施例的方法。
在进一步的实施例,可选地或附加地,至少一个机器可读介质可包括复数个指令,其响应于在计算设备执行,而使计算设备实现根据任一先前实施例的方法。
在进一步的实施例,装置可包括处理器电路和可操作于处理器电路的实时中断模块,以识别接收自运行于第一处理器的客户操作系统的信号(OS),该信号指示客户OS的实时模式操作,并且将用于第一处理器的中断直接路由至客户OS,而不产生从非根操作模式到根操作模式的转移。
在另一实施例,该实时中断模块可操作于处理器电路,以清除虚拟机控制结构(VMCS)中指示外部中断要响应于该信号而生成VM退出的位。
可选地或附加地,在另一实施例,该实时中断模块可操作于处理器电路,以在客户OS实时操作期间将客户OS固定在第一处理器。
可选地或附加地,在进一步的实施例,该实时中断模块可操作于处理器电路,以当客户OS执行HLT指令时禁止客户OS执行VM退出操作。
可选地或附加地,在进一步的实施例,实时中断模块可操作于处理器电路,以在客户OS的实时操作期间将中断转译为客户OS的中断格式。
可选地或附加地,在另一实施例,该实时中断模块可操作于处理器电路,以编程耦合于第一处理器的虚拟高级可编程中断控制器(APIC),以当中断结束(EOI)被生成时防止VM退出,并将EOI转发至虚拟化APIC页用于处理。
可选地或附加地,在另一实施例,该实时中断模块可操作于处理器电路,以指示自举处理器输出作为处理器间中断的外部中断,用于转发至客户OS。
可选地或附加地,在另一实施例,任一先前实施例的装置可包括数字显示器,以呈现客户OS的输出。
需要强调,本公开的摘要被提供以使读者快速掌握所公开技术的特性。应当理解,摘要并非用于解释或限制权利要求的范围或含义。此外,在前的详细描述中,可见多种特征在单个实施例中相互组合,用于简化公开。本公开的方法不应被解释为反映所声明的实施例需要比每个权利要求的明确陈述更多的特征的意图。相反,如以下权利要求所反映的,创造性主题在于少于单个公开实施例的所有特征。因此如下权利要求在此整合于详细描述,而每个权利要求独立作为单个实施例。在所附权利要求中,术语“包括”和“在…中”分别作为相应术语“包含”和“其中”的简明语言的等同。此外,术语“第一”、“第二”、“第三”等,仅仅用于标示,而并非意图将数字需求施加于其对象。
以上的描述包括公开的体系结构的示例。当然不可能描述组件和/或方法的每个可以想到的组合,但本领域普通技术人员可以理解,多个进一步组合和排列是可能的。因此,新的体系结构意图包括所有这种改变、修改和变型,其属于所附权利要求的精神和范围。
多种实施例可利用硬件元件、软件元件或两者的组合实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、规程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否利用硬件元件和/或软件元件实现可根据任何数量的因素变化,诸如所需计算速率、功率级、热容差、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
某些实施例可利用表达“耦合”和“连接”及其派生词描述。该术语并非意图作为相互的同义词。例如,某些实施例可利用术语“连接”和/或“耦合”描述,以表示两个或多个元件相互直接物理或电性接触。然而,术语“耦合”还可表示两个或多个元件不直接相互接触,但仍然协同或相互交互。
某些实施例的实现可利用例如计算机可读介质或制品,其可存储指令或指令集,其如果由计算机执行则可使计算机执行根据该实施例的方法和/或操作。该计算机可包括,例如,任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并可利用任何合适的硬件和/或软件的组合实现。计算机可读介质或制品可包括,例如,任何合适的类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,例如,存储器、可移除或非可移除媒体、可擦除或非可擦除媒体、可写或可重写媒体、数字或模拟媒体、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁媒体、磁光媒体、可移除存储器卡或盘、多种类型的数字多样性盘(DVD)、磁带、磁带盒等。指令可包括任何合适的类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等,利用任何合适的高级、低级、面向对象的、可视的、编译和/或解释的编程语言实现。
除非特别地另行声明,应当理解,术语诸如“处理”、“计算”、“运算”、“确定”等,指代计算机或计算系统或类似电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如,电子)的数据操作和/或变换为计算系统的存储器、寄存器或其他这样的信息存储、传输或显示设备中类似表示为物理量的其他数据。该实施例不限于该环境。
尽管该主题已用针对结构特征和/或方法的动作的特定语言描述,应当理解,所附权利要求中定义的主题并非一定限于上述特定特征或动作。相反,上述特定特征和动作公开为实现权利要求的示例形式。
Claims (29)
1.一种用于管理中断的系统,包括:
处理器;以及
非暂时性计算机可读介质,用于存储由所述处理器执行的指令集,所述指令集用于促使所述处理器:
接收用于虚拟机(VM)的中断;
确定所述VM是在第一操作模式还是在第二操作模式;
当所述VM在第一操作模式时,直接路由所述中断至所述VM的处理器核而不调用管理程序;以及
当所述VM在第二操作模式时,路由所述中断至所述VM的所述管理程序。
2.如权利要求1所述的系统,所述指令集包括:用于促使所述处理器接收用于所述VM的客户操作系统(OS)的所述中断的指令。
3.如权利要求1所述的系统,所述指令集包括:用于促使所述处理器基于存储在寄存器中的位值来确定所述中断是否导致VM退出事件的指令,所述VM退出事件用于转移指令由所述VM的执行到由所述处理器核或所述管理程序的执行。
4.如权利要求1所述的系统,所述指令集包括:用于促使所述处理器转发所述中断至所述处理器核作为处理器间中断(IPI)以模仿所述中断以及促使所述IPI到所述VM的直接传递而不调用所述管理程序的指令。
5.如权利要求3所述的系统,所述指令集包括:用于促使所述处理器基于存储在虚拟机控制结构(VMCS)的所述寄存器中的所述位值来确定所述中断是否导致所述VM退出的指令。
6.如权利要求3所述的系统,其中,所述位值是外部中断退出(EIE)值。
7.如权利要求3所述的系统,其中,所述位值是外部中断退出值、虚拟化APIC访问值、使用任务优先权寄存器值阴影值、EOI位图值、APIC寄存器虚拟化值或者暂停退出值。
8.如权利要求3所述的系统,所述指令集包括:用于促使所述处理器清除虚拟机控制结构(VMCS)中的所述位值的指令,所述位值指示外部中断将产生VM退出事件,在该事件中发生从由所述VM的执行到由所述处理器核的执行的转移。
9.如权利要求1所述的系统,所述指令集包括:用于促使所述处理器执行下列步骤的指令:
接收所述中断的中断结束(EOI),所述EOI用于指示由所述VM对所述中断的中断处理的完成;以及
响应于所接收的EOI,基于存储在寄存器中的位值来确定VM退出事件是否将发生,所述VM退出事件用于转移指令由所述VM的执行到由所述处理器核或所述管理程序的执行。
10.一种用于管理中断的方法,包括:
接收用于虚拟机(VM)的中断;
确定所述VM是在第一操作模式还是在第二操作模式;
当所述VM在第一操作模式时,直接路由所述中断至所述VM的处理器核而不调用管理程序;以及
当所述VM在第二操作模式时,路由所述中断至所述VM的所述管理程序。
11.如权利要求10所述的方法,包括:接收用于所述VM的客户操作系统(OS)的所述中断。
12.如权利要求10所述的方法,包括:基于存储在寄存器中的位值来确定所述中断是否导致VM退出事件,所述VM退出事件用于转移指令由所述VM的执行到由所述处理器核或所述管理程序的执行。
13.如权利要求10所述的方法,包括:转发所述中断至所述处理器核作为处理器间中断(IPI)以模仿所述中断,以及促使所述IPI到所述VM的直接传递而不调用所述管理程序。
14.如权利要求12所述的方法,包括:基于存储在虚拟机控制结构(VMCS)的所述寄存器中的所述位值来确定所述中断是否导致所述VM退出。
15.如权利要求12所述的方法,其中,所述位值是外部中断退出(EIE)值。
16.如权利要求12所述的方法,其中,所述位值是外部中断退出值、虚拟化APIC访问值、使用任务优先权寄存器值阴影值、EOI位图值、APIC寄存器虚拟化值或者暂停退出值。
17.如权利要求12所述的方法,包括:清除虚拟机控制结构(VMCS)中的所述位值,所述位值指示外部中断将产生VM退出事件,在该事件中发生从由所述VM的执行到由所述处理器核的执行的转移。
18.如权利要求10所述的方法,包括:
接收所述中断的中断结束(EOI),所述EOI用于指示由所述VM对所述中断的中断处理的完成;以及
响应于所接收的EOI,基于存储在寄存器中的位值来确定VM退出事件是否将发生,所述VM退出事件用于转移指令由所述VM的执行到由所述处理器核或所述管理程序的执行。
19.一种用于管理中断的装置,包括:
用于接收用于虚拟机(VM)的中断的部件;
用于确定所述VM是在第一操作模式还是在第二操作模式的部件;
用于当所述VM在第一操作模式时直接路由所述中断至所述VM的处理器核而不调用管理程序的部件;以及
用于当所述VM在第二操作模式时路由所述中断至所述VM的所述管理程序的部件。
20.如权利要求19所述的装置,包括:用于接收用于所述VM的客户操作系统(OS)的所述中断的部件。
21.如权利要求19所述的装置,包括:用于基于存储在寄存器中的位值来确定所述中断是否导致VM退出事件的部件,所述VM退出事件用于转移指令由所述VM的执行到由所述处理器核或所述管理程序的执行。
22.如权利要求19所述的装置,包括:用于转发所述中断至所述处理器核作为处理器间中断(IPI)以模仿所述中断以及促使所述IPI到所述VM的直接传递而不调用所述管理程序的部件。
23.如权利要求21所述的装置,包括:用于基于存储在虚拟机控制结构(VMCS)的所述寄存器中的所述位值来确定所述中断是否导致所述VM退出的部件。
24.如权利要求21所述的装置,其中,所述位值是外部中断退出(EIE)值。
25.如权利要求21所述的装置,其中,所述位值是外部中断退出值、虚拟化APIC访问值、使用任务优先权寄存器值阴影值、EOI位图值、APIC寄存器虚拟化值或者暂停退出值。
26.如权利要求21所述的装置,包括:用于清除虚拟机控制结构(VMCS)中的所述位值的部件,所述位值指示外部中断将产生VM退出事件,在该事件中发生从由所述VM的执行到由所述处理器核的执行的转移。
27.如权利要求19所述的装置,包括:
用于接收所述中断的中断结束(EOI)的部件,所述EOI用于指示由所述VM对所述中断的中断处理的完成;以及
用于响应于所接收的EOI、基于存储在寄存器中的位值来确定VM退出事件是否将发生的部件,所述VM退出事件用于转移指令由所述VM的执行到由所述处理器核或所述管理程序的执行。
28.一种用于管理中断的装置,包括:用于执行根据权利要求10-18中任一项的方法的部件。
29.一种存储指令的非暂时性计算机可读介质,所述指令当在计算设备上执行时,促使所述计算设备实施根据权利要求10-18中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710472572.3A CN107273199B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710472572.3A CN107273199B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
CN201280071792.0A CN104321749B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
PCT/US2012/031310 WO2013147817A1 (en) | 2012-03-29 | 2012-03-29 | Architecture and method for managing interrupts in a virtualized environment |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280071792.0A Division CN104321749B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273199A CN107273199A (zh) | 2017-10-20 |
CN107273199B true CN107273199B (zh) | 2021-01-15 |
Family
ID=49260877
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710472572.3A Active CN107273199B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
CN201280071792.0A Active CN104321749B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280071792.0A Active CN104321749B (zh) | 2012-03-29 | 2012-03-29 | 用于管理虚拟化环境中的中断的体系结构和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9594703B2 (zh) |
EP (4) | EP3244307A1 (zh) |
CN (2) | CN107273199B (zh) |
WO (1) | WO2013147817A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9323628B2 (en) * | 2012-10-09 | 2016-04-26 | Dh2I Company | Instance level server application monitoring, load balancing, and resource allocation |
US10331589B2 (en) * | 2013-02-13 | 2019-06-25 | Red Hat Israel, Ltd. | Storing interrupt location for fast interrupt register access in hypervisors |
US9355050B2 (en) | 2013-11-05 | 2016-05-31 | Qualcomm Incorporated | Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip |
US9936059B2 (en) * | 2014-05-29 | 2018-04-03 | Fortinet, Inc. | Management of wireless access points via virtualization |
US11249777B2 (en) * | 2014-07-10 | 2022-02-15 | Red Hat Israel, Ltd. | Virtual machine context management |
US9772868B2 (en) * | 2014-09-16 | 2017-09-26 | Industrial Technology Research Institute | Method and system for handling interrupts in a virtualized environment |
KR20160039846A (ko) * | 2014-10-02 | 2016-04-12 | 한국전자통신연구원 | 인터럽트 처리 시스템 및 인터럽트 처리 방법 |
US9697029B2 (en) | 2014-10-30 | 2017-07-04 | Red Hat Israel, Ltd. | Guest idle based VM request completion processing |
US9804830B2 (en) | 2014-12-19 | 2017-10-31 | Signalfx, Inc. | Anomaly detection using a data stream processing language for analyzing instrumented software |
US10394692B2 (en) * | 2015-01-29 | 2019-08-27 | Signalfx, Inc. | Real-time processing of data streams received from instrumented software |
US9483301B2 (en) * | 2015-02-26 | 2016-11-01 | Red Hat Israel, Ltd. | Dynamic virtual machine function enabling |
US10002016B2 (en) | 2015-07-23 | 2018-06-19 | Red Hat, Inc. | Configuration of virtual machines in view of response time constraints |
US10713195B2 (en) * | 2016-01-15 | 2020-07-14 | Intel Corporation | Interrupts between virtual machines |
CN105718320B (zh) * | 2016-01-18 | 2020-11-06 | 华为技术有限公司 | 一种时钟任务处理方法、装置及设备 |
US10963280B2 (en) * | 2016-02-03 | 2021-03-30 | Advanced Micro Devices, Inc. | Hypervisor post-write notification of control and debug register updates |
US10127068B2 (en) | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
US10310887B2 (en) | 2017-02-22 | 2019-06-04 | Red Hat, Inc. | CPU overcommit with guest idle polling |
US10437308B2 (en) * | 2017-06-05 | 2019-10-08 | Red Hat, Inc. | Predictive virtual machine halt |
CN109284178A (zh) * | 2017-07-21 | 2019-01-29 | 中兴通讯股份有限公司 | 一种基于kvm虚拟化的中断透传方法及装置 |
CN108073451B (zh) * | 2017-12-20 | 2020-09-22 | 北京东土科技股份有限公司 | 一种多核cpu上异构操作系统间中断处理方法及装置 |
WO2019127080A1 (en) * | 2017-12-27 | 2019-07-04 | Intel Corporation | Systems and methods of efficiently interrupting virtual machines |
CN110609730B (zh) * | 2018-06-14 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种实现虚拟处理器间中断透传的方法及设备 |
JP7041041B2 (ja) * | 2018-10-11 | 2022-03-23 | ファナック株式会社 | 数値制御装置 |
US11237859B2 (en) * | 2018-11-28 | 2022-02-01 | Red Hat Israel, Ltd. | Securing virtual machines in computer systems |
GB2581821B (en) * | 2019-02-28 | 2021-06-30 | Advanced Risc Mach Ltd | Conditional yield to hypervisor instruction |
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 |
US11182184B2 (en) * | 2019-10-23 | 2021-11-23 | Red Hat, Inc. | Implementing high-performance virtual machines for bare metal simulation |
US11513983B2 (en) | 2020-05-15 | 2022-11-29 | International Business Machines Corporation | Interrupt migration |
CN111745651B (zh) * | 2020-06-15 | 2022-04-05 | 哈工大机器人(合肥)国际创新研究院 | 一种智能机器人操作系统结构及其运作方法 |
CN112783601A (zh) * | 2020-12-30 | 2021-05-11 | 科东(广州)软件科技有限公司 | 一种异构系统的中断处理方法、装置、设备及存储介质 |
CN113360422B (zh) * | 2021-07-13 | 2022-02-18 | 科东(广州)软件科技有限公司 | 一种异构系统中实时操作系统设备收发数据的方法及装置 |
US20230100059A1 (en) * | 2021-09-21 | 2023-03-30 | Intel Corporation | Interrupt handling by migrating interrupts between processing cores |
US20230251883A1 (en) * | 2022-02-04 | 2023-08-10 | Red Hat, Inc. | Coordinating timer access for virtual machines using peripheral component interface cards |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467007B1 (en) * | 1999-05-19 | 2002-10-15 | International Business Machines Corporation | Processor reset generated via memory access interrupt |
CN101553792A (zh) * | 2006-12-06 | 2009-10-07 | 微软公司 | 虚拟化环境中的经优化的中断传递 |
CN101620547A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | X86计算机虚拟化的物理中断处理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356817B1 (en) * | 2000-03-31 | 2008-04-08 | Intel Corporation | Real-time scheduling of virtual machines |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
JP3920818B2 (ja) * | 2003-07-22 | 2007-05-30 | 株式会社東芝 | スケジューリング方法および情報処理システム |
JP2006146758A (ja) * | 2004-11-24 | 2006-06-08 | Matsushita Electric Ind Co Ltd | コンピュータシステム |
US7904903B2 (en) * | 2005-06-30 | 2011-03-08 | Intel Corporation | Selective register save and restore upon context switch using trap |
US8286162B2 (en) * | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
US8819699B2 (en) * | 2006-12-29 | 2014-08-26 | Intel Corporation | Controlling virtual machines based on performance counters |
JP5352848B2 (ja) * | 2008-11-28 | 2013-11-27 | 株式会社日立製作所 | 仮想計算機の制御方法及び計算機装置 |
US9086913B2 (en) * | 2008-12-31 | 2015-07-21 | Intel Corporation | Processor extensions for execution of secure embedded containers |
KR101640769B1 (ko) * | 2009-11-06 | 2016-07-19 | 삼성전자주식회사 | 가상화 시스템 및 그것의 명령어 실행 방법 |
US8566492B2 (en) * | 2009-12-31 | 2013-10-22 | Intel Corporation | Posting interrupts to virtual processors |
EP2798589A4 (en) * | 2011-12-29 | 2015-06-10 | Intel Corp | MANAGEMENT OF COLLABORATIVE TEAMS |
US8892802B2 (en) * | 2012-01-01 | 2014-11-18 | International Business Machines Corporation | Enhancing interrupt handling in a virtual environment |
US11249777B2 (en) * | 2014-07-10 | 2022-02-15 | Red Hat Israel, Ltd. | Virtual machine context management |
-
2012
- 2012-03-29 CN CN201710472572.3A patent/CN107273199B/zh active Active
- 2012-03-29 CN CN201280071792.0A patent/CN104321749B/zh active Active
- 2012-03-29 EP EP17177557.0A patent/EP3244307A1/en not_active Withdrawn
- 2012-03-29 EP EP21201748.7A patent/EP3958121A1/en active Pending
- 2012-03-29 EP EP18169063.7A patent/EP3376380B1/en active Active
- 2012-03-29 EP EP12872994.4A patent/EP2831728B1/en active Active
- 2012-03-29 US US13/976,999 patent/US9594703B2/en active Active
- 2012-03-29 WO PCT/US2012/031310 patent/WO2013147817A1/en active Application Filing
-
2016
- 2016-12-27 US US15/391,182 patent/US10169269B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467007B1 (en) * | 1999-05-19 | 2002-10-15 | International Business Machines Corporation | Processor reset generated via memory access interrupt |
CN101553792A (zh) * | 2006-12-06 | 2009-10-07 | 微软公司 | 虚拟化环境中的经优化的中断传递 |
CN101620547A (zh) * | 2009-07-03 | 2010-01-06 | 中国人民解放军国防科学技术大学 | X86计算机虚拟化的物理中断处理方法 |
Non-Patent Citations (1)
Title |
---|
A novel multi-OS architecture for robot application;Q. Yu, H. Wei, M. Liu and T. Wang;《Proceedings of the 2011 IEEE International Conference on Robotics and Biomimetics》;20111211;第2301-2306页 * |
Also Published As
Publication number | Publication date |
---|---|
US10169269B2 (en) | 2019-01-01 |
EP2831728A1 (en) | 2015-02-04 |
CN104321749B (zh) | 2019-01-29 |
US20140082240A1 (en) | 2014-03-20 |
EP3244307A1 (en) | 2017-11-15 |
CN104321749A (zh) | 2015-01-28 |
EP3376380B1 (en) | 2021-10-27 |
EP2831728A4 (en) | 2015-12-09 |
CN107273199A (zh) | 2017-10-20 |
EP3376380A3 (en) | 2018-10-03 |
WO2013147817A1 (en) | 2013-10-03 |
EP3958121A1 (en) | 2022-02-23 |
US9594703B2 (en) | 2017-03-14 |
EP3376380A2 (en) | 2018-09-19 |
US20170109197A1 (en) | 2017-04-20 |
EP2831728B1 (en) | 2018-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273199B (zh) | 用于管理虚拟化环境中的中断的体系结构和方法 | |
US9619308B2 (en) | Executing a kernel device driver as a user space process | |
US8032680B2 (en) | Lazy handling of end of interrupt messages in a virtualized environment | |
US9442868B2 (en) | Delivering interrupts directly to a virtual processor | |
US7707341B1 (en) | Virtualizing an interrupt controller | |
US7209994B1 (en) | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests | |
KR100984203B1 (ko) | 가상 머신 모니터의 구성요소의 특권을 해제하는 시스템 및방법 | |
US8544010B2 (en) | Providing notification to speculatively waking up target virtual machine for an I/O event using multiple virtual machines and processors | |
US9720712B2 (en) | Physical/virtual device failover with a shared backend | |
US20160085568A1 (en) | Hybrid virtualization method for interrupt controller in nested virtualization environment | |
US9946870B2 (en) | Apparatus and method thereof for efficient execution of a guest in a virtualized enviroment | |
US8132167B2 (en) | Context based virtualization | |
US10409633B2 (en) | Hypervisor-visible guest thread management | |
US9201823B2 (en) | Pessimistic interrupt affinity for devices | |
US9003094B2 (en) | Optimistic interrupt affinity for devices | |
US20220156103A1 (en) | Securing virtual machines in computer systems | |
WO2023071508A1 (zh) | 线程间中断信号发送 | |
US10387178B2 (en) | Idle based latency reduction for coalesced interrupts | |
Hamayun et al. | Towards hard real-time control and infotainment applications in automotive platforms | |
Banga | Virtual Interrupt Handling to Reduce CPU Overhead in I/O Virtualization |
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 |