CN101364184B - 用于进行平台虚拟化的装置和方法 - Google Patents

用于进行平台虚拟化的装置和方法 Download PDF

Info

Publication number
CN101364184B
CN101364184B CN2008101003868A CN200810100386A CN101364184B CN 101364184 B CN101364184 B CN 101364184B CN 2008101003868 A CN2008101003868 A CN 2008101003868A CN 200810100386 A CN200810100386 A CN 200810100386A CN 101364184 B CN101364184 B CN 101364184B
Authority
CN
China
Prior art keywords
client
spinning cycle
carrying
processor
time period
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.)
Expired - Fee Related
Application number
CN2008101003868A
Other languages
English (en)
Other versions
CN101364184A (zh
Inventor
G·奈格尔
R·L·坎贝尔
J·B·克罗斯兰德
L·K·普蒂耶达思
S·A·费希尔
S·M·贝内特
A·V·安德森
G·格尔宗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201310103445.8A priority Critical patent/CN103207803B/zh
Publication of CN101364184A publication Critical patent/CN101364184A/zh
Application granted granted Critical
Publication of CN101364184B publication Critical patent/CN101364184B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

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)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明的名称是“用于进行平台虚拟化的装置和方法”。公开了在虚拟机环境中检测自旋循环的装置、方法和系统的实施例。在一个实施例中,装置包括检测逻辑和虚拟化逻辑。检测逻辑用于检测客户是否正在执行自旋循环。虚拟化逻辑用于响应检测逻辑检测到客户正在执行自旋循环,而将对装置的控制从客户转移到主机。

Description

用于进行平台虚拟化的装置和方法
技术领域
本发明涉及信息处理领域,特别是涉及平台虚拟化领域。
背景技术
通常,信息处理系统中的虚拟化的概念允许一个或多个操作系统的多个实例(一“OS”的每一个)在单个信息处理系统上运行,尽管每一个OS都被设计成拥有对该系统及其资源的完全的、直接的控制。通常,通过使用软件(例如,虚拟机监视器,或者“VMM”)来实现虚拟化,以便将“虚拟机”(“VM”)提供给每个OS,所述“虚拟机”具有虚拟资源,包括可以由OS完全且直接地控制的一个或多个虚拟处理器,同时VMM维持用于实现虚拟化策略(如在VM(“虚拟化环境”或“虚拟机环境”)之间共享和/或分配物理资源)的系统环境。运行在VM上的每一个OS和任何其它软件,被称为“客户”(“guest”)或者“客户软件”(“guest software”),而“主机”(“host”)或“主机软件”(“hostsoftware”)是例如运行在虚拟化环境之外的VMM这样的软件。
信息处理系统中的物理处理器可以支持虚拟化,例如,通过支持指令进入虚拟化环境以在VM中的虚拟处理器(即,在VMM施加的约束下的物理处理器)上运行客户。在虚拟化环境中,某些事件、操作和情况,例如外部中断或访问特许的寄存器或资源的尝试,可能被截取(intercept),就是说,导致处理器退出虚拟化环境,使得VMM可以操作,以便例如实现虚拟化策略。物理处理器还可支持其它的指令以维持虚拟化环境,并且可以包括指示或控制物理处理器的虚拟化能力的存储器或寄存器位。
物理处理器还可以支持“暂停(pause)”指令以将延迟插入指令流中。暂停指令可以用在自旋循环(spin loop)中,来减慢循环的执行以节省功率和/或阻止处理器在每次执行循环时用相同的变量填充不同的负载缓冲器。处理器可以被设计成由虚拟机来检测暂停指令的执行,并且使处理器退出所述虚拟机并进入不同的虚拟机(假设运行在第一个虚拟机中的客户处在自旋循环中,在该自旋循环期间,在第二个虚拟机中运行的客户能够更加有效的使用处理器资源)。
发明内容
根据本发明的第一方面,提供了一种用于进行平台虚拟化的装置,包括:
检测模块,用于检测客户是否正在执行自旋循环;以及
虚拟化模块,用于响应检测模块检测到所述客户正在执行所述自旋循环而将对所述装置的控制从所述客户转移到主机,
其中,所述自旋循环的检测通过以下方式之一来执行:
所述检测模块基于两个暂停指令的执行之间的时间段与所述时间段的一阈值的比较,来检测所述客户是否正在执行所述自旋循环;
所述检测模块基于两个暂停指令的指令指针的比较,来检测客户是否正在执行自旋循环;
所述检测模块基于控制流改变来检测客户是否正在执行自旋循环;
所述检测模块基于在某个时间段内的暂停指令的记数,来检测客户是否正在执行自旋循环。
根据本发明的第二方面,提供了一种方法,包括以下步骤:
检测客户是否正在处理器上执行的自旋循环;以及
响应确定所述客户正在执行所述自旋循环,而将对所述处理器的控制从客户转移到主机,
其中,检测所述客户是否正在执行所述自旋循环的步骤包括以下步骤之一:
比较两个暂停指令的执行之间的时间段与所述时间段的一阈值;
比较两个暂停指令的指令指针;
检测控制流改变;
计算某个时间段内的暂停指令的数量。
根据本发明的第三方面,提供了一种用于进行平台虚拟化的装置,包括:
检测客户是否正在处理器上执行自旋循环的部件;以及
响应确定所述客户正在执行所述自旋循环,而将对所述处理器的控制从客户转移到主机的部件,
其中,检测所述客户是否正在执行所述自旋循环的部件包括以下部件之一:
比较两个暂停指令的执行之间的时间段与所述时间段的一阈值的部件;
比较两个暂停指令的指令指针的部件;
检测控制流改变的部件;
计算某个时间段内的暂停指令的数量的部件。
附图说明
在附图中,作为示例而非限制来图解说明本发明。
图1图解说明了在虚拟化平台中的本发明的一实施例。
图2图解说明了用于在虚拟机环境中检测自旋循环的方法中的本发明的一实施例。
具体实施方式
如下所述,本发明可被包含在用于在虚拟机环境中检测自旋循环的装置、方法或系统中。在该描述中,可能阐述了大量具体细节,例如部件和系统配置,以便提供对本发明的比较充分的理解。但是,本领域的技术人员会理解到,本发明可以不在没有这样的具体细节的条件下实施。此外,没有详细说明一些公知的结构、电路等,以免不必要地影响对本发明的理解。
本发明的实施例提供对自旋循环的检测,该检测将被用于改进支持虚拟化的信息处理系统的性能。VMM可在第一虚拟机中的客户空闲时,例如在自旋循环期间,通过从第一虚拟机转换出来并进入第二虚拟机来对处理器进行分时(time-share)。如背景技术中所描述的,基于客户处在自旋循环中的假设,当客户执行暂停指令时进行VM转换。但是,暂停指令还可以在自旋循环之外使用,例如插入延迟以等待输入/输出(“I/O”)操作的完成。当暂停指令在自旋循环之外被客户使用时,通过允许那个客户继续使用处理器而不是花费时间来保存那个客户的状态并装载另一个客户的状态并且进行VM转换,可提高性能。因此,本发明的实施例提供了一种检测自旋循环的新方法。
本发明实施例的要素可以在硬件、软件、固件中或者以硬件、软件或固件的任意结合的形式来实现。术语“硬件”通常指具有诸如电子的、电磁的、光学的、光电的、机械的、机电部分等物理结构的元件。术语“软件”通常指逻辑结构、方法、过程、程序、例程、进程、算法、公式、表达式等。术语固件通常指逻辑结构、方法、过程、程序、例程、进程、算法、公式或者在硬件结构(例如,闪存或只读存储器)中被实现或具体化的表达式。固件的示例是微码、可写控制存储器以及微编程结构(micro-programmed structure)。
图1图解说明了在信息处理系统100中的本发明的一实施例。在图1中,裸平台硬件(bare platform hardware)110可以是能够执行任何OS、VMM或其它这样的软件的任何数据处理装置。例如,裸平台硬件可以是个人计算机、大型机、便携式电脑、手持设备、机顶盒、服务器或者任何其它计算系统的数据处理装置。裸平台硬件110包括处理器120和存储器130。
处理器120可以是任何类型的处理器,包括通用目的微处理器,例如
Figure GSB00000952600200041
处理器系列、处理器系列或者其它来自
Figure GSB00000952600200043
公司的处理器系列中的处理器,或来自另一公司的另一种处理器,或者数字信号处理器或者微控制器。虽然图1只示出了一个这样的处理器120,但是裸平台硬件110可以包括任意数量的处理器,所述处理器包括任意数量的多核处理器,各具有任意数量的执行核心,以及任意数量的多线程处理器,各具有任意数量的线程。
存储器130可以是静态或动态随机存取存储器、基于半导体的只读或闪速存储器、磁盘或光盘存储器以及任何其它类型的处理器120可读介质或这些介质的任意结合。处理器120和内存130可以通过任何已知的途径例如直接或间接地通过一条或多条总线、点对点或其它有线或无线连接来相互耦合或互相通信。裸平台硬件110还可以包括任意数量的附加设备或连接。
除了裸平台硬件100,图1还图解说明了VMM 140、VM 150和160、客户操作系统152和162以及客户应用程序154、155、164和165。
VMM 140可以是安装在裸平台硬件110上或可访问裸平台硬件110来向客户提供VM(即裸平台硬件110的抽象)或者以其它方式创建VM、管理VM以及实现虚拟化策略的任何软件、固件或硬件主机。在其它实施例中,主机可以是能够控制裸平台硬件110的任何VMM,管理程序,OS或者其它软件、固件或硬件。客户可以是任何OS、任何VMM(包括VMM140的另一实例)、任何管理程序或者任何应用程序或其它软件。
根据VM中提供的处理器和平台的体系结构,每个客户期望访问裸平台硬件110的物理资源,例如处理器和平台寄存器、存储器和输入/输出设备。图1示出了两个VM,150和160,客户OS 152以及客户应用程序154和155安装在VM 150上,客户OS 162以及客户应用程序程序164和165安装在VM 160上。虽然图1只示出了两个VM和每个VM的两个应用程序,但是在本发明的范围内,可创建任意数量的VM,并且在每个VM上可以运行任意数量的应用程序。
能够被客户访问的资源可被分类为“特许”或“非特许”的资源。对于特许资源,VMM 140促进(facilitate)客户所需的功能性,同时保留对资源的最终控制。非特许资源不需要由VMM 140控制并且可由客户直接访问。
此外,每个客户OS期望处理各种事件,例如异常(例如,页错误和一般性保护错误(general protection fault)),中断(例如,硬件中断和软件中断),以及平台事件(例如,初始化和系统管理中断)。这些异常、中断和平台事件在本文中统一且单独地称为“虚拟化事件”。这些虚拟化事件中的一部分被称为“特许事件”,因为它们必须由VMM 140处理以确保VM 150和160的适当操作,保护VMM140免受客户影响,并且保护客户以免互相影响。
在任何给定时间,处理器120可能正在执行来自VMM140或其它任何客户的指令,因此VMM 140或客户可能正运行在处理器120上或在处理器120的控制中。当特许事件发生或者客户试图访问特许资源时,控制从客户转移到VMM 140。本文中,从客户到VMM 140的控制转移被称为“VM退出”。在处理该事件或者适当地促进对该资源的访问之后,VMM 140可以将控制返回给客户。本文中,从VMM 140到客户的控制转移被称作“VM登录”。
在图1的实施例中,处理器120根据存储在虚拟机控制结构(“VMCS”)132中的数据来控制VM 150和160的操作。VMCS 132是一种结构,该结构可包含一个客户或多个客户的状态,VMM 140的状态,指示VMM140如何控制一个客户或多个客户的操作的执行控制信息,关于VM退出和VM登录的信息,以及其它任何这样的信息。处理器120从VMCS 132读取信息以确定VM的执行环境并且约束它的行为。在该实施例中,VMCS132存储在存储器130中。在某些实施例中,多个VMCS用于支持多VM。虽然图1示出了VMCS 132存储在存储器130中,但是将VMCS存储在存储器中可能不是本发明所必需的。
处理器120可以包括执行单元122来执行包括暂停指令在内的指令。暂停指令可以是将延迟插入指令流中的任何指令。处理器120还包括时间戳计算器(“TSC”)124来计算处理器时钟周期,或者以其它方式测量经过的时间。在其它实施例中,可以使用其它测量经过的时间的方法。
此外,处理器120包括控制逻辑170来支持虚拟化。控制逻辑170可以包括微码,可编程逻辑,硬编码逻辑,或者处理器120中的任何其它形式的控制逻辑。在其它实施例中,控制逻辑170可通过处理器中或者处理器可访问的任何部件或者可读介质(例如存储器130)中的硬件、软件或固件(例如,处理器抽象层)的任何形式来实现。
控制逻辑170使处理器120执行本发明的方法实施例,例如下面在图2中图解说明的方法实施例,例如,通过使处理器120将例如支持虚拟化的一个或多个微操作的执行包括在该处理器对来自主机和客户的虚拟化指令或其它指令的响应中。例如,如下面在方法200的描述中所述的,检测逻辑180的操作和自旋循环的检测可以在响应暂停指令而执行的微码中被实现。
控制逻辑170包括虚拟化逻辑172和检测逻辑180。虚拟化逻辑172将准备并执行VM登录和退出。如下面在方法200的描述中所述的,检测逻辑180通过检测自旋循环签名(signature)来检测自旋循环的执行。这些逻辑单元的每一个还可以执行附加的功能,包括所述的那些由另一个逻辑单元执行功能,并且任何或所有这些逻辑单元可被集成在单个逻辑单元中。
在一个实施例中,检测逻辑180可以追踪两个值(第一暂停和最后暂停)来帮助自旋循环的检测。这些值可以被存储在检测逻辑180、存储器130内的存储位置中,或者在处理器120可访问的任何其它存储位置中。保持第一暂停的值以指示自旋循环中第一暂停指令第一次执行时的TSC值。保持最后暂停的值以指示同一个自旋循环中的暂停指令被执行的最近时间的TSC值。对于这些值的追踪和保持在以下对方法200的描述中进行描述。
控制逻辑170可以检查或以其它方式参考在VMCS 132中的字段、指示符、位或者其它数据结构来确定如何管理VM环境。例如,如果客户执行暂停指令,则暂停-退出控制位133可被设置成导致VM退出。在对该实施例的描述中,控制位被设置成实现或导致想要的效果,其中,设置意味着向该位写逻辑1,而在本发明范围内任何逻辑惯例或术语都可使用。
还是在VMCS 132中,如果检测逻辑180检测到客户正在执行自旋循环,则暂停-循环-退出控制位134可被设置成导致VM退出。当暂停-循环-退出控制位124被设置时,暂停-退出控制位133可以被忽略,以便允许本发明的新方法替代(override)现有的响应客户执行的每个暂停指令而导致的VM退出的方法。同样,如果需要,当暂停-环-退出控制位134未被设置,和/或当处理器120在虚拟机环境之外运行时,检测逻辑180可被禁用。
暂停-间隙字段136可用于存储由TSC 124测量的表示时间段的值,在该时间段内自旋循环的一次迭代通常会被执行。暂停-窗口字段138可用于存储由TSC 124测量的表示在VM退出发生之前客户将被允许执行自旋循环的时间段的值。
VMCS 132还可包括存储关于VM退出的信息的字段,以在VM退出之后当VMM接收到控制时,帮助VMM确定要采取的合适行动。例如,VMCS 132包括指示VM退出的原因的退出-原因字段135。
图2图解说明了方法200(一种用于在虚拟机环境中检测自旋循环的方法)中的本发明的一实施例。虽然方法实施例在不限于此方面,但是参照图1的信息处理系统100来描述图2的方法的实施例。
在图2的框210中,VMM(例如,VMM140)为VM(例如,VM 150)创建VMCS(例如,VMCS 132)。在框212中,如果检测逻辑180检测到自旋循环,则VMM 140设置暂停-循环-退出控制位134以便导致从VM 150的VM退出。在框214中,如上所述,VMM 140在暂停-间隙字段136中存储暂停-间隙值。在框216中,如上所述,VMM 140在暂停-窗口字段138中存储暂停-窗口值。
在框220中,发起从主机(例如,VMM140)到客户的处理器120的控制转移。控制的转移或VM登录,可包括使处理器120执行操作或微操作以保存主机状态并加载客户状态的虚拟化逻辑172。在框222中,将第一暂停和最后暂停的值设置成VM登录时的TSC值。在框224中,完成VM登录。
在框230中,客户开始或继续执行指令。在框232中,发起暂停指令的执行。在框234中,当前的TSC值被存储。
在框240中,确定来自框234的TSC值和最后暂停值的差是否大于暂停间隙的值。如果是,即应当是自旋循环的第一次迭代并且是自旋循环外的暂停指令的情况,那么,在框242中,框232的TSC值被存储在第一暂停和最后暂停中,并且方法200返回到框230。如果不是,即应当是自旋循环后续的迭代的情况,那么,在框250中,确定来自234的TSC值和第一暂停的值的差是否大于暂停窗口的值。
如果框250中判定的结果是否定的,即应当是客户还没有在执行比所允许的更长的自旋循环的情况,那么,在框252中,来自框232的TSC值被存储在最后暂停中,并且方法200返回到框230。如果框250中判定的结果是肯定的,即应当是客户已经在执行比所允许的更长的自旋循环的情况,那么方法200在框260中继续。
在框260中,发起从客户到主机的控制转移。控制转移或VM退出可包括使处理器120执行操作或微操作以保存客户状态并加载主机状态的虚拟化逻辑172。在框262中,虚拟化逻辑172在退出-原因字段235中存储表示暂停指令的执行的值,或者其它所需的值,例如表示自旋循环的检测的值。在框264中,完成VM退出。
在本发明的范围内,图2所示的方法可按不同的顺序、通过省略所示的框、添加附加的框,或者以重新排序、省略或增加框的结合,来执行。
此外,在本发明范围内,其它基于自旋循环签名来检测自旋循环的方法是可行的。在基于指令指针的实施例中,与暂停指令相关联的指令指针可以被存储,并且然后和与后续暂停指令相关联的指令指针相比较,以确定指令指针是否是相同的,这将表明正在执行暂停循环。在基于控制流的实施例中,在客户执行中的特定转换,例如特许级或地址空间的改变,或者指令指针的改变大于某个值,可能表示不在执行暂停循环。在基于频率的实施例中,在特定时间段中的暂停指令的数量将被计算,并且如果所述数量超过了某个值,所述某个值可以是低至一的数(即,两个暂停指令在该时间段中被执行),它可以表明正在执行自旋循环,或者执行了超过所允许的时间。
根据本发明的一实施例设计的处理器120,或者任何其它的部件或者部件的组成部分,可在各个阶段中设计,从创建到模拟(simulation)到制作。表示设计的数据可能以多种方式表示该设计。首先,如在模拟时有用的,可以使用硬件描述语言或另一功能描述语言来表示硬件。作为附加或备选的方案,在设计过程的某些阶段,可以产生具有逻辑和/或晶体管门电路的电路级模型。此外,在某阶段,大多数设计达到可以用表示各种设备的物理布置的数据来建模的级别。在使用传统的半导体制造技术的情况下,表示设备布置模型的数据可以是指定在用于生产集成电路的掩模的不同掩模层上各种特性存在或不存在的数据。
在本设计的任何表示中,数据可存储在任何形式的机器可读介质中。经调制或以其它方式生成以发送这样的信息的光或电波,存储器,或者磁或光存储介质,例如磁盘,可以是机器可读介质。这些介质中的任何一个可以“携带”或“指示”该设计,或者本发明的一实施例中使用的其它信息。当指示或携带信息的电载波被发送,到执行复制、缓冲、或者重传电信号的程度时,产生新的副本。因此,通信提供商或者网络提供商的行为可能构成制造包含本发明技术的产品的副本,例如,载波。
这样,公开了用于在虚拟机环境中检测自旋循环的装置、方法和系统。当在附图中描述并示出某些实施例时,应当理解,这样的实施例只是解释性的而不是对宽泛的发明的限制,并且本发明不限于所示或所描述的具体构造和设置,因为在研究本公开后,本领域的技术人员可对本发明进行各种其它修改。在发展迅速且不易预见未来发展的技术领域,例如本发明的技术领域中,可在不背离本公开的原理和所附权利要求的范围的前提下,通过实现技术进步的推动,所公开的实施例可易于在设置和细节方面进行修改。

Claims (6)

1.一种用于进行平台虚拟化的装置,包括:
检测模块,用于检测客户是否正在执行自旋循环;以及
虚拟化模块,用于响应检测模块检测到所述客户正在执行所述自旋循环而将对所述装置的控制从所述客户转移到主机,
其中,所述自旋循环的检测通过以下方式之一来执行:
所述检测模块基于两个暂停指令的执行之间的时间段与所述时间段的一阈值的比较,来检测所述客户是否正在执行所述自旋循环;
所述检测模块基于两个暂停指令的指令指针的比较,来检测客户是否正在执行自旋循环;
所述检测模块基于控制流改变来检测客户是否正在执行自旋循环;
所述检测模块基于在某个时间段内的暂停指令的记数,来检测客户是否正在执行自旋循环。
2.如权利要求1所述的装置,其中,所述虚拟化模块响应所述检测模块检测到所述客户已在执行比所允许的时间段更长的自旋循环,而将对所述装置的控制从所述客户转移到主机。
3.一种用于进行平台虚拟化的方法,包括以下步骤:
检测客户是否正在处理器上执行自旋循环;以及
响应确定所述客户正在执行所述自旋循环,而将对所述处理器的控制从客户转移到主机,
其中,检测所述客户是否正在执行所述自旋循环的步骤包括以下步骤之一:
比较两个暂停指令的执行之间的时间段与所述时间段的一阈值;
比较两个暂停指令的指令指针;
检测控制流改变;
计算某个时间段内的暂停指令的数量。
4.如权利要求3所述的方法,其中,响应确定客户正在执行所述自旋循环而将对处理器的控制从客户转移到主机的步骤包括:响应确定所述客户已在执行比所允许的时间段长的自旋循环而转移控制。
5.一种用于进行平台虚拟化的装置,包括:
检测客户是否正在处理器上执行自旋循环的部件;以及
响应确定所述客户正在执行所述自旋循环,而将对所述处理器的控制从客户转移到主机的部件,
其中,检测所述客户是否正在执行所述自旋循环的部件包括以下部件之一:
比较两个暂停指令的执行之间的时间段与所述时间段的一阈值的部件;
比较两个暂停指令的指令指针的部件;
检测控制流改变的部件;
计算某个时间段内的暂停指令的数量的部件。
6.如权利要求5所述的装置,其中,响应确定客户正在执行所述自旋循环而将对处理器的控制从客户转移到主机的部件包括:响应确定所述客户已在执行比所允许的时间段长的自旋循环而转移控制的部件。
CN2008101003868A 2007-03-30 2008-03-28 用于进行平台虚拟化的装置和方法 Expired - Fee Related CN101364184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310103445.8A CN103207803B (zh) 2007-03-30 2008-03-28 一种用于执行虚拟化的处理器和平台虚拟化的系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/694,344 US8230203B2 (en) 2007-03-30 2007-03-30 Detecting spin loops in a virtual machine environment
US11/694344 2007-03-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310103445.8A Division CN103207803B (zh) 2007-03-30 2008-03-28 一种用于执行虚拟化的处理器和平台虚拟化的系统

Publications (2)

Publication Number Publication Date
CN101364184A CN101364184A (zh) 2009-02-11
CN101364184B true CN101364184B (zh) 2013-05-01

Family

ID=40390561

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201310103445.8A Expired - Fee Related CN103207803B (zh) 2007-03-30 2008-03-28 一种用于执行虚拟化的处理器和平台虚拟化的系统
CN2008101003868A Expired - Fee Related CN101364184B (zh) 2007-03-30 2008-03-28 用于进行平台虚拟化的装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201310103445.8A Expired - Fee Related CN103207803B (zh) 2007-03-30 2008-03-28 一种用于执行虚拟化的处理器和平台虚拟化的系统

Country Status (3)

Country Link
US (1) US8230203B2 (zh)
CN (2) CN103207803B (zh)
TW (1) TWI375914B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045828B2 (en) * 2007-07-09 2011-10-25 Kabushiki Kaisha Toshiba Apparatus for processing images, and method and computer program product for detecting image updates
JP4982347B2 (ja) * 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
JP5010492B2 (ja) * 2008-01-31 2012-08-29 株式会社東芝 通信装置、方法及びプログラム
US8276147B2 (en) * 2009-10-16 2012-09-25 Microsoft Corporation Low synchronization means of scheduler finalization
US9086922B2 (en) * 2009-10-26 2015-07-21 Microsoft Technology Licensing, Llc Opportunistically scheduling and adjusting time slices
US20110107328A1 (en) * 2009-11-02 2011-05-05 Advanced Micro Devices, Inc. Virtual machine device and methods thereof
US8700943B2 (en) * 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
KR101647818B1 (ko) * 2010-04-13 2016-08-12 삼성전자주식회사 멀티 코어 사이의 데이터 전송 장치 및 방법
CN102006168B (zh) * 2010-11-11 2013-03-13 西安理工大学 基于多变量数字签名对消息匿名环签名的方法
US9304776B2 (en) 2012-01-31 2016-04-05 Oracle International Corporation System and method for mitigating the impact of branch misprediction when exiting spin loops
CN102902599B (zh) 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US9122505B1 (en) 2013-01-31 2015-09-01 Parallels IP Holdings GmbH System and method for handling I/O timeout deadlines in virtualized systems
CN104239003A (zh) * 2013-06-08 2014-12-24 深圳市腾讯计算机系统有限公司 检测硬件环境是否为虚拟机环境的方法及装置
US9307018B2 (en) 2013-09-11 2016-04-05 International Business Machines Corporation Workload deployment with real-time consideration of global network congestion
US9021497B1 (en) 2013-11-07 2015-04-28 International Business Machines Corporation Adjusting pause-loop exiting window values
US10467011B2 (en) * 2014-07-21 2019-11-05 Intel Corporation Thread pause processors, methods, systems, and instructions
GB2529204A (en) * 2014-08-13 2016-02-17 Ibm Suspending and resuming virtual machines
KR102321941B1 (ko) * 2014-12-17 2021-11-05 인텔 코포레이션 스핀-루프 점프를 수행하기 위한 장치 및 방법
CN110795231B (zh) * 2018-08-03 2023-12-22 阿里巴巴集团控股有限公司 一种虚拟cpu的处理方法及装置
US11194615B2 (en) * 2019-12-05 2021-12-07 Red Hat, Inc. Dynamic pause exiting

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867658A (en) * 1997-04-04 1999-02-02 International Business Machines Corporation Method and apparatus for implementing a stop state for a processor in a multiprocessor system
JP2006099182A (ja) * 2004-09-28 2006-04-13 Toshiba Corp 計算機システム、プロセッサ割り当て方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2779032B2 (ja) * 1990-01-23 1998-07-23 株式会社日立製作所 情報処理装置
US5935249A (en) * 1997-02-26 1999-08-10 Sun Microsystems, Inc. Mechanism for embedding network based control systems in a local network interface device
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7765543B1 (en) * 2003-12-17 2010-07-27 Vmware, Inc. Selective descheduling of idling guests running on a host computer system
US7594234B1 (en) * 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
JP4287799B2 (ja) * 2004-07-29 2009-07-01 富士通株式会社 プロセッサシステムおよびスレッド切り替え制御方法
JP4487744B2 (ja) * 2004-11-29 2010-06-23 富士通株式会社 マルチスレッド制御装置及び制御方法
US7987452B2 (en) * 2005-12-15 2011-07-26 International Business Machines Corporation Profile-driven lock handling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867658A (en) * 1997-04-04 1999-02-02 International Business Machines Corporation Method and apparatus for implementing a stop state for a processor in a multiprocessor system
JP2006099182A (ja) * 2004-09-28 2006-04-13 Toshiba Corp 計算機システム、プロセッサ割り当て方法及びプログラム

Also Published As

Publication number Publication date
TW200844861A (en) 2008-11-16
US20090077361A1 (en) 2009-03-19
TWI375914B (en) 2012-11-01
US8230203B2 (en) 2012-07-24
CN103207803A (zh) 2013-07-17
CN103207803B (zh) 2016-09-21
CN101364184A (zh) 2009-02-11

Similar Documents

Publication Publication Date Title
CN101364184B (zh) 用于进行平台虚拟化的装置和方法
JP5571208B2 (ja) パフォーマンスカウンタの仮想化
JP4584315B2 (ja) 仮想マシン環境におけるタイマ・オフセット機構
US8151264B2 (en) Injecting virtualization events in a layered virtualization architecture
US8291410B2 (en) Controlling virtual machines based on activity state
US8370559B2 (en) Executing a protected device model in a virtual machine
JP2006024207A (ja) ゲストソフトウェアの特権レベルに基づく1つの仮想マシンモニタへの移行の支援
JP2012074071A (ja) 階層化された仮想化アーキテクチャにおける仮想化イベント処理
US20150227192A1 (en) Virtual machine switching based on processor power states
TW201339971A (zh) 虛擬機器控制結構陰影化技術
US20100169884A1 (en) Injecting transactions to support the virtualization of a physical device controller
Lin et al. Hardware-assisted reliability enhancement for embedded multi-core virtualization design
Melekhova et al. Estimating working set size by guest os performance counters means
Poon et al. Bounding the running time of interrupt and exception forwarding in recursive virtualization for the x86 architecture
US9747118B2 (en) Guest-specific microcode
Grinberg et al. Architectural virtualization extensions: A systems perspective
US8291415B2 (en) Paging instruction for a virtualization engine to local storage
Lin et al. Robust lightweight embedded virtualization layer design with simple hardware assistance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130501

Termination date: 20180328