CN113934504A - 一种系统以及中断处理方法 - Google Patents
一种系统以及中断处理方法 Download PDFInfo
- Publication number
- CN113934504A CN113934504A CN202010604993.9A CN202010604993A CN113934504A CN 113934504 A CN113934504 A CN 113934504A CN 202010604993 A CN202010604993 A CN 202010604993A CN 113934504 A CN113934504 A CN 113934504A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- virtual
- physical
- identifier
- identification
- 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.)
- Pending
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
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- 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/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
本申请实施例公开了一种计算设备,应用于计算设备领域。其中,本申请将宿主机获取的虚拟中断映射至物理层的物理中断,并通过物理层将物理中断对应的虚拟中断标识传递至虚拟处理器,由于硬件层向虚拟处理器透传虚拟中断标识时,虚拟处理器不需要退出,降低了由于软件实现虚拟中断路由时由于虚拟处理器退出而导致的时延。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种系统以及中断处理方法。
背景技术
虚拟化技术通过将一台物理计算机增加特定的软件层次,包括宿主机层和虚拟计算机层,以实现对该物理计算机硬件的“虚拟”和“隔离”。每个软件层次包括不同的运行状态,例如用户态和内核态。软件层次和运行状态的多样化使得该物理计算机内部针对某些需求的处理环节增加,从而增加了这些需求的处理时延。
中断处理是计算设备的关键需求,现有计算设备的中断处理过程中,虚拟机监控器(virtual machine monitor,VMM)通过中断虚拟化技术为用户提供虚拟的中断控制器和虚拟的中断翻译服务。虚拟中断传递至虚拟处理器的过程是基于虚拟机监控器的软件来控制的,具体的,VMM可以通过将虚拟中断写入虚拟处理器对应的寄存器来实现。然而,现有的实现中,只有在虚拟机的虚拟CPU被调度到重新获得物理CPU的使用权时,VMM才可以将虚拟中断写入到该虚拟CPU对应的系统寄存器中,为了保证虚拟中断的及时写入,VMM会主动触发虚拟机发生虚拟机退出(VM-exit),并在虚拟机重新运行(VM-entry)时将虚拟中断写入到该虚拟CPU对应的系统寄存器中。在这种情况下,VMM每次进行虚拟中断的写入时都会导致虚拟处理器暂时停止运行,因此,会增加了虚拟中断处理的时延。
发明内容
第一方面,本申请提供了一种计算设备,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;其中,所述宿主机用于获取虚拟中断;虚拟机中的虚拟设备可以使能虚拟中断,虚拟设备可以是软件模拟的虚拟设备,例如软件模拟的串口等等;宿主机中的后端驱动(例如QEMU)可以捕获虚拟机使能虚拟中断的行为,并触发虚拟中断,该虚拟中断可以包括虚拟设备标识Device ID和虚拟中断向量标识Vector ID,其中,在中断资源初始化时,会为虚拟机的虚拟处理器分配虚拟设备标识Device ID和虚拟中断向量标识Vector ID,每个虚拟处理器唯一对应于一个虚拟设备标识Device ID以及多个虚拟中断向量标识VectorID;虚拟中断中的虚拟设备标识Device ID可以指示该虚拟中断是哪一个虚拟设备使能的,虚拟中断向量标识Vector ID可以指示具体是虚拟设备分配的多个虚拟中断中的哪一个虚拟中断;
后端驱动(例如QEMU)触发虚拟中断之后,可以将虚拟中断传递至VMM,相应的,宿主机200中的VMM可以获取虚拟中断;
根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;所述硬件层用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,将所述虚拟中断标识传递至所述目标虚拟处理器。
具体的,硬件层可以包括物理中断翻译服务(interrupt translation service,ITS)和物理中断控制器(generic interrupt controller,GIC),其中,物理ITS可以获取到物理中断,该物理中断用于中断虚拟CPU,物理ITS可以确定该物理中断对应于哪一个虚拟CPU,以及确定该物理中断对应的虚拟中断标识(可以指示具体是哪一个虚拟中断);物理GIC可以将虚拟中断标识发送至虚拟CPU。其中,物理ITS可以包括寄存器和运算电路,寄存器可以存储有物理中断和虚拟中断标识之间的对应关系(更具体的,寄存器存储有物理中断和虚拟中断标识之间的对应关系的基地址),以及物理中断和虚拟处理器标识之间的对应关系(更具体的,寄存器存储有物理中断和虚拟处理器标识之间的对应关系的基地址),运算电路可以从寄存器中获取到上述对应关系(运算电路可以从寄存器中获取到上述基地址,并基于基地址从内存中获取物理中断和虚拟中断标识之间的对应关系、以及物理中断和虚拟中断标识之间的对应关系),并确定接收到的物理中断标识对应于哪一个虚拟CPU,以及确定该物理中断标识对应的虚拟中断标识;GIC可以基于ARM架构的芯片中的运算电路来实现,物理GIC是一种先进的微控制器总线架构(advanced microcontroller busarchitecture,AMBA)和ARM架构兼容的系统片上(SoC)外设。它具有芯片上的AMBA总线接口。
由于硬件层向目标虚拟处理器透传虚拟中断标识时,不需要写入到虚拟处理器对应的系统寄存器中,再由虚拟处理器在重新投入运行时获取系统寄存器中的虚拟中断标识,而是直接传递至目标虚拟处理器(具体的,可以是将虚拟中断标识写到物理存储器中与虚拟处理器相对应的接口interface中,虚拟处理器可以基于上述接口获取虚拟中断标识),因此目标虚拟处理器不需要退出,降低了由于软件实现虚拟中断路由时由于虚拟处理器退出而导致的时延。
在一种可选的实现中,所述虚拟中断唯一对应于所述虚拟中断标识。
在一种可选的实现中,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
在一种可选的实现中,所述宿主机还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;示例性的,第一映射关系可以包括N个虚拟中断以及N个物理中断标识,其中,N个虚拟中断与N个物理中断标识存在一一对应的关系,N个虚拟中断中的每一个虚拟中断对应于一个物理中断标识,N个物理中断标识中的每一个物理中断标识对应于一个虚拟中断。
所述硬件层还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。示例性的,第一映射关系可以包括N个物理中断标识以及N个虚拟中断标识,其中,N个物理中断标识与N个虚拟中断标识存在一一对应的关系,N个物理中断标识中的每一个物理中断标识对应于一个虚拟中断标识,N个虚拟中断标识中的每一个虚拟中断标识对应于一个物理中断标识。
在一种可选的实现中,所述硬件层还用于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。示例性的,第一映射关系可以包括N个物理中断标识以及N个虚拟处理器标识,其中,N个物理中断标识中的每个物理中断标识对应于一个虚拟处理器标识,N个虚拟处理器标识中的每一个虚拟处理器标识对应于一个或多个物理中断标识。
为了可以将VMM获取到的虚拟中断通过硬件层透传至对应的虚拟处理器,且保证虚拟处理器可以接收到正确的虚拟中断标识,则需要在VMM侧预配置一个新的映射关系(下文中可以称之为第一映射关系),以及在硬件层适应性的配置一个新的映射关系(下文中可以称之为第二映射关系和第三映射关系),上述VMM侧配置的映射关系和硬件层配置的映射关系可以相互配置,以使得:VMM侧可以基于第一映射关系将获取到的虚拟中断(包括虚拟设备标识Device ID以及虚拟中断向量标识Vector ID)转换为硬件层侧(例如物理ITS)可以识别的物理中断标识(例如包括物理设备标识Device ID和物理中断向量标识VectorID);且硬件层侧可以基于预配置的第二映射关系,确定物理中断标识对应的虚拟中断标识,以及基于预配置的第三映射关系,确定物理中断标识对应的虚拟处理器标识,该虚拟处理器标识唯一对应于目标虚拟处理器。
为了保证虚拟处理器可以接收到正确的虚拟中断标识,上述硬件层基于预配置的第二映射关系确定出的虚拟中断标识应该与通过软件实现虚拟中断传递中,VMM确定出的虚拟中断对应的虚拟中断标识是一致的,且上述硬件层基于预配置的第三映射关系确定出的虚拟处理器标识应该与通过软件实现虚拟中断传递中,VMM确定出的虚拟中断对应的虚拟处理器标识是一致的。
在一种可选的实现中,所述硬件层还用于:根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
在一种实现中,宿主机可以将携带有所述物理中断标识的中断生成请求传递至所述硬件层中的物理ITS,物理ITS可以基于携带有所述物理中断标识的中断生成请求生成相应的物理中断。
在另一种可选的实现中,所述宿主机可以将所述物理中断标识写入位于硬件层的目标寄存器,以便所述目标寄存器生成物理中断。
本申请实施例中,宿主机可以将物理中断标识写入位于硬件层的目标寄存器,该目标寄存器具有可以通过软件的方式产生物理中断的能力,物理ITS可以从目标寄存器中获取到物理中断。
在一种可选的实现中,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述宿主机还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
在一种可选的实现中,所述硬件层还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;具体的,所述中断状态信息可以至少包括如下的一种:中断未决pending状态、中断优先级、中断使能状态;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
其中,中断未决pending信息可以指示虚拟中断处于未决pending/活跃active状态、中断优先级状态可以指示当前的虚拟中断在全部待处理虚拟中断中的优先级、中断使能状态可以表示该中断是否可以被传递至处理器,具体的,如果物理中断标识处于使能状态,且优先级状态以及未决pending状态满足条件,则可以将物理中断标识对应的虚拟中断标识传递至所述虚拟处理器。
在一种可选的实现中,所述宿主机还用于:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;所述中断状态信息可以至少包括如下的一种:中断未决pending状态、中断优先级、中断使能状态;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
第二方面,本申请提供了一种中断处理方法,所述方法应用于宿主机,所述宿主机运行在所述硬件层上的宿主机,所述方法包括:
获取虚拟中断;
根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层,以便所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器,并将所述虚拟中断标识传递至所述目标虚拟处理器。
在一种可选的实现中,所述虚拟中断唯一对应于所述虚拟中断标识。
在一种可选的实现中,所述根据所述虚拟中断,获取对应的物理中断标识,包括:
根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系。
在一种可选的实现中,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述根据所述虚拟中断,获取对应的物理中断标识,包括:
根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
在一种可选的实现中,所述方法还包括:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;其中,所述中断状态信息可以至少包括如下的一种:中断未决pending状态、中断优先级、中断使能状态;
将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
第三方面,本申请提供了一种中断处理方法,所述方法应用于计算设备,所述计算设备包括硬件层和运行在所述硬件层上的宿主机,所述方法包括:
所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述物理中断标识为所述宿主机根据虚拟中断获取并发送至所述硬件层的所述虚拟中断对应的物理中断标识,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;将所述虚拟中断标识传递至所述目标虚拟处理器。
在一种可选的实现中,所述虚拟中断唯一对应于所述虚拟中断标识。
在一种可选的实现中,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识,包括:
所述物理ITS根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述将所述虚拟中断标识传递至所述目标虚拟处理器,包括:
所述物理GIC将所述虚拟中断标识传递至所述目标虚拟处理器。
在一种可选的实现中,所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识,包括:所述硬件层根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
在一种可选的实现中,所述方法还包括:
根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
在一种可选的实现中,所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识,包括:所述硬件层根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
在一种可选的实现中,所述方法还包括:
所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
在一种可选的实现中,所述方法还包括:所述宿主机在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
第四方面,本申请提供了一种中断处理装置,所述装置包括:
虚拟中断处理单元,用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;
物理中断处理单元,用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,将所述虚拟中断标识传递至所述目标虚拟处理器。
其中,所述中断处理装置可以应用于计算设备中,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;所述中断处理装置包括部署在所述宿主机中的虚拟中断处理单元以及部署在所述硬件层中的物理中断处理单元。
在一种可选的实现中,所述虚拟中断唯一对应于所述虚拟中断标识。
在一种可选的实现中,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
在一种可选的实现中,所述虚拟中断处理单元还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;
所述物理中断处理单元还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
在一种可选的实现中,所述物理中断处理单元还用于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
在一种可选的实现中,所述物理中断处理单元还用于:根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
在一种可选的实现中,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述虚拟中断处理单元还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
在一种可选的实现中,所述物理中断处理单元还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
在一种可选的实现中,所述虚拟中断处理单元还用于:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
第五方面,本申请实施例提供了一种计算设备,计算设备包括通过总线连接的处理器以及存储器,处理器可以调用存储器中的代码以实现上述第二方面或第三方面中任一可选的中断处理方法。
本申请实施例提供了一种计算设备,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;其中,所述宿主机用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;所述硬件层用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,将所述虚拟中断标识传递至所述目标虚拟处理器。通过上述方式,将宿主机获取的虚拟中断映射至物理层的物理中断,并通过物理层将虚拟中断标识传递至虚拟处理器,由于硬件层向虚拟处理器透传虚拟中断标识时,虚拟处理器不需要退出,降低了由于软件实现虚拟中断路由时由于虚拟处理器退出而导致的时延。
附图说明
图1为本申请实施例提供的一种计算节点的架构示意;
图2a为根据本发明的实施例的计算设备;
图2b为据本发明的实施例的中断处理示意;
图3为根据本发明的实施例的中断处理示意;
图4为根据本发明的实施例的中断处理示意;
图5为根据本发明的实施例的中断处理示意;
图6为根据本发明的实施例的中断处理示意;
图7为根据本发明的实施例的中断处理示意;
图8为根据本发明的实施例的中断处理装置示意;
图9为根据本发明的实施例的计算设备示意。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
另外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。本申请中的术语“和/或”或字符“/”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,或A/B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
为了方便理解本发明实施例,首先以图1所示的计算节点100为例介绍本申请所涉及的虚拟化领域内一些基本概念。其中,计算节点100可以为本申请实施例中的计算设备。
虚拟化是将计算节点的硬件层中的硬件资源(例如处理器、存储器中的存储空间以及网络资源)虚拟化后共享给多个虚拟计算机使用。虚拟计算机为所有类型的计算设备中通过软件虚拟出来的运行环境的统称,该概念包括虚拟机、容器。
如图1所示,计算节点100可以包括硬件层、宿主机层和虚拟化层,虚拟化层包含两台虚拟机。硬件层包括两个处理器110、存储器120、物理中断管理单元160等硬件。在其他实施例中,处理器110的个数和虚拟机的个数还可以更多或更少。
虚拟机(virtual machine,VM):通过软件在一台物理计算机上模拟出的一台或者多台虚拟计算机。这些虚拟机运行在完全隔离的环境中,就像真正的计算机那样进行工作。虚拟机上可以安装客户操作系统(guest operating system,guest OS),客户操作系统上运行有一个或多个应用。虚拟机还可访问网络资源。对于在虚拟机中运行的应用而言,就像是在真正的计算机中工作。
虚拟处理器(如图1中110-v):在虚拟化技术下,以共享或者分片方式提供给虚拟计算机使用的物理处理单元的表示,例如虚拟CPU(virtual central processing unit,vCPU)。一台虚拟计算机可以有一个或多个虚拟处理器为其服务,当存在多个虚拟处理器时,通常有一个虚拟处理器为主虚拟处理器,其他为从虚拟处理器。
宿主机内部署有宿主机操作系统170和VMM 180,VMM 180在其他虚拟化架构中相当于hypervisor或其他类型的虚拟监控装置。VMM 180可以部署在宿主机操作系统170内部,也可以和宿主机操作系统170分开部署。VMM 180负责管理在其上运行的一台或多台虚拟机。
虚拟机(VM)包括虚拟硬件层、客户操作系统190以及多种应用。虚拟硬件层包含虚拟存储器(未在图中示出)、虚拟处理器110-v等虚拟硬件。如图1所示,本实施例包含两个虚拟机,每个虚拟机包含三个虚拟处理器110-v。虚拟处理器110-v是软硬件结合实现的,它的运行实际是物理核读取并运行软件程序实现的,例如一个物理核读取软件程序并在该物理核的硬件辅助虚拟化的特定模式下运行该软件程序以实现一个虚拟处理器110-v。也因此,虚拟处理器110-v需要被调度到某一个物理核上。
虚拟处理器110-v和物理核可以是绑定的关系,即一个虚拟处理器110-v固定在某个物理核上运行,不能被调度到其他物理核上运行,则该虚拟处理器为绑核;一个虚拟处理器110-v可以根据需要被调度到不同的物理核上运行,则该虚拟处理器为非绑核。
在图1中示出的虚拟处理器110-v的总个数为6,大于物理核的数量4,这种场景称之为物理处理器超分配。在物理处理器超分配的情况下,会存在多个虚拟处理器以时间分片方式或其他方式共享同一个物理核的情况,这种物理核叫做非独占核。当然非超分配的情况下也可能出现非独占核。一个物理核与一个虚拟处理器绑核且不被其他虚拟处理器共享,则该物理核是独占核。
应理解,虚拟机相当于一台独立的计算机,所以虚拟机执行动作也可以认为是虚拟处理器执行该动作,而虚拟处理器是软件实现的,所以虚拟处理器执行动作实际上是虚拟处理器所运行的物理处理器或物理核执行该动作。在本发明的多个实施例中,为遵循当下场景的技术表达习惯,会有选择地使用以上表述方式。
虚拟机内可以包含容器(container),容器相当于应用。在其他一些实施例中,虚拟化层由轻量级虚拟化技术实现,例如libOS190。一个libOS内通常包含一个应用,整个libOS是一个或多个库,和该应用链接成一个单地址空间镜像。本申请实施例通常以传统虚拟化技术实现的虚拟机为例,其他类型的虚拟化架构可参考虚拟机的实现。
宿主机(host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离等。在一些实现方式下,宿主机层包括宿主机操作系统和虚拟监控装置,例如虚拟机监视器(virtual machine monitor,VMM)或hypervisor,其中虚拟监控装置可部署在宿主机操作系统之内,也可以部署在宿主机操作系统之外。在另一些实现方式下,“宿主机层”还可以包括1个特权虚拟机(例如虚拟化架构Xen)。其中,虚拟硬件平台对其上运行的各个虚拟计算机提供各种硬件资源,如虚拟处理器、虚拟内存、虚拟磁盘、虚拟网卡等。虚拟计算机则运行在宿主机层为其准备的虚拟硬件平台上。本申请中有时将宿主机层简称为宿主机。
宿主机还可以包括后端驱动(例如开源的QEMU等软件)用于向虚拟机模拟带缓存的虚拟磁盘,包括解析用户设置的缓存配置和缓存策略,例如缓存大小、缓存类型和缓存优先级等,为虚拟机模拟一个符合用户配置的带虚拟机缓存的虚拟磁盘,提供前端驱动所需的第一物理地址的模拟,负责虚拟化管理中涉及到修改缓存属性的管理操作,例如发起缓存在线扩容、减容等任务。后端驱动可以捕获虚拟机使能虚拟中断的行为,并触发相应的虚拟中断,将虚拟中断传递给VMM。
应理解,图1中示出的宿主机中包括的QEMU仅为一种示意,实际应用中,宿主机还可以包括其他类型的后端驱动。
VMM 180作为虚拟监控装置,负责调度各个虚拟机VM的虚拟处理器110-v。例如,基于内核的虚拟机(kernel-based virtual machine,KVM)就是一种典型的VMM。
虚拟中断管理单元181部署在宿主机层。当VMM 180部署在宿主机操作系统170之上时,虚拟中断管理单元181可以部署在宿主机操作系统170内,也可以部署在VMM 180内,也可以部分部署在宿主机操作系统170内,部分部署在VMM 180内。当VMM 180部署在宿主机操作系统170内部时,虚拟中断管理单元181可以部署在VMM 180内,也可以部署在除VMM180之外的宿主机操作系统170内部,也可以部分部署在VMM 180内,部分部署在除VMM 180之外的宿主机操作系统170内部。
其中,虚拟中断处理单元181可以实现本申请实施例中中断处理方法中与宿主机相关的步骤。
硬件层:虚拟化环境运行的硬件平台。其中,硬件层可包括多种硬件,例如某物理计算机的硬件层可包括处理器和存储器,还可以包括中断控制器、网卡(networkinterface card,NIC)、输入/输出(input/output I/O)设备等。
处理器110,还可称为物理处理器。物理核代表处理器中最小处理单元,如图1所示,本实施例中处理器可具有两个物理核:核0和核1,以及多个寄存器。在其他一些实施例中,处理器包含的核的数量可以更多或更少,各个处理器包含的核的个数也可以不同。具有多个物理核的处理器被称为多核处理器。按照内核架构是否相同,可以分为同构多核与异构多核。虚拟处理器和物理核可以是绑定的关系,即一个虚拟处理器固定在某个物理核上运行,不能被调度到其他物理核上运行,则该虚拟处理器为绑核;一个虚拟处理器可以根据需要被调度到不同的物理核上运行,则该虚拟处理器为非绑核。
物理中断管理单元160负责收集物理中断请求(也可以称之为物理中断),并根据一定的规则将这些物理中断请求发送给各个处理器110或者透传至处理器上的虚拟处理器。需要说明的是,物理中断管理单元160可以执行本申请中中断处理方法与硬件层相关的部分步骤。
需要说明的是,中断,中断指的是软件或硬件产生的一种事件,中断包括虚拟中断和物理中断;其中,物理中断为硬件产生的一种事件,硬件将该事件发送到处理器,当处理器接收到该事件时,暂时停止当前程序的执行转而执行该事件对应的程序。硬件产生中断请求可能是硬件自己触发的,也可能是软件触发硬件产生的。计算机中的某些硬件(例如网卡、声卡、鼠标、硬盘等)能在没有处理器介入的情况下完成一定的工作,但是这些硬件还是需要定期中断处理器,让处理器为其做一些特定的工作。
在虚拟化环境中,VMM需要为虚拟机展现一个与物理中断架构类似的虚拟中断架构,在这种情况下,与物理中断相对应的是虚拟中断(也可以称之为虚拟化中断),虚拟中断可以由虚拟机中的前端驱动使能,并由宿主机中的后端驱动(例如QEMU)捕获并触发。
中断控制器:设置在触发中断请求的硬件和处理器之间,主要用于收集各个硬件产生的中断,并按照一定的优先级或其他规则发送给处理器。
中断亲缘性:指的是中断与处理该中断请求的处理主体(可以是物理处理主体或者是虚拟处理主体,例如物理核)的对应关系。中断控制器可根据该中断亲缘性将一个中断请求发送到该中断请求对应的一个或多个物理处理主体上。
图2a示出了根据本发明的实施例的计算设备。如图2a中示出的那样,所述计算设备包括宿主机200和硬件层203。
本申请实施例中,虚拟机中的虚拟设备可以使能虚拟中断,虚拟设备可以是软件模拟的虚拟设备,例如软件模拟的串口等等;宿主机中的后端驱动(例如QEMU)可以捕获虚拟机使能虚拟中断的行为,并触发虚拟中断,该虚拟中断可以包括虚拟设备标识Device ID和虚拟中断向量标识Vector ID,其中,在中断资源初始化时,会为虚拟机的虚拟处理器分配虚拟设备标识Device ID和虚拟中断向量标识Vector ID,每个虚拟处理器唯一对应于一个虚拟设备标识Device ID以及多个虚拟中断向量标识Vector ID;虚拟中断中的虚拟设备标识Device ID可以指示该虚拟中断是哪一个虚拟设备使能的,虚拟中断向量标识VectorID可以指示具体是虚拟设备分配的多个虚拟中断中的哪一个虚拟中断。
后端驱动(例如QEMU)触发虚拟中断之后,可以将虚拟中断传递至VMM,相应的,宿主机200中的VMM可以获取虚拟中断。
本申请实施例中,宿主机中的VMM可以获取到虚拟中断,并根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层203,具体可以参照示出了更多细节的图2b。
其中,为了可以将VMM获取到的虚拟中断通过硬件层透传至对应的虚拟处理器,需要将虚拟中断转换为硬件层可以识别并处理的物理中断。
具体的,硬件层可以包括物理中断翻译服务(interrupt translation service,ITS)和物理中断控制器(generic interrupt controller,GIC),其中,物理ITS可以获取到物理中断,该物理中断用于中断虚拟CPU,物理ITS可以确定该物理中断对应于哪一个虚拟CPU,以及确定该物理中断对应的虚拟中断标识(可以指示具体是哪一个虚拟中断);物理GIC可以将虚拟中断标识发送至虚拟CPU。
接下来描述,VMM如何将虚拟中断转换为硬件层可以识别并处理的物理中断,且可以保证虚拟处理器可以接收到正确的虚拟中断标识:
从软件实现的虚拟中断传递过程来看,VMM获取到虚拟中断(包括虚拟设备标识Device ID以及虚拟中断向量标识Vector ID)之后,可以基于软件ITS,确定该虚拟中断对应的虚拟中断标识以及虚拟处理器标识;需要说明的是,这里的虚拟中断标识可以不同于上述的虚拟设备标识Device ID以及虚拟中断向量标识Vector ID,以ARM架构标准规定的GICv4为例,虚拟中断标识为vINTID;虚拟处理器标识唯一指示目标虚拟处理器。
为了可以将VMM获取到的虚拟中断通过硬件层透传至对应的虚拟处理器,且保证虚拟处理器可以接收到正确的虚拟中断标识,则需要在VMM侧预配置一个新的映射关系(下文中可以称之为第一映射关系),以及在硬件层适应性的配置一个新的映射关系(下文中可以称之为第二映射关系和第三映射关系),上述VMM侧配置的映射关系和硬件层配置的映射关系可以相互配置,以使得:VMM侧可以基于第一映射关系将获取到的虚拟中断(包括虚拟设备标识Device ID以及虚拟中断向量标识Vector ID)转换为硬件层侧(例如物理ITS)可以识别的物理中断标识(例如包括物理设备标识Device ID和物理中断向量标识VectorID);且硬件层侧可以基于预配置的第二映射关系,确定物理中断标识对应的虚拟中断标识,以及基于预配置的第三映射关系,确定物理中断标识对应的虚拟处理器标识,该虚拟处理器标识唯一对应于目标虚拟处理器。
为了保证虚拟处理器可以接收到正确的虚拟中断标识,上述硬件层基于预配置的第二映射关系确定出的虚拟中断标识应该与通过软件实现虚拟中断传递中,VMM确定出的虚拟中断对应的虚拟中断标识是一致的,且上述硬件层基于预配置的第三映射关系确定出的虚拟处理器标识应该与通过软件实现虚拟中断传递中,VMM确定出的虚拟中断对应的虚拟处理器标识是一致的。即,通过软件实现虚拟中断传递中,VMM可以由A(虚拟中断)确定出B(虚拟中断标识)和C(虚拟处理器标识),则在将VMM获取到的虚拟中断通过硬件层透传至对应的虚拟处理器的方案中,VMM可以由A(虚拟中断)确定出D(物理中断标识),物理层可以由D(物理中断标识)确定出B(虚拟中断标识)和C(虚拟处理器标识)。
更具体的,为了实现上述过程,在VMM侧,可以预先为每个虚拟设备配置一个对应的物理设备的抽象,之所以称之为物理设备的抽象,是因为该物理设备可以并不实际存在,而仅仅在VMM处保存有物理设备所分配的中断资源,该中断资源可以包括物理中断标识,本实施例中,VMM可以预先存储有虚拟设备对应的多个虚拟中断中每个虚拟中断相对应的物理中断标识。示例性的,虚拟中断可以包括虚拟设备标识Device ID和虚拟中断向量标识Vector ID,则VMM可以获取到虚拟设备标识Device ID对应的物理设备标识Device ID,以及虚拟中断向量标识Vector ID对应的物理中断向量标识Vector ID。
在一种实现中,所述VMM可以维护有预配置的第一映射关系,该第一映射关系可以包括虚拟中断和物理中断标识的映射关系,VMM可以通过第一映射关系获取到虚拟中断对应的物理中断标识。更具体的,第一映射关系可以包括两个表格(表1和表2),其中表1包括多个虚拟设备标识Device ID,以及每个虚拟设备标识Device ID对应的指针,VMM可以通过该指针查找到该虚拟设备标识Device ID对应的表2,表2中可包括虚拟设备标识Device ID对应的多个虚拟中断向量标识Vector ID,以及每个虚拟中断向量标识Vector ID对应的物理中断向量标识Vector ID。通过上述方式,VMM可以确定虚拟中断对应的物理中断标识。
VMM获取虚拟中断对应的物理中断标识之后,宿主机可以将物理中断标识传递至硬件层。具体的,宿主机可以将物理中断标识传递至硬件层中的物理ITS。
所述硬件层中的物理ITS可以根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断标识用于唯一指示所述虚拟中断,虚拟处理器标识用于指示目标虚拟处理器;所述硬件层中的物理GIC可以将所述虚拟中断标识传递至所述虚拟处理器标识对应的目标虚拟处理器。
在一种可选的实现中,所述硬件层还可以根据所述物理中断标识,生成物理中断。
本申请实施例中,宿主机还可以将携带有所述物理中断标识的中断生成请求传递至所述硬件层,所述硬件层可以根据所述中断生成请求,生成物理中断。
在一种实现中,宿主机可以将携带有所述物理中断标识的中断生成请求传递至所述硬件层中的物理ITS,物理ITS可以基于携带有所述物理中断标识的中断生成请求生成相应的物理中断。
其中,
在另一种可选的实现中,所述宿主机可以将所述物理中断标识写入位于硬件层的目标寄存器,以便所述目标寄存器生成物理中断。
本申请实施例中,宿主机可以将物理中断标识写入位于硬件层的目标寄存器,该目标寄存器具有可以通过软件的方式产生物理中断的能力,物理ITS可以从目标寄存器中获取到物理中断。
本申请实施例中,所述硬件层可以根据所述物理中断标识以及预配置的第二映射关系,获取对应的虚拟中断标识。
在一种实现中,硬件层中的物理ITS可以维护有预配置的映射关系,该映射关系可以包括物理中断标识、虚拟中断标识以及虚拟处理器之间的映射关系。具体的,硬件层可以维护有第二映射关系,该第二映射关系包括物理中断标识和虚拟中断标识的映射关系,硬件层可以通过第二映射关系获取到物理中断标识对应的虚拟中断标识。硬件层可以维护有第三映射关系,该第三映射关系包括物理中断标识和虚拟处理器标识的映射关系,硬件层可以通过第三映射关系获取到物理中断标识对应的虚拟处理器标识,虚拟处理器标识用于指示目标虚拟处理器。
本申请实施例中,可以在预配置的过程中,在硬件层设置上述第二映射关系和第三映射关系,通过第二映射关系和第三映射关系,硬件层可以确定从VMM获取到的物理中断标识对应的虚拟处理器,以及确定物理中断标识对应的虚拟中断标识,该虚拟中断标识(例如vINTID)可以唯一指示虚拟中断,硬件层可以将虚拟中断标识传递到目标虚拟处理器。
其中,虚拟中断用于中断对应的目标虚拟处理器,为了保证中断路由的正确性,VMM维护的从虚拟中断到物理中断标识的映射关系,以及硬件层维护的物理中断标识到目标虚拟处理器的映射关系,可以相互配合,以使得最终硬件层确定的目标虚拟处理器就是虚拟中断用于中断的对应的目标虚拟处理器。且,除了保证路由终点(目标虚拟处理器)的正确性,也需要保证虚拟中断的内容的正确性,则硬件层通过映射物理中断标识得到的虚拟中断标识需要唯一指示虚拟中断,这样的话,目标虚拟处理器相当于接收到了正确的虚拟中断标识。通过上述方式,和现有通过VMM软件实现虚拟中断路由的方式相比,从虚拟处理器的角度来看是一致的。
本申请实施例中,在GICv4的规范中定义了物理ITS的路由表(上述实施例中的第二映射关系和第三映射关系),在硬件层上为虚拟中断多开了一条通道,该通道可以将虚拟中断由硬件层透传至目标虚拟处理器。由于硬件层向目标虚拟处理器透传虚拟中断标识时,不需要写入到虚拟处理器对应的系统寄存器中,再由虚拟处理器在重新投入运行时获取系统寄存器中的虚拟中断标识,而是直接传递至目标虚拟处理器,因此虚拟处理器不需要退出,降低了由于软件实现虚拟中断路由时由于虚拟处理器退出而导致的时延。
在一种实现中,所述硬件层还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;其中,所述中断状态信息可以至少包括如下的一种:中断未决pending信息、中断优先级状态、中断使能状态;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。其中,中断未决pending信息可以指示虚拟中断处于未决pending/活跃active状态、中断优先级状态可以指示当前的虚拟中断在全部待处理虚拟中断中的优先级、中断使能状态可以表示该中断是否可以被传递至处理器,具体的,如果物理中断标识处于使能状态,且优先级状态以及未决pending状态满足条件,则可以将物理中断标识对应的虚拟中断标识传递至所述虚拟处理器。
本申请实施例中,硬件层中的物理中断控制器可以获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器,所述中断状态信息至少包括如下的一种:中断未决pending信息、中断优先级状态、中断使能状态;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。具体的细节可以参照ARM或者其他标准中与物理层中物理终端控制器规定的相关的描述,这里不再赘述。
本申请实施例提供了一种计算设备,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;其中,所述宿主机用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;所述硬件层用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,将所述虚拟中断标识传递至所述目标虚拟处理器。通过上述方式,将宿主机获取的虚拟中断映射至物理层的物理中断,并通过物理层将虚拟中断标识传递至虚拟处理器,由于硬件层向虚拟处理器透传虚拟中断标识时,虚拟处理器不需要退出,降低了由于软件实现虚拟中断路由时由于虚拟处理器退出而导致的时延。
图3展示了一个更具体的实施例,如图3中示出的那样,VMM可以包括影子映射2021、影子设备2022,中断系统可以包括影子中断域2023,其中,影子映射2021和影子设备2022可以为虚拟机的每个虚拟设备提供一个“影子对象”的抽象。虚拟机内部的前端驱动程序(例如VirtIO驱动程序)会为虚拟设备分配若干个虚拟中断,影子映射2021和影子设备2022负责将虚拟设备的每个虚拟中断链接到主机上的一个物理中断。当虚拟机的前端驱动程序使能虚拟中断(即虚拟设备触发中断时)、调整虚拟中断路由(即需要修改虚拟中断和虚拟处理器之间的映射关系)、修改虚拟中断配置(即需要修改虚拟中断和虚拟中断标识之间的映射关系)等,VMM可以截获到这些操作,将虚拟机配置的中断信息(例如包括上述前端驱动程序使能虚拟中断相关的信息、调整虚拟中断路由相关的信息、修改虚拟中断配置相关的信息等)同步到相应的影子映射2021和影子设备2022中。具体的,影子映射2021可以包括虚拟设备注册的关键信息,如虚拟设备的设备标识、虚拟中断向量标识、虚拟处理器可以处理的的虚拟中断数量上限等,以及该设备的虚拟中断的虚拟路由信息,如虚拟中断标识、每个虚拟中断对应的虚拟处理器等。
影子设备2022可以为每个虚拟设备申请主机上的物理中断标识等物理中断资源。
影子中断域2023可以将物理中断标识传递至物理层的物理ITS。
如图3中示出的那样,硬件层的物理ITS可以包括物理中断路由表2041,硬件层可以包括物理中断控制器2042,其中,物理中断路由表2041可以为预配置的映射关系,该映射关系可以包括物理中断标识、虚拟中断标识以及虚拟处理器之间的映射关系。具体的,硬件层可以维护有第二映射关系,该第二映射关系可以为上述物理中断路由表2041的一部分,第二映射关系包括物理中断标识和虚拟中断标识的映射关系,硬件层可以通过第二映射关系获取到物理中断标识对应的虚拟中断标识。硬件层可以维护有第三映射关系,该第三映射关系可以为上述物理中断路由表2041的一部分,第三映射关系可以包括物理中断标识和虚拟处理器的映射关系,硬件层可以通过第三映射关系获取到物理中断标识对应的虚拟处理器。
物理中断控制器2042可以根据物理中断标识与中断状态信息的对应关系获取所述物理中断标识对应的中断状态信息,并基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
图4示出了比图3更多的细节,如图4中示出的那样,VMM可以将所述物理中断标识写入位于硬件层的目标寄存器2043,以便所述目标寄存器2043生成物理中断。该目标寄存器具有可以通过软件的方式生产物理中断,ITS可以从目标寄存器中获取到物理中断。
为了实现上述效果,需要预先配置VMM和硬件层,在一种实现中,虚拟机内部虚拟VirtIO设备驱动加载并初始化,相关操作被VMM截获,建立虚拟中断的软件路由表。虚拟机内部虚拟VirtIO设备驱动通过写外设部件互连标准(peripheral componentinterconnect,PCI)配置空间使能虚拟设备能力,这一写操作被VMM截获。VMM可以将虚拟设备的关键信息(虚拟设备的设备号、虚拟中断向量信息、虚拟处理器可以处理的虚拟中断数量上限等)按照协议注册到VMM。VMM为注册的虚拟设备创建一个影子对象,借助注册的虚拟设备信息,创建影子设备,对应申请占用物理主机设备号以及物理中断号资源等。其中,申请的物理中断号资源注册至影子中断域进行管理。VMM可以通过注册的虚拟设备,解析虚拟设备每个虚拟中断的路由信息,包括目标虚拟中断路由设备、虚拟中断号、目标虚拟处理器等信息。影子对象解析出虚拟中断路由关系,转译构建物理中断路由设备格式,借助影子设备对应物理中断,经由影子中断域管理,建立相应虚拟设备物理中断的物理设备中断路由表。VMM通过注册的虚拟设备,解析虚拟设备每个虚拟中断的路由信息,包括目标虚拟中断路由设备、虚拟中断号、目标虚拟处理器等信息。虚拟中断其他属性配置(使能/优先级/亲和性等),借助影子对象进行转译,经由影子中断域管理,配置/修改影子设备中断配置表。
在一种可选的实现中,所述宿主机还可以在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息至少包括如下的一种:中断未决pending信息、中断优先级状态、中断使能状态;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。其中,参照图5,图5为本申请实施例中一种计算设备的实例,如图5中示出的那样,中断状态信息可以存储在硬件层和VMM都可访问的区域501,则硬件层中的物理中断处理单元204可以获取到中断状态信息,并基于中断状态信息确定虚拟中断标识是否应传递至对应的虚拟处理器,且在虚拟机热迁移过程中,VMM 201也可以从所述硬件层获取所述物理中断标识对应的中断状态信息,并将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
下面结合图6描述一下本申请实施例提供的计算设备,如图6中示出的那样,本申请实施例提供的计算设备包括虚拟机、宿主机以及硬件层;其中,虚拟机中的虚拟设备可以触发中断,相应的前端驱动会使能虚拟中断,宿主机中的后端驱动可以捕获到前端驱动使能虚拟中断的行为,并触发虚拟中断,IRQFD子系统可以接收后端驱动触发的虚拟中断,并将虚拟中断传递至影子设备模块,影子设备模块可以确定该虚拟中断的物理中断标识,并由影子中断域将该物理中断标识通过物理ITS驱动传递至硬件层的物理ITS,物理ITS可以确定该物理中断标识对应的虚拟中断标识以及目标虚拟处理器,并由物理GIC将虚拟中断标识传递至目标虚拟处理器VCPU。下面结合图7描述一下本申请实施例提供的计算设备,如图7中示出的那样,本申请实施例提供的计算设备包括虚拟机、宿主机以及硬件层;其中,为了保证软硬件的中断状态一致性,VMM中的虚拟GIC需要获取到物理GIC中的中断状态信息,并更新对应的虚拟中断的中断状态信息;具体的,如图7中示出的那样,后端驱动可以触发进行状态同步的请求,请求中携带了需要同步的虚拟中断相关的信息,影子映射和影子对象可以对虚拟设备的虚拟中断信息进行译码,转换成对应的物理中断标识,并交由影子中断域,影子中断域将物理中断标识传递至物理层的物理ITS,物理GIC可以将物理中断标识相关的中断状态信息传递至宿主机中保存中断状态信息的表中(例如pending表),进而状态同步系统可以将物理中断标识相关的中断状态信息传递至虚拟GIC,以使得虚拟GIC更新虚拟中断的中断状态信息。
参照图8,图8为本申请实施例提供的一种中断处理装置800的结构示意,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;所述中断处理装置包括部署在所述宿主机中的虚拟中断处理单元801以及部署在所述硬件层中的物理中断处理单元802;其中,
所述虚拟中断处理单元801用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;
所述物理中断处理单元802用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,
将所述虚拟中断标识传递至所述目标虚拟处理器。
其中,虚拟中断处理单元801可以相当于图1中示出的虚拟中断管理单元181、以及图2a和图2b中的虚拟中断处理单元202,以及图3至图7中示出的影子映射、影子设备和影子中断域。
其中,物理中断处理单元801可以相当于图1中示出的物理中断管理单元160、以及图2a和图2b中的物理中断处理单元204,以及图3至图7中示出的物理ITS和物理中断控制器GIC。
在一种可选的实现中,所述虚拟中断唯一对应于所述虚拟中断标识。
在一种可选的实现中,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
在一种可选的实现中,所述虚拟中断处理单元801还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;
所述物理中断处理单元802还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
在一种可选的实现中,所述物理中断处理单元802还用于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
在一种可选的实现中,所述物理中断处理单元802还用于:根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
在一种可选的实现中,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述虚拟中断处理单元801还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
在一种可选的实现中,所述物理中断处理单元802还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器,所述中断状态信息至少包括如下的一种:中断未决pending状态、中断优先级、中断使能状态;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
在一种可选的实现中,所述虚拟中断处理单元801还用于:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;所述中断状态信息至少包括如下的一种:中断未决pending状态、中断优先级、中断使能状态;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
本申请还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质包含计算机指令用于执行中断处理方法,所述方法应用于宿主机中,所述宿主机位于计算设备,所述计算设备包括硬件层,所述非易失性计算机可读存储介质包括第一计算机指令,用于获取虚拟中断;
所述非易失性计算机可读存储介质包括第二计算机指令,用于根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层。
在一种实现中,第一计算机指令,用于根据所述虚拟中断以及预配置的第一映射关系,获取对应的物理中断标识。
在一种实现中,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
第一计算机指令,用于根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
在一种实现中,所述非易失性计算机可读存储介质还包括第三计算机指令,用于在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息至少包括如下的一种:未决pending信息、优先级信息、使能信息;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
本申请还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质包含计算机指令,当计算机指令被计算机执行时可以实现上述实施例中的中断处理方法。
参照图9,图9为本申请实施例提供的一种计算设备900的示意,如图9中示出的那样,计算设备900包括通过总线连接的处理器901以及存储器902,处理器901可以调用存储器902中的代码以实现上述实施例中的中断处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者其他网络设备等)执行本申请图2a实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (31)
1.一种计算设备,其特征在于,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;其中,
所述宿主机用于获取虚拟中断;
根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;
所述硬件层用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,
将所述虚拟中断标识传递至所述目标虚拟处理器。
2.根据权利要求1所述的计算设备,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
3.根据权利要求1或2所述的计算设备,其特征在于,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
4.根据权利要求1至3任一所述的计算设备,其特征在于,所述宿主机还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;
所述硬件层还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
5.根据权利要求1至4任一所述的计算设备,其特征在于,所述硬件层还用于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
6.根据权利要求1至5任一所述的计算设备,其特征在于,所述硬件层还用于:根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
7.根据权利要求1至6任一所述的计算设备,其特征在于,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述宿主机还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
8.根据权利要求1至7任一所述的计算设备,其特征在于,所述硬件层还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
9.根据权利要求1至8任一所述的计算设备,其特征在于,所述宿主机还用于:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
10.一种中断处理方法,其特征在于,所述方法应用于宿主机,所述宿主机运行在所述硬件层上的宿主机,所述方法包括:
获取虚拟中断;
根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层,以便所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器,并将所述虚拟中断标识传递至所述目标虚拟处理器。
11.根据权利要求10所述的方法,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
12.根据权利要求11或12所述的方法,其特征在于,所述根据所述虚拟中断,获取对应的物理中断标识,包括:
根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系。
13.根据权利要求10至12任一所述的方法,其特征在于,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述根据所述虚拟中断,获取对应的物理中断标识,包括:
根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
14.根据权利要求10至13任一所述的方法,其特征在于,所述方法还包括:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;
将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
15.一种中断处理方法,其特征在于,所述方法应用于计算设备,所述计算设备包括硬件层和运行在所述硬件层上的宿主机,所述方法包括:
所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述物理中断标识为所述宿主机根据虚拟中断获取并发送至所述硬件层的所述虚拟中断对应的物理中断标识,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;将所述虚拟中断标识传递至所述目标虚拟处理器。
16.根据权利要求15所述的方法,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
17.根据权利要求15或16所述的方法,其特征在于,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识,包括:
所述物理ITS根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述将所述虚拟中断标识传递至所述目标虚拟处理器,包括:
所述物理GIC将所述虚拟中断标识传递至所述目标虚拟处理器。
18.根据权利要求15至17任一所述的方法,其特征在于,
所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识,包括:所述硬件层根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
19.根据权利要求15至18任一所述的方法,其特征在于,所述方法还包括:
根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
20.根据权利要求15至19任一所述的方法,其特征在于,所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识,包括:所述硬件层根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
21.根据权利要求15至20任一所述的方法,其特征在于,所述方法还包括:
所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
22.一种中断处理装置,其特征在于,所述装置包括:
虚拟中断处理单元,用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;
物理中断处理单元,用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,
将所述虚拟中断标识传递至所述目标虚拟处理器。
23.根据权利要求22所述的装置,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
24.根据权利要求22或23所述的装置,其特征在于,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;
所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;
所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
25.根据权利要求22至24任一所述的装置,其特征在于,所述虚拟中断处理单元还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;
所述物理中断处理单元还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
26.根据权利要求22至25任一所述的装置,其特征在于,所述物理中断处理单元还用于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
27.根据权利要求22至26任一所述的装置,其特征在于,所述物理中断处理单元还用于:根据所述物理中断标识,生成物理中断;
根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
28.根据权利要求22至27任一所述的装置,其特征在于,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;
所述虚拟中断处理单元还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
29.根据权利要求22至28任一所述的装置,其特征在于,所述物理中断处理单元还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
30.根据权利要求22至29任一所述的装置,其特征在于,所述虚拟中断处理单元还用于:
在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
31.一种计算机可读介质,具有指令,该指令在由处理装置的一个或多个处理器执行时,可操作用于执行根据权利要求10-21中任一项所述的方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604993.9A CN113934504A (zh) | 2020-06-29 | 2020-06-29 | 一种系统以及中断处理方法 |
BR112022026693A BR112022026693A2 (pt) | 2020-06-29 | 2021-06-24 | Sistema e método de tratamento de interrupção |
PCT/CN2021/102011 WO2022001808A1 (zh) | 2020-06-29 | 2021-06-24 | 一种系统以及中断处理方法 |
JP2022580544A JP2023532077A (ja) | 2020-06-29 | 2021-06-24 | システム及び割り込み処理方法 |
EP21832328.5A EP4170492A4 (en) | 2020-06-29 | 2021-06-24 | SYSTEM AND INTERRUPTION PROCESSING METHOD |
KR1020237002968A KR20230025915A (ko) | 2020-06-29 | 2021-06-24 | 시스템 및 인터럽트 처리 방법 |
US18/146,943 US20230133273A1 (en) | 2020-06-29 | 2022-12-27 | System and interrupt handling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604993.9A CN113934504A (zh) | 2020-06-29 | 2020-06-29 | 一种系统以及中断处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934504A true CN113934504A (zh) | 2022-01-14 |
Family
ID=79273031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010604993.9A Pending CN113934504A (zh) | 2020-06-29 | 2020-06-29 | 一种系统以及中断处理方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20230133273A1 (zh) |
EP (1) | EP4170492A4 (zh) |
JP (1) | JP2023532077A (zh) |
KR (1) | KR20230025915A (zh) |
CN (1) | CN113934504A (zh) |
BR (1) | BR112022026693A2 (zh) |
WO (1) | WO2022001808A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521324A (zh) * | 2023-06-30 | 2023-08-01 | 深圳中安辰鸿技术有限公司 | 中断虚拟化处理方法、装置及电子设备 |
CN116954830A (zh) * | 2023-09-18 | 2023-10-27 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726657A (zh) * | 2022-03-21 | 2022-07-08 | 京东科技信息技术有限公司 | 中断管理和数据收发管理的方法、装置及智能网卡 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840839B2 (en) * | 2007-11-06 | 2010-11-23 | Vmware, Inc. | Storage handling for fault tolerance in virtual machines |
US9477505B2 (en) * | 2012-08-14 | 2016-10-25 | Oracle International Corporation | Method for reducing the overhead associated with a virtual machine exit when handling instructions related to descriptor tables |
CN103559087B (zh) * | 2013-10-31 | 2017-11-28 | 华为技术有限公司 | 一种虚拟处理器之间的中断的实现方法、相关装置和系统 |
KR101847518B1 (ko) * | 2014-06-20 | 2018-05-28 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 가상화 플랫폼에 의한 중단을 처리하는 및 관련 장치 |
-
2020
- 2020-06-29 CN CN202010604993.9A patent/CN113934504A/zh active Pending
-
2021
- 2021-06-24 EP EP21832328.5A patent/EP4170492A4/en active Pending
- 2021-06-24 JP JP2022580544A patent/JP2023532077A/ja active Pending
- 2021-06-24 KR KR1020237002968A patent/KR20230025915A/ko active Search and Examination
- 2021-06-24 WO PCT/CN2021/102011 patent/WO2022001808A1/zh unknown
- 2021-06-24 BR BR112022026693A patent/BR112022026693A2/pt unknown
-
2022
- 2022-12-27 US US18/146,943 patent/US20230133273A1/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116521324A (zh) * | 2023-06-30 | 2023-08-01 | 深圳中安辰鸿技术有限公司 | 中断虚拟化处理方法、装置及电子设备 |
CN116521324B (zh) * | 2023-06-30 | 2024-04-12 | 深圳中安辰鸿技术有限公司 | 中断虚拟化处理方法、装置及电子设备 |
CN116954830A (zh) * | 2023-09-18 | 2023-10-27 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
CN116954830B (zh) * | 2023-09-18 | 2023-12-26 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4170492A4 (en) | 2023-12-13 |
KR20230025915A (ko) | 2023-02-23 |
BR112022026693A2 (pt) | 2023-01-24 |
WO2022001808A1 (zh) | 2022-01-06 |
JP2023532077A (ja) | 2023-07-26 |
EP4170492A1 (en) | 2023-04-26 |
US20230133273A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836515B2 (en) | Multi-hypervisor virtual machines | |
EP3554025B1 (en) | Method for forwarding packet and physical host | |
US10185514B2 (en) | Virtual machine trigger | |
EP2831732B1 (en) | System and method for supporting live migration of virtual machines in an infiniband network | |
US10452580B2 (en) | Method and system for providing remote direct memory access to virtual machines | |
EP3985504B1 (en) | Virtual machine migration | |
CN110858157A (zh) | 在可扩展i/o虚拟化(s-iov)架构中的虚拟设备的实时迁移 | |
WO2022001808A1 (zh) | 一种系统以及中断处理方法 | |
CN103034524A (zh) | 半虚拟化的虚拟gpu | |
US9697024B2 (en) | Interrupt management method, and computer implementing the interrupt management method | |
JP5742387B2 (ja) | 情報処理システム、及びi/oスイッチ装置 | |
JP2006309754A (ja) | ファームウェアを介して仮想デバイスアクセスを提供する方法 | |
CN113312143B (zh) | 云计算系统、命令处理方法及虚拟化仿真装置 | |
KR101716715B1 (ko) | 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치 | |
JP2023545818A (ja) | チップ・システム、仮想割り込み処理方法および対応する装置 | |
WO2022143714A1 (zh) | 服务器系统、虚拟机创建方法及装置 | |
CN111213127A (zh) | 用于直接分配的设备的虚拟化操作 | |
CN111857943B (zh) | 数据处理的方法、装置与设备 | |
CN113626131A (zh) | 实现热迁移的方法、芯片、板卡和存储介质 | |
CN104468307A (zh) | 一种基于虚拟机的实时通信系统 | |
US8402191B2 (en) | Computing element virtualization | |
CN116436787B (zh) | 网络接口管理方法、使用方法、装置、设备和存储介质 | |
US20240111561A1 (en) | Requesting power management metrics for a parallel accelerated processor for a virtual function | |
CN114327741A (zh) | 服务器系统、容器设置方法及装置 | |
CN117874748A (zh) | 一种跨平台操作系统的混合安全虚拟化方法 |
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 |