CN110609730B - 一种实现虚拟处理器间中断透传的方法及设备 - Google Patents

一种实现虚拟处理器间中断透传的方法及设备 Download PDF

Info

Publication number
CN110609730B
CN110609730B CN201810614590.5A CN201810614590A CN110609730B CN 110609730 B CN110609730 B CN 110609730B CN 201810614590 A CN201810614590 A CN 201810614590A CN 110609730 B CN110609730 B CN 110609730B
Authority
CN
China
Prior art keywords
interrupt
processor
physical processor
information
target
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
Application number
CN201810614590.5A
Other languages
English (en)
Other versions
CN110609730A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810614590.5A priority Critical patent/CN110609730B/zh
Publication of CN110609730A publication Critical patent/CN110609730A/zh
Application granted granted Critical
Publication of CN110609730B publication Critical patent/CN110609730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/45583Memory management, e.g. access or allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Advance Control (AREA)

Abstract

本申请提供了实现虚拟处理器间中断透传的方法及设备,该方案中虚拟处理器与物理处理器之间存在映射关系,在源虚拟处理器需要向目标虚拟处理器发送中断时,由源虚拟处理器对应的源物理处理器向中断命令寄存器写入关于中断的信息,源物理处理器的中断控制器根据映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息,进而将中断向量信息发送至目标物理处理器的中断控制器,以使目标物理处理器的中断控制器根据中断向量信息对中断作出响应。在此过程中,直接由源物理处理器的中断控制器利用映射关系对中断的发送进行路由,从而实现了虚拟处理器之间中断的透传,无需Hypervisor的介入,因此避免了有额外的开销,提高了处理效率。

Description

一种实现虚拟处理器间中断透传的方法及设备
技术领域
本申请涉及信息技术领域,尤其涉及一种实现虚拟处理器间中断透传的方法及设备。
背景技术
虚拟化作为云计算的核心技术,性能至关重要,而虚拟机处理中断的性能时刻决定着虚拟机的整体性能表现。对于虚拟处理器之间的中断(IPI),x86架构并未提供直接的透传机制,仍然需要Hypervisor干预才可以实现虚拟处理器间中断的发送。
图1示出了目前x86架构中虚拟机处理器间中断的发送方案,如果一个虚拟机中,其中一个虚拟处理器VCPU_#M需要向另外一个虚拟处理器VCPU_#N发送中断,则首先向VLAPIC(Virtual Local Advanced Programmable Interrupt Controller,虚拟本地高级可编程中断控制器)的中断命令寄存器APIC_ICR(中断命令主寄存器)和APIC_ICR2(中断命令次寄存器)中分别写入中断向量信息和目标VCPU(即VCPU_#N)的信息。此时,VCPU_#M对应的CPU_#X获知对VLAPIC的写入动作,并陷入到Hypervisor,进入到根模式,Hypervisor将APIC_ICR2中的目标VCPU的信息转化为其对应的物理处理器CPU_#Y的信息(translatevcpu to cpu),向目标VCPU_#N所在的物理处理器CPU_#Y发送中断,中断的相关信息通过总线发送到目标CPU_#Y上。由此,完成中断的发送,以使CPU_#Y根据中断向量信息对IPI中断作出响应。
在此种方式的处理过程中需要Hypervisor介入,因此会有额外的开销,导致虚拟机中IPI中断的处理效率降低。
申请内容
本申请的一个目的是提供一种实现虚拟处理器间中断透传的方法及设备,用以解决虚拟机中IPI中断的处理效率低的问题。
为实现上述目的,本申请提供了一种实现虚拟处理器间中断透传的方法,该方法包括:
在源虚拟处理器需要向目标虚拟处理器发送中断时,源虚拟处理器对应的源物理处理器向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息,其中,虚拟处理器和物理处理器之间存在映射关系;
源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息;
源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
基于本申请的另一方面,还提供了一种实现虚拟处理器间中断透传的设备,所述设备包括:
中断写入装置,用于在源虚拟处理器需要向目标虚拟处理器发送中断时,控制源虚拟处理器对应的源物理处理器向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息,其中,虚拟处理器和物理处理器之间存在映射关系;
中断路由装置,用于控制源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息;
中断发送装置,用于控制源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
此外,本申请还提供了一种实现虚拟处理器间中断透传的设备,包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的多个物理处理器,所述物理处理器在运行于非根模式时对应多个虚拟处理器,其中,当该计算机程序指令被所述物理处理器执行时,触发所述设备执行前述实现虚拟处理器间中断透传的方法。
本申请提供的方案中,虚拟处理器与物理处理器之间存在映射关系,在源虚拟处理器需要向目标虚拟处理器发送中断时,由源虚拟处理器对应的源物理处理器向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息,源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息,进而根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。在此过程中,直接由源物理处理器的中断控制器利用映射关系对中断的发送进行路由,从而实现了虚拟处理器之间中断的透传,无需Hypervisor的介入,因此避免了有额外的开销,提高了处理效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为目前x86架构中发送虚拟处理器间发送的方案;
图2为本申请实施例提供的实现虚拟处理器间中断透传的方法的处理原理图;
图3为本申请实施例提供的方案对于虚拟处理器间中断的处理方式的示意图;
图4为本申请实施例提供的一种实现虚拟处理器间中断透传的设备的结构示意图;
图5为本申请实施例提供的另一种实现虚拟处理器间中断透传的设备的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(处理器)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了一种实现虚拟处理器间中断透传的方法,该方法直接由源物理处理器的中断控制器利用映射关系对中断的发送进行路由,从而实现了虚拟处理器之间中断的透传,无需Hypervisor的介入,因此避免了有额外的开销,提高了处理效率。在实际场景中,该方法的执行主体可以是任意能够运行虚拟机的设备,其具体实现可以是包括但不限于用户设备、如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。所述用户设备包括但不限于个人计算机、触控终端等。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图2示出了本申请实施例提供的实现虚拟处理器间中断透传的方法的处理原理,其中,虚拟处理器与物理处理器之间存在映射关系。在实际的虚拟化场景中,是由Hypervisor负责虚拟机的创建和管理,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,可以协调访问服务器上的所有物理设备和虚拟机。
由此,可以由Hypervisor来维护虚拟处理器与物理处理器之间的映射关系,即在虚拟机创建时,Hypervisor创建所述虚拟机的虚拟处理器与物理处理器之间的映射关系,并在调度所述虚拟处理器时更新所述映射关系。在本申请的一种实施例中,虚拟处理器与物理处理器之间的映射关系可以通过映射表进行记录,记为VMT(VCPU Mapping Table),当Hypervisor执行虚拟处理器的调度动作时,会引起虚拟处理器与物理处理器之间的映射关系发生变化,因此需要在Hypervisor调度虚拟处理器时更新所述映射关系,以保证映射表中的映射关系实时正确。由本实施例中的映射表中可知如下的映射关系:虚拟处理器VCPU_#M对应物理处理器CPU_#X,虚拟处理器VCPU_#N对应物理处理器CPU_#Y。
虚拟处理器间中断透传对应的场景为虚拟机的某一个虚拟处理器需要向其它虚拟处理器发送IPI(Inter-Processor Interrupt,处理器间中断),其中,发送的虚拟处理器记为源虚拟处理器,接收的虚拟处理器即为目标虚拟处理器,所述目标虚拟处理器的数量可以是一个也可以是多个,源虚拟处理器对应的物理处理器即为源物理处理器,目标虚拟处理器对应的物理处理器为目标物理处理器。
在源虚拟处理器VCPU_#M需要向目标虚拟处理器VCPU_#N发送IPI时,源虚拟处理器VCPU_#M对应的源物理处理器CPU_#X向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息。该写入动作不引起Hypervisor的介入,因此不同于现有技术中由源虚拟处理器执行向中断命令寄存器的写入动作而产生Trap(陷入),进而由Hypervisor介入IPI的发送过程。其中,中断命令寄存器包括了APIC_ICR(中断命令主寄存器)和APIC_ICR2(中断命令次寄存器),APIC_ICR中写入中断向量信息,用于实现中断服务的寻址,确定中断的具体内容,APIC_ICR2中写入目标虚拟处理器的信息,用于确定中断发送的目标。
源物理处理器CPU_#X的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。其中,所述中断控制器为物理处理器的LAPIC(Local Advanced Programmable Interrupt Controller,本地高级可编程中断控制器),该LAPIC能够根据APIC_ICR2中写入目标虚拟处理器的信息在映射关系中进行查询,从而获得目标虚拟处理器VCPU_#N对应的目标物理处理器CPU_#Y。
在本申请的一种实施例中,在LAPIC中可以增加一个映射表寄存器,该寄存器可以记为APIC_VMT(APIC VCPU Mapping Table)寄存器,用于保存记录虚拟处理器与物理处理器之间的映射关系的映射表的基地址。由此,源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息时,可以先从映射表寄存器中读取信息,根据所述映射表寄存器保存的映射表的基地址,访问所述映射表,然后根据所述映射表中虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。
在确定目标物理处理器CPU_#Y的信息之后,源物理处理器CPU_#X的LAPIC根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器CPU_#Y的中断控制器LAPIC,以使所述目标物理处理器CPU_#Y的LAPIC根据所述中断向量信息对所述中断作出响应,由此完成了虚拟处理器间中断的透传。在实现虚拟处理器间中断透传的过程中,Hypervisor并不介入中断发送的过程,仅在虚拟机创建以及虚拟处理器调度时对映射关系进行管理,因此避免了在处理虚拟处理器间中断时Hypervisor的介入处理,减少了中断处理的延迟,提高了处理效率。对于IPI的处理广泛运用于进程调度管理、cache同步等场景,而这些场景的性能往往决定了系统整体的性能,因此本申请实施例提供的技术方案对虚拟处理器间中断处理效率的提高,能够大大提升系统整体的性能。
在本申请的一些实施例中,发送中断时,源物理处理器CPU_#X的LAPIC可以结合得到的目标物理CPU_#Y信息和APIC_ICR中的中断向量信息,将关于IPI中断的信息打包,通过系统总线(System Bus)或APIC总线实现数据的传输,从而完成IPI的透传。
在实际场景中,为了与x86构架中的已有技术方案实现兼容,以有利于本申请实施例中的方案在x86构架的实现,可以在几个处理节点开放Hypervisor的介入,从而以x86构架中实现IPI发送的方式完成虚拟处理器间中断的发送。
其中,在源物理处理器CPU_#X的中断控制器LAPIC根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息时,源物理处理器CPU_#X的LAPIC在感知到中断命令寄存器中写入中断向量信息和目标虚拟处理器的信息时,可以判断源物理处理器CPU_#X的运行模式。
若运行模式为非根(non-root)模式,其LAPIC根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息,采用本申请实施例提供的实现虚拟处理器间中断透传的方法实现后续处理。
若运行模式为根(root)模式,由Hypervisor接管按照现有方式对中断进行处理。Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
在源物理处理器的LAPIC根据所述映射表寄存器保存的映射表的基地址,访问所述映射表时,若LAPIC无法根据所述映射表寄存器保存的映射表的基地址访问所述映射表(例如APIC_VMT中的基地址无效),或无法查找到目标虚拟处理器的信息对应的目标物理处理器的信息(例如映射表中找不到对应项),此时也可以由Hypervisor接管按照现有方式对中断进行处理。由于此时源物理处理器运行于非根模式,需要退出到根模式,Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
此外,源物理处理器的LAPIC在根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器之前,可以先判断目标虚拟处理器的状态。
若目标虚拟处理器处于活跃(active)状态,则采用本申请实施例提供的实现虚拟处理器间中断透传的方法,由源物理处理器的LAPIC根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的LAPIC,以使所述目标物理处理器的LAPIC根据所述中断向量信息对所述中断作出响应。
若目标虚拟处理器不处于活跃状态,则由Hypervisor接管按照现有方式对中断进行处理。类似地,此时源物理处理器运行于非根模式,需要退出到根模式,Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
图3示出了本申请实施例提供的方案对于虚拟处理器间中断的处理方式的示意图,在正常情况下由源物理处理器的LAPIC直接进行路由,而在前述几种特定的情况下由Hypervisor接管,由此,实现于现有IPI处理方式的对接,因此提高了与x86构架的兼容性。该方案在处理如下:
步骤S301,在源虚拟处理器VCPU_#M需要向目标虚拟处理器VCPU_#N发送中断时,VCPU_#M对应的源物理处理器CPU_#X执行中断命令寄存器APIC_ICR和APIC_ICR2的写入动作,分别写入中断向量信息和目标虚拟处理器VCPU_#N的信息。
步骤S302,在CPU_#X的LAPIC感知到APIC_ICR和APIC_ICR2写入中断向量信息和目标虚拟处理器的信息时,判断CPU_#X的运行模式;若运行模式为root模式,由Hypervisor接管,执行步骤S309;若运行模式为non-root模式,则执行步骤S303。
步骤S303,CPU_#X的LAPIC根据所述映射表寄存器APIC_VMT保存的映射表VMT的基地址,尝试访问所述映射表VMT。
步骤S304,若基地址无效,导致CPU_#X的LAPIC无法访问VMT,则由Hypervisor接管,执行步骤S309。
步骤S305,若成功访问VMT,但无法在VMT中查找到VCPU_#N的信息对应的目标物理处理器的信息,则由Hypervisor接管,执行步骤S309。
步骤S306,成功访问VMT,并在VMT中查找到VCPU_#N的信息对应的目标物理处理器CPU_#Y的信息,则执行步骤S307。
步骤S307,判断VCPU_#N的状态,若处于active状态,则执行步骤S308;否则,执行步骤S309。
步骤S308,源物理处理器CPU_#X的LAPIC根据CPU_#Y的信息,将中断向量信息发送至CPU_#Y的LAPIC,以使CPU_#Y的LAPIC根据所述中断向量信息对所述中断作出响应。
步骤S309,Hypervisor根据VCPU_#N的信息,向CPU_#Y的LAPIC发送中断向量信息,以使CPU_#Y的LAPIC根据所述中断向量信息对所述中断作出响应。
基于同一发明构思,本申请实施例中还提供了实现虚拟处理器间中断透传的设备,所述设备对应的方法是前述实施例中的实现虚拟处理器间中断透传的方法,并且其解决问题的原理与该方法相似。
本申请实施例提供了一种实现虚拟处理器间中断透传的设备,该设备在实现中断透传时直接由源物理处理器的中断控制器利用映射关系对中断的发送进行路由,从而实现了虚拟处理器之间中断的透传,无需Hypervisor的介入,因此避免了有额外的开销,提高了处理效率。在实际场景中,该设备可以是任意能够运行虚拟机的设备,其具体实现可以是包括但不限于用户设备、如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。所述用户设备包括但不限于个人计算机、触控终端等。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图4示出了本申请实施例提供的实现虚拟处理器间中断透传的设备结构示意图,包括映射维护装置410、中断写入装置420、中断路由装置430和中断发送装置440。映射维护装置410用于存储虚拟处理器与物理处理器之间的映射关系。在实际的虚拟化场景中,是由Hypervisor负责虚拟机的创建和管理,Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,可以协调访问服务器上的所有物理设备和虚拟机。
由此,映射维护装置410还可以控制Hypervisor来维护虚拟处理器与物理处理器之间的映射关系,即在虚拟机创建时,Hypervisor创建所述虚拟机的虚拟处理器与物理处理器之间的映射关系,并在调度所述虚拟处理器时更新所述映射关系。在本申请的一种实施例中,虚拟处理器与物理处理器之间的映射关系可以通过映射表进行记录,记为VMT(VCPU Mapping Table),当Hypervisor执行虚拟处理器的调度动作时,会引起虚拟处理器与物理处理器之间的映射关系发生变化,因此需要在Hypervisor调度虚拟处理器时更新所述映射关系,以保证映射表中的映射关系正确。由本实施例中的映射表中可知如下的映射关系:虚拟处理器VCPU_#M对应物理处理器CPU_#X,虚拟处理器VCPU_#N对应物理处理器CPU_#Y。
虚拟处理器间中断透传对应的场景为虚拟机的某一个虚拟处理器需要向其它虚拟处理器发送IPI(Inter-Processor Interrupt,处理器间中断),其中,发送的虚拟处理器记为源虚拟处理器,接收的虚拟处理器即为目标虚拟处理器,所述目标虚拟处理器的数量可以是一个也可以是多个,源虚拟处理器对应的物理处理器即为源物理处理器,目标虚拟处理器对应的物理处理器为目标物理处理器。
中断写入装置420用于在源虚拟处理器VCPU_#M需要向目标虚拟处理器VCPU_#N发送IPI时,控制源虚拟处理器VCPU_#M对应的源物理处理器CPU_#X向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息。该写入动作不引起Hypervisor的介入,因此不同于现有技术中由源虚拟处理器执行向中断命令寄存器的写入动作而产生Trap,进而由Hypervisor捕获Trap介入IPI的发送过程。其中,中断命令寄存器包括了APIC_ICR(中断命令主寄存器)和APIC_ICR2(中断命令次寄存器),APIC_ICR中写入中断向量信息,用于实现中断服务的寻址,确定中断的具体内容,APIC_ICR2中写入目标虚拟处理器的信息,用于确定中断发送的目标。
中断路由装置430用于源物理处理器CPU_#X的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。其中,所述中断控制器为物理处理器的LAPIC(Local Advanced Programmable InterruptController,本地高级可编程中断控制器),该LAPIC能够根据APIC_ICR2中写入目标虚拟处理器的信息在映射关系中进行查询,从而获得目标虚拟处理器VCPU_#N的信息对应的目标物理处理器CPU_#Y的信息。
在本申请的一种实施例中,在LAPIC中可以增加一个映射表寄存器,该寄存器可以记为APIC_VMT(APIC VCPU Mapping Table)寄存器,用于保存记录有虚拟处理器与物理处理器之间的映射关系的映射表的基地址。由此,源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息时,可以先从映射表寄存器中读取信息,根据所述映射表寄存器保存的映射表的基地址,访问所述映射表,然后根据所述映射表中虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。
中断发送装置440用于在确定目标物理处理器CPU_#Y的信息之后,控制源物理处理器CPU_#X的LAPIC根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器CPU_#Y的中断控制器LAPIC,以使所述目标物理处理器CPU_#Y的LAPIC根据所述中断向量信息对所述中断作出响应,由此完成了虚拟处理器间中断的透传。在实现虚拟处理器间中断透传的过程中,Hypervisor并不介入中断发送的过程,仅在虚拟机创建以及虚拟处理器调度时对映射关系进行管理,因此避免了在处理虚拟处理器间中断时Hypervisor的介入处理,减少了中断处理的延迟,提高了处理效率。对于IPI的处理广泛运用于进程调度管理、cache同步等场景,而这些场景的性能往往决定了系统整体的性能,因此本申请实施例提供的技术方案对虚拟处理器间中断处理效率的提高,能够大大提升系统整体的性能。
在本申请的一些实施例中,发送中断时,源物理处理器CPU_#X的LAPIC可以结合得到的目标物理CPU_#Y信息和APIC_ICR中的中断向量信息,将关于IPI中断的信息打包,通过系统总线(System Bus)或APIC总线实现数据的传输,从而完成IPI的透传。
在实际场景中,为了与x86构架中的已有技术方案实现兼容,以有利于本申请实施例中的方案在x86构架的实现,可以在几个处理节点开放Hypervisor的介入,从而以x86构架中实现IPI发送的方式完成虚拟处理器间中断的发送。
其中,在源物理处理器CPU_#X的中断控制器LAPIC根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息时,源物理处理器CPU_#X的LAPIC在感知到中断命令寄存器中写入中断向量信息和目标虚拟处理器的信息时,可以判断源物理处理器CPU_#X的运行模式。
若运行模式为非根(non-root)模式,中断发送装置控制CPU_#X的LAPIC根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息,采用本申请实施例提供的实现虚拟处理器间中断透传的方法实现后续处理。
若运行模式为根(root)模式,由Hypervisor接管按照现有方式对中断进行处理。中断发送装置控制Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
在源物理处理器的LAPIC根据所述映射表寄存器保存的映射表的基地址,访问所述映射表时,若LAPIC无法根据所述映射表寄存器保存的映射表的基地址访问所述映射表(例如APIC_VMT中的基地址无效),或无法查找到目标虚拟处理器的信息对应的目标物理处理器的信息(例如映射表中找不到对应项),此时也可以由Hypervisor接管按照现有方式对中断进行处理。由于此时源物理处理器运行于非根模式,需要退出到根模式,中断发送装置控制Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
此外,源物理处理器的LAPIC在根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器之前,可以先判断目标虚拟处理器的状态。
若目标虚拟处理器处于活跃(active)状态,则采用本申请实施例提供的实现虚拟处理器间中断透传的方法,中断发送装置控制源物理处理器的LAPIC根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的LAPIC,以使所述目标物理处理器的LAPIC根据所述中断向量信息对所述中断作出响应。
若目标虚拟处理器不处于活跃状态,则由Hypervisor接管按照现有方式对中断进行处理。类似地,此时源物理处理器运行于非根模式,需要退出到根模式,中断发送装置控制Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
图3示出了本申请实施例提供的方案中,中断的实际处理方式的示意图,在正常情况下由源物理处理器的LAPIC直接进行路由,而在前述几种特定的情况下,由Hypervisor接管。由此,实现于现有IPI处理方式的对接,因此提高了与x86构架的兼容性。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一些实施例包括一个如图5所示的设备,该设备包括用于存储计算机程序指令的存储器510和用于执行计算机程序指令的多个物理处理器520,所述物理处理器在运行于非根模式时对应多个虚拟处理器,其中,当该计算机程序指令被所述物理处理器执行时,触发所述设备执行基于前述本申请的多个实施例的方法和/或技术方案。
此外,本申请的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (15)

1.一种实现虚拟处理器间中断透传的方法,其中,该方法包括:
在源虚拟处理器需要向目标虚拟处理器发送中断时,源虚拟处理器对应的源物理处理器向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息,其中,虚拟处理器和物理处理器之间存在映射关系;
源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息;
源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
2.根据权利要求1所述的方法,其中,该方法还包括:
在虚拟机创建时,Hypervisor创建所述虚拟机的虚拟处理器与物理处理器之间的映射关系,并在调度所述虚拟处理器时更新所述映射关系。
3.根据权利要求1所述的方法,其中,源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息,包括:
在源物理处理器的中断控制器感知到中断命令寄存器中写入中断向量信息和目标虚拟处理器的信息时,判断源物理处理器的运行模式;
若运行模式为非根模式,源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。
4.根据权利要求1所述的方法,其中,若运行模式为根模式,Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
5.根据权利要求1至4中任一项所述的方法,其中,该方法还包括:
通过映射表记录所述虚拟处理器与物理处理器之间的映射关系,以及通过映射表寄存器保存映射表的基地址;
源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息,包括:
源物理处理器的中断控制器根据所述映射表寄存器保存的映射表的基地址,访问所述映射表;
根据所述映射表中虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。
6.根据权利要求5所述的方法,其中,该方法还包括:
若源物理处理器的中断控制器无法根据所述映射表寄存器保存的映射表的基地址访问所述映射表,或无法查找到目标虚拟处理器的信息对应的目标物理处理器的信息,Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
7.根据权利要求1所述的方法,其中,源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应,包括:
若目标虚拟处理器处于活跃状态,源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应;
若目标虚拟处理器不处于活跃状态,Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
8.一种实现虚拟处理器间中断透传的设备,其中,所述设备包括:
映射维护装置,用于存储虚拟处理器与物理处理器之间的映射关系;
中断写入装置,用于在源虚拟处理器需要向目标虚拟处理器发送中断时,控制源虚拟处理器对应的源物理处理器向中断命令寄存器写入中断向量信息和目标虚拟处理器的信息;
中断路由装置,用于控制源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息;
中断发送装置,用于控制源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
9.根据权利要求8所述的设备,其中,所述映射维护装置,还用于在虚拟机创建时,控制Hypervisor创建所述虚拟机的虚拟处理器与物理处理器之间的映射关系,并在调度所述虚拟处理器时更新所述映射关系。
10.根据权利要求8所述的设备,其中,所述中断路由装置,用于在源物理处理器的中断控制器感知到中断命令寄存器中写入中断向量信息和目标虚拟处理器的信息时,判断源物理处理器的运行模式,若运行模式为非根模式,控制源物理处理器的中断控制器根据虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。
11.根据权利要求8所述的设备,其中,所述中断发送装置,还用于在运行模式为根模式时,控制Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
12.根据权利要求8至11中任一项所述的设备,其中,所述映射维护装置,还用于通过映射表记录所述虚拟处理器与物理处理器之间的映射关系,以及通过映射表寄存器保存映射表的基地址;
所述中断路由装置,用于源物理处理器的中断控制器根据所述映射表寄存器保存的映射表的基地址,访问所述映射表;以及根据所述映射表中虚拟处理器与物理处理器之间的映射关系,确定目标虚拟处理器的信息对应的目标物理处理器的信息。
13.根据权利要求12所述的设备,其中,所述中断发送装置,还用于在源物理处理器的中断控制器无法根据所述映射表寄存器保存的映射表的基地址访问所述映射表,或无法查找到目标虚拟处理器的信息对应的目标物理处理器的信息时,控制Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
14.根据权利要求8所述的设备,其中,所述中断发送装置,用于在目标虚拟处理器处于活跃状态时,控制源物理处理器的中断控制器根据目标物理处理器的信息,将中断向量信息发送至目标物理处理器的中断控制器,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应;以及
在目标虚拟处理器不处于活跃状态时,控制Hypervisor根据目标虚拟处理器的信息,向目标物理处理器的中断控制器发送中断向量信息,以使所述目标物理处理器的中断控制器根据所述中断向量信息对所述中断作出响应。
15.一种实现虚拟处理器间中断透传的设备,包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的多个物理处理器,所述物理处理器在运行于非根模式时对应多个虚拟处理器,其中,当该计算机程序指令被所述物理处理器执行时,触发所述设备执行权利要求1至7中任一项所述的方法。
CN201810614590.5A 2018-06-14 2018-06-14 一种实现虚拟处理器间中断透传的方法及设备 Active CN110609730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810614590.5A CN110609730B (zh) 2018-06-14 2018-06-14 一种实现虚拟处理器间中断透传的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810614590.5A CN110609730B (zh) 2018-06-14 2018-06-14 一种实现虚拟处理器间中断透传的方法及设备

Publications (2)

Publication Number Publication Date
CN110609730A CN110609730A (zh) 2019-12-24
CN110609730B true CN110609730B (zh) 2023-04-07

Family

ID=68887872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810614590.5A Active CN110609730B (zh) 2018-06-14 2018-06-14 一种实现虚拟处理器间中断透传的方法及设备

Country Status (1)

Country Link
CN (1) CN110609730B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783600A (zh) * 2020-07-01 2021-05-11 中兴通讯股份有限公司 中断处理方法、中断管理器、电子设备、计算机可读介质
CN111949371B (zh) * 2020-08-14 2022-07-22 苏州浪潮智能科技有限公司 一种命令信息传输方法、系统、装置及可读存储介质
CN114371907A (zh) * 2020-10-15 2022-04-19 华为技术有限公司 一种芯片系统、处理虚拟中断的方法及相应装置
CN112416536B (zh) * 2020-12-10 2023-08-18 成都海光集成电路设计有限公司 提取处理器执行上下文的方法及处理器
CN112965801A (zh) * 2021-03-18 2021-06-15 北京字节跳动网络技术有限公司 一种虚拟处理器通信方法及装置
CN113238802A (zh) * 2021-05-28 2021-08-10 上海阵量智能科技有限公司 中断分发器、数据处理芯片、中断分发及数据处理方法
CN113312155B (zh) * 2021-07-29 2022-02-01 阿里云计算有限公司 虚拟机创建方法、装置、设备、系统及计算机程序产品
CN114356812B (zh) * 2021-12-31 2022-08-26 元心信息科技集团有限公司 中断处理方法、装置、电子设备及计算机可读存储介质
CN116107697B (zh) * 2023-01-04 2023-10-31 芯动微电子科技(武汉)有限公司 一种不同操作系统之间互相通信的方法及系统
CN116521324B (zh) * 2023-06-30 2024-04-12 深圳中安辰鸿技术有限公司 中断虚拟化处理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4400769A (en) * 1979-02-21 1983-08-23 Fujitsu Limited Virtual machine system
CN101004726A (zh) * 2005-12-30 2007-07-25 英特尔公司 直接传送中断到虚拟处理器
CN104321749A (zh) * 2012-03-29 2015-01-28 英特尔公司 用于管理虚拟化环境中的中断的体系结构和方法
CN105335222A (zh) * 2014-06-04 2016-02-17 华为技术有限公司 中断信息的处理方法、虚拟机监控器及中断控制器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4400769A (en) * 1979-02-21 1983-08-23 Fujitsu Limited Virtual machine system
CN101004726A (zh) * 2005-12-30 2007-07-25 英特尔公司 直接传送中断到虚拟处理器
CN104321749A (zh) * 2012-03-29 2015-01-28 英特尔公司 用于管理虚拟化环境中的中断的体系结构和方法
CN105335222A (zh) * 2014-06-04 2016-02-17 华为技术有限公司 中断信息的处理方法、虚拟机监控器及中断控制器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
卢军等.第4章云计算与虚拟化.《云计算关键技术研究》.电子科技大学出版社,2015, *
本书编写组.第一篇主机虚拟化.《虚拟技术及其应用》.中国税务出版社,2008, *

Also Published As

Publication number Publication date
CN110609730A (zh) 2019-12-24

Similar Documents

Publication Publication Date Title
CN110609730B (zh) 一种实现虚拟处理器间中断透传的方法及设备
US9413683B2 (en) Managing resources in a distributed system using dynamic clusters
US10846145B2 (en) Enabling live migration of virtual machines with passthrough PCI devices
CN102467408B (zh) 一种虚拟机数据的访问方法和设备
US8230155B2 (en) Direct memory access filter for virtualized operating systems
US8151032B2 (en) Direct memory access filter for virtualized operating systems
US9052949B2 (en) Scheduling a processor to support efficient migration of a virtual machine
US8863123B2 (en) Apparatus and method for virtualizing input/output devices using shared memory in host-based mobile terminal virtualization environment
US4812981A (en) Memory management system improving the efficiency of fork operations
EP3244307A1 (en) Architecture and method for managing interrupts in a virtualized environment
CN107239319B (zh) 一种虚拟机的数据存储方法和装置
CN110046026B (zh) 云主机指定虚拟磁盘限速方法、计算设备及云平台
US9003094B2 (en) Optimistic interrupt affinity for devices
US11809888B2 (en) Virtual machine memory migration facilitated by persistent memory devices
US11188365B2 (en) Memory overcommit by speculative fault
US20130054861A1 (en) Pessimistic interrupt affinity for devices
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
US20220229688A1 (en) Virtualized i/o
US10684887B2 (en) Live migration of a virtualized compute accelerator workload
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
CN104104705A (zh) 分布式存储系统的接入方法和设备
CN110569105B (zh) 分布式虚拟机自适应内存一致性协议及其设计方法、终端
CN108196945B (zh) 一种核间通信方法、装置和虚拟化设备
CN115408103A (zh) 虚拟机热迁移方法、系统、设备及存储介质
US11900142B2 (en) Improving memory access handling for nested virtual machines

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