CN107924322A - 用于硬件虚拟化支持的设备和方法 - Google Patents

用于硬件虚拟化支持的设备和方法 Download PDF

Info

Publication number
CN107924322A
CN107924322A CN201680041585.9A CN201680041585A CN107924322A CN 107924322 A CN107924322 A CN 107924322A CN 201680041585 A CN201680041585 A CN 201680041585A CN 107924322 A CN107924322 A CN 107924322A
Authority
CN
China
Prior art keywords
virtual
virtual machine
host
timer
system component
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.)
Granted
Application number
CN201680041585.9A
Other languages
English (en)
Other versions
CN107924322B (zh
Inventor
贾尼·科科宁
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107924322A publication Critical patent/CN107924322A/zh
Application granted granted Critical
Publication of CN107924322B publication Critical patent/CN107924322B/zh
Active 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, 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)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种用于硬件虚拟化支持的设备(100),所述设备(100)包括:虚拟机监控器组件(101),用于启动虚拟机(virtual machine,VM)并且用于退出和/或进入主机级;主机系统组件(102),用于处理启用中断传送机制的配置标记(configuration flag,CF);其中,所述主机系统组件(102)用于,如果设置了所述配置标记,将虚拟定时器数记录为全局变量,从而当虚拟定时器到期时将信息提供给所述虚拟机监控器组件(101);以及所述虚拟机监控器组件(101)用于在所述主机级中处理所述全局变量的所述虚拟定时器数。

Description

用于硬件虚拟化支持的设备和方法
本专利要求EP15176883.5的优先权。
技术领域
本申请涉及虚拟定时器传送领域。具体而言,本申请涉及一种用于硬件虚拟化支持的设备和方法。
背景技术
如今使用各种计算机中央处理器指令集,其中一种类型是ARM架构,为高级RISC机器的缩写,提供可选硬件(hardware,HW)扩展支持或HW虚拟化支持。例如,这种HW虚拟化支持在2004年引进的ARMv7中以及在ARMv8架构中出现并被支持。
即使ARM添加硬件特性来支持虚拟化,但是仍然需要大量虚拟机监控器软件来处理虚拟化事件。相比于基于硬件的虚拟化方案,虚拟机监控器软件以虚拟化特性的易扩展的形式提供灵活性,但是由于缺乏硬件加速而降低了其在软件处理操作的性能开销。尤其受这种性能开销影响的一个方面是ARM平台中的虚拟定时器中断传送。
发明内容
本发明的目的是提供改进的硬件虚拟化支持。
该目的由独立权利要求的特征来实现。另外的实施形式在从属权利要求、描述内容和附图中显而易见。
根据第一方面,提供了一种用于硬件虚拟化支持的设备,所述设备包括:虚拟机监控器组件,用于启动虚拟机(virtual machine,VM)并且用于退出和/或进入主机级;主机系统组件,用于处理启用中断传送机制的配置标记;其中:所述主机系统组件用于,如果设置了所述配置标记,将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向所述虚拟机监控器组件提供信息;以及所述虚拟机监控器组件用于在所述主机级中处理所述全局变量的所述虚拟定时器数。
所述用于硬件虚拟化支持的设备有利于基于通用中断控制器v2/3、GICv2/3来提高ARM芯片中的虚拟定时器传送时间。基于GICv2/3在ARM芯片中传送虚拟定时器的障碍在于硬件不能向客户机操作系统(guest operating system,guest OS)直接发送虚拟定时器。
因此,虚拟定时器到期会产生物理中断,这会导致退出虚拟机监控器模式,然后退出主机OS,这样更新基于内核的虚拟机(kernel-based virtual machines,KVM)、有关GIC的软件结构,然后还回到虚拟机监控器模式,在返回进入到客户机OS模式之前更新实际的物理GIC寄存器。因此,虚拟定时器的传送可能需要软件层进行大量工作,即处理时间和/或内存需求。
所述用于硬件虚拟化支持的设备有利于简化使用的中断传送路径,从而缩短虚拟定时器传送时间。
换句话说,所述用于硬件虚拟化支持的设备可包括linux KVM虚拟机监控器代码部分,该部分可提供代码来执行“字开关”,即启动VM并且退出和/或进入主机linux级的可能性。所述虚拟机监控器代码还可负责写入和/或读入物理GIC中,例如,作为中断控制器。
换句话说,所述用于硬件虚拟化支持的设备可包括linux主机系统,所述linux主机系统可能需要通过能启用快速中断传送机制的补充配置标记进行扩展。
换句话说,所述linux主机系统可能需要扩展有附加配置标记,所述附加配置标记标记可被定义为CONFIGURE_KVM_TIMER_OPTIMIZATION等。
相比于没有补充配置标记的机制,处理新添加的配置标记并且考虑新的配置标记可启用较快的中断传送机制。
如果设置了所述标记,所述主机系统,即linux,可以全局变量记录所述虚拟定时器数,使得虚拟机监控器模式知道虚拟定时器何时已经到期并且能够在启用快速路径机制的情况下使用所述快速路径机制。
可扩展虚拟机监控器模式来考虑快速传送选项。
换句话说,所述用于硬件虚拟化支持的设备可用于将若干VM运行在单个物理中央处理器(central processing unit,CPU)上。所述用于硬件虚拟化支持的设备可用于将一个VM运行在一个物理CPU上。
根据所述第一方面,在所述设备的第一可能实施形式中,所述主机系统组件用于执行物理中断在虚拟机监控器模式下应用的虚拟化标准。这有利于通过映射所述客户机OS的所谓虚拟中断来减少时间。
根据如上所述第一方面或根据所述第一方面的所述第一实施形式,在所述设备的第二可能实施形式中,所述主机系统组件用于恢复主机OS状态,标记退出寄存器的原因并且返回所述主机OS状态。这有利于提高虚拟定时器传送到所述客户机OS的性能。
根据如上所述第一方面或根据所述第一方面的任一前述实施形式,在所述设备的第三可能实施形式中,所述主机系统组件用于,如果启用了优化标记,执行虚拟定时器性能优化。这有利于基于提升虚拟化定时性能的简单检查来提供嵌入式机制。换句话说,提供了虚拟定时器传送时间优化。虚拟定时器性能由于避免了额外退出主机状态而得以提升。
根据如上所述第一方面或根据所述第一方面的任一前述实施形式,在所述设备的第四可能实施形式中,如果启用了所述优化标记,所述主机系统组件用于优化到客户机OS状态的虚拟机监控器返回路径。这有利于提升所述硬件虚拟化支持的性能。因此,提供了虚拟定时器传送时间优化。
根据如上所述第一方面或根据所述第一方面的任一前述实施形式,在所述设备的第五可能实施形式中,如果启用了优化标记,所述主机系统组件用于,当检测到所述虚拟定时器到期时,更新通用中断控制器列表寄存器并且返回所述客户机OS状态。这有利于提供调整的硬件虚拟化支持并且返回所述客户机OS状态。从而所述虚拟定时器到所述客户机OS的传送更快。
根据如上所述第一方面或根据所述第一方面的任一前述实施形式,在所述设备的第六可能实施形式中,所述虚拟机监控器组件用于将虚拟定时器IRQ数记录在定时器设备树条目中。这有利于提供调整的硬件虚拟化支持。本发明使用的术语IRQ是指术语“中断请求”。换句话说,IRQ是向计算机处理器发送的用以在决定接下来应执行哪个任务时立即停止处理器的信号。这有利于在一发生中断就产生异步退出中断处理器。
根据如上所述第一方面或根据所述第一方面的任意前述实施形式,在所述设备的第七可能实施形式中,所述虚拟机监控器组件用于指定所述虚拟IRQ数。这有利于提升虚拟中断的性能。换句话说,性能在所述虚拟IRQ数被指定时得以提升。
原因在于,虚拟机监控器组件通常没有意识到哪个中断应由所述客户机OS处理,哪个由主机OS处理。通过采用虚拟IRQ数,可能对客户机OS或主机OS的中断进行唯一分配。
当中断发生时,所述虚拟机监控器组件进入所述主机状态,因为所述中断可能是针对所述主机OS的。如果所述主机OS没有处理所述中断并且最后确认所述中断,那么所述中断将由检查哪些VM应处理所述中断的KVM处理。这意味着负责任的VM的KVM结构被更新,然后KVM返回虚拟机监控器模式,并且在虚拟机监控器模式下,实际硬件注册在返回所述客户机OS之前更新的所述虚拟定时器。如果虚拟机监控器组件意识到物理IRQ是针对运行的VM,则避免了这种到主机状态的额外循环。
根据如上所述第一方面或根据所述第一方面的任意前述实施形式,在所述设备的第八可能实施形式中,所述虚拟机监控器组件用于根据物理IRQ数来指定虚拟IRQ数,而所述物理IRQ数在所述虚拟定时器到期时向所述虚拟机监控器模式传送。这有利于提升虚拟中断的性能。
根据第二方面,本发明涉及一种用于硬件虚拟化支持的虚拟机监控器组件,其中,所述虚拟机监控器组件用于启动虚拟机并且用于退出和/或进入主机级并且在所述主机级中处理全局变量的虚拟定时器数。
根据第三方面,本发明涉及一种用于硬件虚拟化支持的主机系统组件,其中,所述主机系统组件用于处理启用中断传送机制的配置标记;所述主机系统组件用于,如果设置了所述配置标记,将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向根据所述第二方面的虚拟机监控器组件提供信息。
根据第四方面,本发明涉及一种用于硬件虚拟化支持的方法,所述方法包括以下步骤:
虚拟机监控器组件启动虚拟机并且退出和/或进入主机级;
主机系统组件处理配置标记,其中,所述配置标记启用中断传送机制;
如果设置了所述配置标记,所述主机系统组件将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向所述虚拟机监控器组件提供信息;以及
所述虚拟机监控器组件在所述主机级中处理所述全局变量的所述虚拟定时数。
根据所述第四方面,在所述方法的第一可能实施形式中,所述方法还包括步骤:所述主机系统组件执行物理中断在虚拟机监控器模式中应用的虚拟化标准。这有利于通过映射所述客户机OS的虚拟中断来减少处理时间。
处理时间或传送时间是在虚拟定时器到期与虚拟定时器到客户机OS状态的传送之间测量的时间,虚拟定时器到期总是产生陷入虚拟机监控器模式,即EL2模式的物理IRQ。换句话说,处理时间或传输时间对应于在虚拟定时器到期的时间点与虚拟定时器到客户机OS状态的传送的时间点之间测量的时间。
根据如上所述第四方面或根据所述第四方面的所述方法的所述第一实施形式,在所述方法的第二可能实施形式中,所述方法还包括步骤:恢复主机OS状态,向寄存器标记退出原因并且返回所述主机OS状态。这有利于提升虚拟定时器向所述客户机OS的传送的性能。
根据如上所述第四方面或根据所述第四方面的所述方法的任意前述实施形式,在所述方法的第三可能实施形式中,所述方法还包括步骤:如果启用了优化标记,执行虚拟定时器性能优化。这有利于提供一种用于增强所述虚拟定时器性能的嵌入机制。
本发明可以在数字电子电路,或计算机硬件、固件、软件,或它们的组合中实施,例如,在传统移动设备的可用硬件或专用于处理本文所描述方法的新硬件中实施。
本发明的这些方面和其它方面在下文描述的实施例中显而易见并且结合实施例进行解释。参考下面的示意图将更清楚地理解本发明更完整的解释及其具有的优点。
附图说明
本发明的具体实施方式将结合以下附图进行描述,其中:
图1所示为根据本发明一项实施例的一种用于硬件虚拟化支持的设备的示意图;
图2所示为根据本发明一实施例的一种用于硬件虚拟化支持的方法的流程图的示意图;
图3所示为根据本发明一项实施例的基于KVM的虚拟机监控器中的虚拟定时器传送图的示意图;
图4所示为根据本发明一项实施例的KVM虚拟机监控器和主机系统中的修改的示意图;
图5所示为根据本发明一项实施例的ARM arch_timer设备树形条目中的虚拟定时器IRQ数的示例的示意图;以及
图6所示为根据本发明一项实施例的GICv2架构图的示例的示意图。
具体实施方式
在相关附图中,相同引用标号表示相同或至少等效元件、部件、单元或步骤。另外,需要说明的是,并不绘制所有附图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明有利的是允许在相同CPU上运行若干VM,如果一个VCPU运行在单个物理CPU上,则可以实现虚拟定时器传送优化这一优点。
本发明有利于提供一种机制,该机制在现有KVM虚拟机监控器代码已经修改的情况下避免在虚拟定时器到期时,即在主机OS的虚拟定时器到期之后,就返回进入主机OS模式。因此,可以避免虚拟机监控器模式循环。
由于当前ARM GIC架构要求捕获虚拟机监控器模式中的所有物理中断,所以仍然要进入虚拟机监控器模式并且返回客户机OS模式。当虚拟定时器可能到期时,如果启用了Linux内核编译器时间选项CONFIGURE_KVM_TIMER_OPTIMIZATION标记,虚拟机监控器模式代码路径选择最优的虚拟定时器处理。
如果启用了所述CONFIGURE_KVM_TIMER_OPTIMIZATION标记,则可以避免进入主机OS状态。然而,可优化到客户机OS状态的虚拟机监控器返回路径,使得当虚拟机监控器确认虚拟定时器到期时,它可直接更新GIC列表寄存器并可返回客户机OS状态。这样,虚拟定时器的传送时间能够显著增加。
所述用于硬件虚拟化支持的方法描述一种虚拟定时器传送优化。
GIC架构可用来定义处理连接到GIC或适用于单处理器或多处理器系统的通用中断控制器编程接口的任何处理器的所有中断源的架构需求。
根据本发明的示例性实施例,GIC架构可用作支持和管理包括至少一个处理器的系统中的中断的统一资源。GIC架构可提供寄存器来管理中断源、中断行为以及到一个或多个处理器的中断路由,支持ARM架构和软件产生的或虚拟中断。
根据本发明的示例性实施例,提供了一种基于软件的方法,通过避免不必要的存储和加载Linux主机OS状态来简化和优化基于KVM的虚拟机监控器中的虚拟定时器传送时间。
根据本发明的示例性实施例,使用对KVM虚拟机监控器代码和linux主机OS代码的更改。根据本发明的示例性实施例,这些修改是可选的并且可通过linux内核CONFIGURE_KVM_TIMER_OPTIMIZATION编译器标记配置。
图1所示为根据本发明一项实施例的一种用于硬件虚拟化支持的设备的示意图。
图1所示为用于硬件虚拟化支持的设备100的实施例,设备100包括虚拟机监控器组件101和主机系统组件102。
虚拟机监控器组件101用于启动虚拟机(virtual machine,VM)并且可用于退出和/或进入主机级,其中,虚拟机监控器组件101用于在主机级中处理全局变量的虚拟定时器数。
主机系统组件102用于处理启用中断传送机制的配置标记(configuration flag,CF),其中,主机系统组件102用于,如果设置了配置标记,将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向虚拟机监控器组件101提供信息。
主机系统组件102可用于,如果启用了优化标记(optimization flag,OF),执行虚拟定时器性能优化。
主机系统组件102用于以CONFIGURE_KVM_TIMER_OPTIMIZATION标记的形式处理配置标记(configuration flag,CF)。
图2所示为根据本发明一实施例的一种用于硬件虚拟化支持的方法的流程图的示意图。
图2描述了虚拟定时器传送优化。根据本发明一示例性实施例,所有步骤S1至S4能够彼此独立。
作为该方法的第一步骤S1,虚拟机监控器101启动虚拟机并且退出和/或进入主机级。
作为该方法的第二步骤S2,主机系统组件102处理配置标记(configurationflag,CF),其中该配置标记(configuration flag,CF)启用中断传送机制。
作为该方法的第三步骤S3,如果设置了配置标记(configuration flag,CF),主机系统组件102将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向虚拟机监控器组件101提供信息。
作为该方法的第四步骤S4,虚拟机监控器组件101在主机级中处理全局变量的虚拟定时器数。
图3所示为根据本发明一项实施例的基于KVM的虚拟机监控器中的虚拟定时器传送图的示意图。
根据本发明一示例性实施例,用于硬件虚拟化支持的设备100可用于执行以下步骤:
在步骤S10中,由于被物理中断触发,保存客户机OS状态。在步骤S11中,加载虚拟机监控器状态。
查询部件2000可使用linux内核编译标记来选择虚拟定时器传送的快速通道或慢速通道。查询部件2000可包括以下步骤。
在步骤S12中,可确定是否设置了CONFIGURE_KVM_TIMER_OPTIMIZATION标记。
如果是,那么该过程可继续快速部件3000。如果否,该过程可继续慢部分1000。术语“快速”和“慢速”可彼此相对使用,例如定义一个部件比另一部件快或慢。
例如,如果没有编译内核来支持CONFIGURE_KVM_TIMER_OPTIMIZATION设置,那么将使用正常的虚拟定时器传送机制,即慢速通道。否则,将使用快速通道。
慢速部件1000可包括以下步骤:
在步骤S13中,加载主机OS状态。
随后,在步骤S14中,更新KVM软件GIC状态。
在步骤S15中,保存主机OS状态。
最后,在步骤S16中,加载虚拟机监控器状态。
快速部件3000可包括以下步骤:
在步骤S20中,更新虚拟CPU GIC寄存器。
随后,在步骤S21中,加载客户机OS状态。
图4所示为根据本发明一项实施例的KVM虚拟机监控器和主机系统中的修改的示意图。
图4所示为在linux主机、KVM虚拟机监控器和客户机虚拟机之间执行的处理和步骤。根据本发明一示例性实施例,用于硬件虚拟化支持的设备100可用于执行以下步骤:
最优虚拟定时器传送机制可在主机OS中启用:
在步骤S22中,将虚拟定时器传送优化代码应用到Linux主机和KVM虚拟机监控器代码。
随后,在步骤S23中,选择CONFIGURE_KVM_TIMER_OPTIMIZATION编译选项并且编译主机内核。
在下文,在步骤S24中,记录虚拟定时器物理中断数。这可在步骤S30中触发客户机虚拟机以使客户机虚拟机运行。
然后,在步骤S25中,基于常用Linux工具在单个物理CPU上配置单个VM。
在步骤S32中,一旦物理定时器中断到达,退出虚拟机监控器模式。随后,在步骤S40中,检查CONFIGURE_KVM_TIMER_OPTIMIZATION标记是否被设置。
如果是,该过程继续步骤S41,如果否,继续步骤S26。
在步骤S26中,加载主机OS状态。
随后,在步骤S27中,更新KVM软件GIC状态。
在下文,在步骤S28中,保存主机OS状态。
然后,在步骤S29中,加载虚拟机监控器状态,并且该过程可重新执行步骤S42。
在步骤S41中,更新VCPU GIC寄存器。
随后,在步骤S42中,加载客户机OS状态。
最后,返回客户机虚拟机(virtual machine VM)。
虚拟定时器IRQ数记录在定时器设备树形条目中:定时器设备树形条目中的第三IRQ数指定虚拟IRQ数,一旦虚拟定时器到期就向虚拟机监控器模式传送该虚拟IRQ数。
arch_timer在设备树形条目中的虚拟定时器节点在图4中示出。
虚拟机监控器可能知道所使用的虚拟中断数。这可以在linux主机OS架构定时器设置的不同部分中进行。一个选项是用于以下伪码流等:
(i)指定全局virt_irq_num变量
(ii)指定Linux内核编译时间配置选项CONFIGURE_KVM_TIMER_OPTIMIZATION来启动虚拟定时器传送优化
(iii)(iii)在arm_arch_timer.c in arch_timer_init()函数中,以下代码路径记录使用的虚拟IRQ数:
点线表示linux主机OS中的修改,虚线显示KVM中的修改。
图5所示为根据本发明一项实施例的ARM arch_timer设备树形条目中的虚拟定时器IRQ数的示例的示意图。
图6所示为根据本发明一项实施例的GICv2架构图的示意图。
图6所示为GIC或GICv2分区的示意图。GIC或GICv2架构可逻辑上划分为分配器块以及一个或多个CPU接口块。根据本发明一示例性实施例,GIC虚拟化扩展将一个或多个虚拟CPU接口添加到GIC。因此,如图6所示,GIC的逻辑分区如下所示。
根据本发明一示例性实施例,可以定义一个分配器块。该分配器块执行中断优先级处理并且执行向连接到系统中的处理器的CPU接口块的分配。分配器块寄存器由GICD_prefix标识。
此外,根据本发明一示例性实施例,可使用CPU接口。每个CPU接口块可执行系统中被连接处理器的优先级掩码和抢占处理。CPU接口块寄存器由GICC_prefix标识。在描述包括GIC虚拟化扩展的GIC时,CPU接口有时称为物理CPU接口,以避免可能与虚拟CPU接口混淆。
根据本发明一示例性实施例,可使用虚拟CPU接口。GIC虚拟化扩展为系统中的每个处理器添加一个虚拟CPU接口。
根据本发明一示例性实施例,可使用虚拟接口控制。虚拟接口控制块的主要组件是GIC虚拟接口控制寄存器,该GIC虚拟接口控制寄存器包括被连接处理器上的当前虚拟机的主动和挂起虚拟中断列表。
根据本发明一示例性实施例,这些寄存器由运行在该处理器上的虚拟机监控器来管理。虚拟接口控制块寄存器由GICH_prefix标识。
另外,可使用虚拟CPU接口。每个虚拟CPU接口块向被连接处理器提供虚拟中断的物理信令。ARM处理器可处理虚拟化扩展信号并且在该处理器上使用当前虚拟机的这些中断。
根据本发明一示例性实施例,由虚拟机访问的GIC虚拟CPU接口寄存器提供虚拟中断的中断控制和状态信息。这些寄存器的格式类似于物理寄存器的格式。另外,可配置CPU接口寄存器。虚拟CPU接口块寄存器由GICV_prefix标识。
通过阅读以上内容,所属领域的技术人员将清楚地了解,可提供多种方法、系统、记录媒体上的计算机程序及其类似者等等。
本发明还支持包含计算机可执行代码或计算机可执行指令的计算机程序产品,这些计算机可执行代码或计算机可执行指令在执行时使得至少一台计算机执行本文所述的执行及计算步骤。
通过以上启示,对于本领域技术人员来说,许多替代产品、修改及变体是显而易见的。当然,所属领域的技术人员容易意识到除本文所述的应用之外,还存在本发明的众多其它应用。
虽然已参考一个或多个特定实施例描述了本发明,但所属领域的技术人员将认识到在不偏离本发明的范围的前提下,仍可对本发明作出许多改变。因此,应理解,只要是在所附权利要求书及其等效文句的范围内,可以用不同于本文具体描述的方式来实践本发明。
在权利要求书中,词语“包括”不排除其它元素或步骤,不定冠词“一”不排除多个。单个处理器或其他单元可以完成权利要求中描述的几个器件的功能。
在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可存储或分发到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过因特网或者其它有线或无线电信系统分发。

Claims (15)

1.一种用于硬件虚拟化支持的设备(100),其特征在于,所述设备(100)包括:
虚拟机监控器组件(101),用于启动虚拟机(virtual machine,VM)以及用于退出和/或进去主机级;
主机系统组件(102),用于处理启用中断传送机制的配置标记(configuration flag,CF);其中,
所述主机系统组件(102)用于,如果设置了所述配置标记,将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向所述虚拟机监控器组件(101)提供信息;
所述虚拟机监控器组件(101)用于在所述主机级中处理所述全局变量的所述虚拟定时器数。
2.根据权利要求1所述的设备(100),其特征在于:
所述主机系统组件(102)执行物理中断在虚拟机监控器模式下应用的虚拟化标准。
3.根据权利要求1和2之一所述的设备(100),其特征在于:
所述主机系统组件(102)用于恢复主机OS状态,向寄存器标记退出原因并且返回所述主机OS状态。
4.根据权利要求1至3之一所述的设备(100),其特征在于:
所述主机系统组件(102)用于,如果优化标记(optimization flag,OF)被启用,执行虚拟定时器性能优化。
5.根据权利要求4所述的设备(100),其特征在于:
如果启用了所述优化标记(optimization flag,OF),所述主机系统组件(102)用于优化到客户机OS状态的虚拟机监控器返回路径。
6.根据权利要求5所述的设备(100),其特征在于:
如果启用了所述优化标记(optimization flag,OF),所述主机系统组件(102)用于更新通用中断控制器列表寄存器并且在检测到所述虚拟定时器到期时返回到所述客户机OS状态。
7.根据权利要求1至6之一所述的设备(100),其特征在于:
所述虚拟机监控器组件(101)用于将虚拟定时器IRQ数记录在定时器设备树形条目中。
8.根据权利要求7所述的设备(100),其特征在于:
所述虚拟机监控器组件(101)用于指定所述虚拟IRQ数。
9.根据权利要求8所述的设备(100),其特征在于:
所述虚拟机监控器组件(101)用于根据物理IRQ数指定所述虚拟IRQ数,所述物理IRQ数在所述虚拟定时器到期时就传送给虚拟机监控器模式。
10.一种用于硬件虚拟化支持的虚拟机监控器组件(101),其中所述虚拟机监控器组件(101)用于启动虚拟机(virtual machine,VM)、退出和/或进入主机级,以及在所述主机级中处理全局变量的虚拟定时器数。
11.一种用于硬件虚拟化支持的主机系统组件(102),其特征在于,所述主机系统组件(102)用于处理启用中断传送机制的配置标记(configuration flag,CF);如果设置了所述配置标记,所述主机系统组件(102)用于将虚拟定时器数记录为全局变量,从而在虚拟定时器到期时向根据权利要求10的虚拟机监控器组件(101)提供信息。
12.一种用于硬件虚拟化支持的方法,其特征在于,所述方法包括以下步骤:
虚拟机监控器组件(101)启动(S1)虚拟机并且退出和/或进入主机级;
主机系统组件(102)处理(S2)配置标记(configuration flag,CF),其中,所述配置标记(configuration flag,CF)启用中断传送机制;
如果设置了所述配置标记(configuration flag,CF),所述主机系统组件(102)将虚拟定时器数记录(S3)为全局变量,从而在虚拟定时器到期时向所述虚拟机监控器组件(101)提供信息;以及
所述虚拟机监控器组件(101)在所述主机级中处理(S4)所述全局变量的所述虚拟定时器数。
13.根据权利要求12所述的方法,其特征在于:
所述方法进一步包括步骤:所述主机系统组件(102)执行物理中断在虚拟机监控器模式中应用的虚拟化标准。
14.根据权利要求12和13之一所述的方法,其特征在于:
所述方法进一步包括步骤:恢复主机OS状态,向寄存器标记退出原因并且返回所述主机OS状态。
15.根据权利要求12至14之一所述的方法,其特征在于:
所述方法进一步包括步骤:如果启用了优化标记,执行虚拟定时器性能优化。
CN201680041585.9A 2015-07-15 2016-06-02 用于硬件虚拟化支持的设备和方法 Active CN107924322B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15176883.5A EP3118740B1 (en) 2015-07-15 2015-07-15 Device and method for hardware virtualization support
EP15176883.5 2015-07-15
PCT/CN2016/084570 WO2017008594A1 (en) 2015-07-15 2016-06-02 Device and method for hardware virtualization support

Publications (2)

Publication Number Publication Date
CN107924322A true CN107924322A (zh) 2018-04-17
CN107924322B CN107924322B (zh) 2021-02-12

Family

ID=53716345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680041585.9A Active CN107924322B (zh) 2015-07-15 2016-06-02 用于硬件虚拟化支持的设备和方法

Country Status (4)

Country Link
US (2) US10394592B2 (zh)
EP (1) EP3118740B1 (zh)
CN (1) CN107924322B (zh)
WO (1) WO2017008594A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897632A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种中断处理方法、装置、电子设备及存储介质
WO2021057649A1 (zh) * 2019-09-25 2021-04-01 阿里巴巴集团控股有限公司 定时器处理方法、装置、电子设备及计算机存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1916855A (zh) * 2005-08-19 2007-02-21 联想(北京)有限公司 一种虚拟机系统及其硬件配置方法
US20080155536A1 (en) * 2006-12-22 2008-06-26 Konstantin Levit-Gurevich Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor
US20080288940A1 (en) * 2007-05-16 2008-11-20 Vmware, Inc. Dynamic Selection and Application of Multiple Virtualization Techniques
CN101398768A (zh) * 2008-10-28 2009-04-01 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
US20090113110A1 (en) * 2007-10-30 2009-04-30 Vmware, Inc. Providing VMM Access to Guest Virtual Memory
US20090259870A1 (en) * 2008-04-09 2009-10-15 Microsoft Corporation Managing timers in a multiprocessor environment
US20110296411A1 (en) * 2010-05-25 2011-12-01 Transoft Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor
CN102792272A (zh) * 2010-02-05 2012-11-21 超威半导体公司 配置成虚拟化客户本地中断控制器的处理器
CN103514043A (zh) * 2012-06-29 2014-01-15 华为技术有限公司 多处理器系统及该系统的数据处理方法
US20140351472A1 (en) * 2013-05-23 2014-11-27 Arm Limited Method and apparatus for interrupt handling

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1916855A (zh) * 2005-08-19 2007-02-21 联想(北京)有限公司 一种虚拟机系统及其硬件配置方法
US20080155536A1 (en) * 2006-12-22 2008-06-26 Konstantin Levit-Gurevich Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor
US20080288940A1 (en) * 2007-05-16 2008-11-20 Vmware, Inc. Dynamic Selection and Application of Multiple Virtualization Techniques
US20090113110A1 (en) * 2007-10-30 2009-04-30 Vmware, Inc. Providing VMM Access to Guest Virtual Memory
US20090259870A1 (en) * 2008-04-09 2009-10-15 Microsoft Corporation Managing timers in a multiprocessor environment
CN101398768A (zh) * 2008-10-28 2009-04-01 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
CN102792272A (zh) * 2010-02-05 2012-11-21 超威半导体公司 配置成虚拟化客户本地中断控制器的处理器
US20110296411A1 (en) * 2010-05-25 2011-12-01 Transoft Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor
CN103514043A (zh) * 2012-06-29 2014-01-15 华为技术有限公司 多处理器系统及该系统的数据处理方法
US20140351472A1 (en) * 2013-05-23 2014-11-27 Arm Limited Method and apparatus for interrupt handling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHRISTOFFER DALL等: "KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor", 《ACM SIGARCH COMPUTER ARCHITECTURE NEWS - ASPLOS 14》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897632A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种中断处理方法、装置、电子设备及存储介质
CN111897632B (zh) * 2019-05-05 2023-10-20 兆易创新科技集团股份有限公司 一种中断处理方法、装置、电子设备及存储介质
WO2021057649A1 (zh) * 2019-09-25 2021-04-01 阿里巴巴集团控股有限公司 定时器处理方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
WO2017008594A1 (en) 2017-01-19
US10394592B2 (en) 2019-08-27
US20190340008A1 (en) 2019-11-07
EP3118740A1 (en) 2017-01-18
US11086655B2 (en) 2021-08-10
CN107924322B (zh) 2021-02-12
EP3118740B1 (en) 2021-09-08
US20170185443A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
TWI550516B (zh) 用於警告追蹤中斷之電腦程式產品、電腦系統及方法
US8607228B2 (en) Virtualizing performance counters
CN106030548B (zh) 用于可信计算的多节点中枢
JP5925909B2 (ja) セキュアなエラーハンドリング
JP5710434B2 (ja) アシスト・ハードウエア・スレッドの拡張可能な状態追跡のための方法、情報処理システム、およびプロセッサ
US20080189529A1 (en) Controlling instruction execution in a processing environment
US8875114B2 (en) Employing identifiers provided by an operating system of a processing environment to optimize the processing environment
JPH02232737A (ja) パイプライン方式コンピューターシステムにおいてエラーを検出し訂正する方法及び装置
US20110173370A1 (en) Relocating Page Tables And Data Amongst Memory Modules In A Virtualized Environment
TWI540510B (zh) 用於藉由程式對警告追蹤中斷設備之使用之電腦程式產品、電腦系統及其方法
US9715403B2 (en) Optimized extended context management for virtual machines
US20110185153A1 (en) Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US20130326514A1 (en) Method and apparatus for supporting virtualization of loadable module
JP2009037271A (ja) 仮想計算機システムの停止方法および計算機装置
TWI533223B (zh) 用於由一程式提供給另一程式之對警告追蹤設施之存取之電腦程式產品、電腦系統及其方法
US9665424B2 (en) Recovery improvement for quiesced systems
CN107924322A (zh) 用于硬件虚拟化支持的设备和方法
JPS63279328A (ja) 仮想計算機システムのゲスト実行制御方式
US9389897B1 (en) Exiting multiple threads of a simulation environment in a computer
WO2008092769A1 (en) Employing a buffer to facilitate instruction execution
CN104166633B (zh) 用于存储器访问保护的方法和系统
US20230019377A1 (en) Memory barrier elision for multi-threaded workloads
JP6250604B2 (ja) セキュアなエラーハンドリング
US9342359B2 (en) Information processing system and information processing method
CN117075974A (zh) 一种基于risc-v服务器cpu的新型edk2启动引导方法

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