CN116521324A - 中断虚拟化处理方法、装置及电子设备 - Google Patents
中断虚拟化处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116521324A CN116521324A CN202310788570.0A CN202310788570A CN116521324A CN 116521324 A CN116521324 A CN 116521324A CN 202310788570 A CN202310788570 A CN 202310788570A CN 116521324 A CN116521324 A CN 116521324A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- vtimer
- request signal
- message
- vcpu
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000013507 mapping Methods 0.000 claims abstract description 32
- 230000001960 triggered effect Effects 0.000 claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 238000006243 chemical reaction Methods 0.000 claims description 41
- 238000001914 filtration Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
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/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/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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Bus Control (AREA)
Abstract
本申请属于ARM硬件架构的虚拟化技术领域,公开了一种中断虚拟化处理方法、装置及电子设备。该方法通过获取vTimer计数器达到预设的阈值时生成的中断请求信号;将所述中断请求信号转换为Message消息,并将所述Message消息发送至SOC互联总线;监控所述SOC互联总线上的Message消息来检测vTimer中断的触发,通过预设中断软硬件接口接收触发的所述vTimer中断,并识别所述vTimer中断对应的中断号,获取所述中断号与vCPU的映射关系;根据所述中断号与vCPU的映射关系,将所述vTimer中断注入至对应的vCPU中,以使所述vCPU进行中断处理。本申请通过软件和硬件配合,能够将vTimer中断直接注入正在运行的虚拟机,不需要经过中间的VMM层,缩短了中断处理时的时延,提高了电子设备的系统性能。
Description
技术领域
本申请属于ARM硬件架构的虚拟化技术领域,具体涉及一种中断虚拟化处理方法、装置及电子设备。
背景技术
ARM硬件架构中对中断的处理流程为:由设备产生的中断和操作系统内核产生的软中断,经过中断控制器(General Interrupt Controller,GIC)汇集统一仲裁调度之后通知CPU;CPU保存当前程序的运行上下文,然后调用中断服务程序来处理该中断;中断服务程序通过读取相关寄存器识别出中断类型,接着执行相应的处理;中断请求执行完毕后,将通过读写相关中断控制寄存器清除中断;最后恢复被中断程序的执行上下文,继续执行被中断的程序。
在支持虚拟化的ARM平台系统中,Hypervisor作为系统软件可以为Guest OS(客户操作系统)提供Virtual PE(Virtual Process Element,虚拟过程元素),Virtual GIC(Virtual Generic Interrupt Controller,虚拟化环境中的中断控制器)等软件模拟的硬件,并在分配物理外设给Guest OS时维护实际物理设备和Virtual PE的映射关系,隔离多个Guest OS的执行环境。其中Guest OS和硬件设备Timer的交互过程中,无论是访问设备空间还是设备中断上报给Guest OS,均需要经过Hypervisor(虚拟机监控器)层,Hypervisor层根据维护的映射关系为Guest OS提供访问和中断服务,这就引入了CPU在Guest OS和Hypervisor层之间的频繁切换,存在频繁的保存和恢复执行上下文的动作。
在实现本申请实施例的过程中,发明人发现上述相关技术至少存在如下问题:浪费CPU时钟周期并且增加了CPU消耗;尤其是Guest OS的vTimer中断,由于vTimer中断并不是偶发的而是周期性的,上述切换方式带来的延迟可能对vTimer中断对应的时间精度要求比较高的业务有较大的影响。
发明内容
本申请实施例主要解决现有技术在处理vTimer中断时存在较大的时延的技术问题。
第一方面,本申请实施例提供了一种中断虚拟化处理方法,应用于电子设备,所述电子设备包括硬件层,所述硬件层设有转换设备和中断控制器,所述方法包括:获取vTimer计数器达到预设的阈值时生成的中断请求信号;通过所述转换设备将所述中断请求信号转换为Message消息,并将所述Message消息发送至SOC互联总线;所述中断控制器通过监控所述SOC 互联总线上的 Message消息来检测 vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系;根据所述中断号与vCPU的映射关系,将所述vTimer 中断注入至对应的vCPU中,以使所述vCPU进行中断处理。
可选地,所述中断控制器通过监控所述SOC 互联总线上的 Message消息来检测vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系,包括:所述中断控制器监控所述SOC互联总线上的Message消息,并根据所述Message消息获取所述中断请求信号;所述中断控制器将所述中断请求信号与预存的映射关系进行匹配,并根据所述映射关系获取所述中断请求信号对应的中断号,以及所述中断号与对应的vCPU的绑定关系。
可选地,所述通过所述转换设备将所述中断请求信号转换为Message消息,包括:当确定所述中断请求信号属于电平触发的类型时,根据预设控制机制管理和维护所述中断请求信号对应的中断请求位的状态;当所述中断请求位的状态为pending状态时,对所述中断请求信号对应的中断进行过滤;将所述进行过滤的中断传递至消息有限状态机,并根据所述消息有限状态机维护所述中断请求信号的生命周期,其中,维护所述中断请求信号的生命周期包括:将所述中断请求信号的当前状态和中断请求的属性进行状态转换,并根据转换后的状态设置相应的Message消息。
可选地,所述对所述中断请求信号对应的中断进行过滤,包括:在所述转换设备的寄存器预先配置中断请求信号对应的地址和数据,所述数据包括所述中断请求信号对应的vTimer 中断的中断号,以及所述vTimer 中断所属的vCPU标识号;根据所述寄存器中存储的中断号,过滤掉与所述寄存器中存储的中断号不相匹配的中断。
可选地,在执行所述通过预设中断软硬件接口接收触发的所述vTimer 中断的步骤之前,所述方法还包括:配置所述预设中断软硬件接口;所述配置所述预设中断软硬件接口包括:设置设备ITS的GITS_VSGI接口的保留位中的一部分作为新的sync、clr、Vtimer内容使用;修改设备ITS的vSGI Command;定义vTimer 中断的状态管理表对应的内存使用空间。
可选地,所述方法还包括:当所述中断控制器通过预设中断软硬件接口接收到所述vTimer 中断时,判断所述vTimer 中断对应的识别信息中是否包含所述转换设备的标识信息,如果不包含所述转换设备的标识信息,则不处理所述vTimer 中断。
第二方面,本申请实施例提供了一种中断虚拟化处理装置,应用于电子设备,所述电子设备包括硬件层,所述硬件层设有转换设备和中断控制器,所述装置包括:中断消息获取模块,用于获取vTimer计数器达到预设的阈值时生成的中断请求信号;中断消息类型转换模块,用于通过所述转换设备将所述中断请求信号转换为Message消息,并将所述Message消息发送至SOC互联总线;中断识别模块,用于控制所述中断控制器通过监控所述SOC 互联总线上的 Message消息来检测 vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系;中断处理模块,用于根据所述中断号与vCPU的映射关系,将所述vTimer中断注入至对应的vCPU中,以使所述vCPU进行中断处理。
可选地,所述中断识别模块具体用于:控制所述中断控制器监控所述SOC互联总线上的Message消息,并根据所述Message消息获取所述中断请求信号;控制所述中断控制器将所述中断请求信号与预存的映射关系进行匹配,并根据所述映射关系获取所述中断请求信号对应的中断号,以及所述中断号与对应的vCPU的绑定关系。
可选地,所述中断消息类型转换模块具体用于:当确定所述中断请求信号属于电平触发的类型时,根据预设控制机制管理和维护所述中断请求信号对应的中断请求位的状态;当所述中断请求位的状态为pending状态时,对所述中断请求信号对应的中断进行过滤;将所述进行过滤的中断传递至消息有限状态机,并根据所述消息有限状态机维护所述中断请求信号的生命周期,其中,维护所述中断请求信号的生命周期包括:将所述中断请求信号的当前状态和中断请求的属性进行状态转换,并根据转换后的状态设置相应的Message消息。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括至少一个处理器和存储器,存储器与处理器耦合,存储器用于存储指令或程序,当指令或程序被所述至少一个处理器执行时,使所述至少一个处理器执行如上所述的中断虚拟化处理方法。
在本申请实施例中,将外设wired类型中断转换成互联总线Message的硬件设备,该硬件设备定义了wired类型中断的生命周期所拥有的状态,以及这些状态的转换关系和对应的触发事件。该硬件设备可以用于满足芯片系统上所有外设的wired类型中断接入互联总线,可以有效减少系统中断走线,有利于后端布局布线。然后,将wired类型的电平中断接入中断虚拟化硬件系统的设计方案,该方案包括wired中断接入芯片互联总线的方式,在总线上发送的消息类型(比如set/clr/sync message),消息在中断控制器硬件ITS中的处理行为,以及该中断的配置和状态在memory中的格式及其软件配置命令。上述给出了在虚拟机创建时候的需要添加的配置流程,以及虚拟机切换和退出时需要添加的配置流程,通过软件和硬件配合,从而能够将vTimer中断直接注入正在运行中的虚拟机,不需要经过中间的VMM层,缩短了中断处理时的时延,提高了计算设备的系统性能。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的中断虚拟化处理流程图;
图3是本申请实施例提供的对所述硬件层进行改进的实现框图;
图4是本申请实施例提供的基于转换设备MessageGenerator进行类型转换的过程示意图;
图5是本申请实施例提供的修改设备ITS的GITS_VSGI接口的示意图;
图6是本申请实施例提供的修改设备ITS的vSGI Command的示意图;
图7是本申请实施例提供的中断虚拟化处理的方法的流程图;
图8是本申请实施例提供的中断虚拟化处理装置的结构示意图;
图9是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、详细的描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
下面所描述的本申请各个实施例中所涉及到的技术特征彼此之间未构成冲突可以相互组合。
虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或可以以不同于流程图所示出顺序执行各步骤。
在虚拟化环境中,Hypervisor与虚拟机之间通过陷入和陷出来进行通信和控制。陷入是指虚拟机中的外部事件或指令触发了Hypervisor的响应,使得Hypervisor暂停当前虚拟机的运行,并转而执行自己的代码。当Hypervisor完成操作后,它会将控制权返回给虚拟机,虚拟机继续执行。陷出是指Hypervisor将控制权从自己转移回虚拟机的过程。当Hypervisor完成操作后,会向虚拟机发出一个陷出指令,使得虚拟机重新开始执行自己的指令。通过陷入和陷出可以实现虚拟机和Hypervisor之间的通信和控制,从而实现虚拟化环境中资源的隔离和分配。相关技术在处理中断时,比如Guest OS Timer中断上报必须经过Hypervisor的陷入和陷出,具体地,虚拟机接收到中断,将该中断传递给Hypervisor,Hypervisor会在虚拟机的上下文中保存中断的状态,并决定是否需要将中断传递给GuestOS。如果Hypervisor决定将中断传递给Guest OS,它会将控制权转移到Guest OS,并在Guest OS的上下文中处理中断。在这个过程中,需要进行两次上下文切换,将控制权从Hypervisor切换到Guest OS,然后再从Guest OS切换回Hypervisor。另外,如果Hypervisor决定自己处理中断,它也需要在自己的上下文中处理中断,并在必要时通知Guest OS,这也会引起一次上下文切换。这些上下文切换会带来额外的时延,从而影响系统的性能。
鉴于此,本申请实施例提供了一种中断虚拟化处理方法、装置及计算设备,主要解决相关技术的Guest OS Timer中断上报必须经过Hypervisor的陷入和陷出导致的延迟问题。为解决该问题,本申请实施例的方案通过软件和硬件的结合,提供了一种虚拟Timer中断(即vTimer 中断)直接注入正在运行的Guest OS,不需要引起Guest OS与Hypervisor之间的来回切换,即不产生Hypervisor的陷入和陷出。
需要注意的是,本申请实施例描述集中在虚拟Timer中断直接注入正在运行的虚拟机。当虚拟机没有运行时,虚拟定时器中断请求信号会被中断控制器保存在内存中,而不会被立即处理。中断控制器会根据具体的配置场景触发doorbell中断,通知VMM此时vCPU有一个中断请求等待被处理。VMM会在合适的时候调度该vCPU来处理这个中断请求,并恢复虚拟机的运行,这样,虚拟机就可以在VMM的管理下实现对其内部中断的处理和管理。其中,doorbell中断是一种用于快速通知处理器和操作系统有待处理的事件或中断请求的机制。
具体地,请参阅图1,图1是本申请实施例提供的一种应用场景的示意图,所述中断虚拟化处理方法和装置可应用于该应用场景下。应用场景包括硬件层、宿主机层和虚拟化层,虚拟化层包含虚拟机,硬件层包含处理器、存储器、中断控制器(GIC)等硬件。在其他实施例中,处理器的个数和虚拟机的个数还可以更多,而不限于图1所示。本申请实施例提供的中断虚拟化处理方法可具体应用于所述硬件层。
虚拟机是通过软件在一台物理计算机上模拟出的一台或多台虚拟计算机。每一台虚拟计算机都可以运行一个独立的操作系统和应用程序,就像它们在独立的物理计算机上运行一样,并且它们之间是相互隔离的。该软件即Hypervisor,Hypervisor可以将物理计算机的资源(如CPU、内存、存储等)划分为多个虚拟机,并为每个虚拟机提供一个虚拟的计算机环境,包括虚拟CPU、虚拟内存、虚拟存储等。虚拟机上可以安装客户操作系统(GuestOperating System,Guest OS),客户操作系统上可运行一个或多个应用。虚拟机还可以访问网络资源。虚拟机还包括虚拟处理器(virtual Central Processing Unit,vCPU),vCPU是以共享或分片的方式提供给虚拟机使用的物理处理单元的表示。它提供了一个虚拟的CPU环境,使得虚拟机可以运行独立的操作系统和应用程序,就像它们在独立的物理计算机上运行一样。一台虚拟机可以包括一个或多个vCPU,当包括多个vCPU时,通常其中一个vCPU作为主虚拟处理器,其他vCPU为从虚拟处理器。
宿主机层作为管理层,用于完成硬件资源的分配、管理,为虚拟机呈现虚拟硬件平台,实现虚拟机的调度和隔离等。宿主机层包括宿主机操作系统和虚拟监控装置(比如虚拟机监视器(Virtual Machine Monitor,VMM)或Hypervisor),虚拟监控装置可部署于宿主机操作系统内,也可以部署于宿主机操作系统之外。在本申请中也会将宿主机层简称为宿主机。应理解,图1所示的宿主机仅作为一种示例,宿主机还可以包括后端驱动等其他模块。
VMM作为虚拟监控装置,负责调度各个虚拟机的vCPU。例如,基于内核的虚拟机(Kernel-based Virtual Machine,KVM)就是一种典型的VMM。虚拟中断管理单元部署于宿主机层,当VMM部署于宿主机操作系统之上时,虚拟中断管理单元可部署于宿主机操作系统内,也可部署于VMM内,也可部分部署于宿主机操作系统内,部分部署于VMM内。在本申请实施例中,下文的中断虚拟化处理方法不涉及该虚拟中断管理单元,而是直接绕过了VMM。Host OS是指在宿主机上运行的操作系统,负责管理宿主机和为虚拟机提供资源。根据虚拟化技术的不同,可以将虚拟化系统分为两种类型:Type 1虚拟化和Type 2虚拟化。Type 1虚拟化是指在物理计算机上直接运行虚拟机管理程序(Hypervisor),它们的操作系统和应用程序直接运行在VMM上。Type 2虚拟化是指在一个常规操作系统上运行VMM,它们的操作系统和应用程序运行在VMM中的虚拟机上。在Type 2虚拟化中,宿主机上运行的操作系统就是图1所示的Host OS,它负责管理虚拟化环境和为虚拟机提供资源。需要说明的是,图1仅作为示例,还可以以其他虚拟化系统类型呈现。
硬件层是虚拟化环境运行的平台。硬件层可包括多种硬件,例如物理计算机的硬件层可包括处理器和存储器,还可以包括中断控制器(GIC)、网卡、输入/输出设备等。处理器,可以称为物理处理器,处理器包括内核和寄存器,内核是处理器中最小处理单元,图1示出了1个内核,还可以具有多个内核,具有多个内核的处理器被称为多核处理器。vCPU与内核可以是绑定的关系,即一个虚拟处理器固定在某个内核上运行,不能被调度到其他内核上运行。一个vCPU也可以根据需要被调度到不同的内核上运行。
在本申请实施例中,中断指的是vTimer触发的虚拟中断。vTimer是一种在虚拟机环境中模拟计时器的技术,它可以为虚拟机提供一个虚拟的定时器,用于周期性地向虚拟机发送中断信号。vTimer触发的虚拟中断是指当vTimer到达预定的时间点时,会向虚拟机发送一个中断信号,通知虚拟机进行相应的处理。vTimer触发的虚拟中断可以用于许多不同的场景,例如实现虚拟机的定时器、实现虚拟机的任务调度、实现虚拟机的网络通信等。虚拟机可以利用vTimer触发的虚拟中断来执行一些必要的操作,例如更新虚拟机的状态、切换虚拟机的上下文、执行一些后台任务等。
vTimer触发的虚拟中断通常是通过虚拟化层或Hypervisor实现。Hypervisor可以模拟一个虚拟计时器,并在虚拟机的虚拟化环境中周期性地向虚拟机发送中断信号。虚拟机可以通过中断处理程序来响应这些中断信号,并执行相应的操作。然而,通过虚拟化层或Hypervisor处理该中断,会引起Guest OS与Hypervisor之间的来回切换,造成时延问题。因此,本申请实施例将该中断绕过VMM,即绕过中间的宿主机层,而只经过硬件层就可以传达到对应的vCPU,以此解决时延问题。
基于图1所示的应用场景,主要通过改变所述硬件层,使硬件层的硬件能够识别该中断的ID,并知晓该ID与vCPU的绑定关系,从而使该中断只经过硬件层就可以传送到对应的vCPU。
请参阅图2,图2是本申请实施例提供的中断虚拟化处理流程图。如图2所示,最底层对应于上述图1中的硬件层,其包括vTimer(虚拟定时器,Virtual Timer)、GIC(即中断控制器)和CPU。中间层对应于上述图1中的宿主机层,其包括vITS(Virtual InterruptTranslation Service,虚拟中断翻译服务)和vGIC(virtual Generic InterruptController,虚拟通用中断控制器),它们都是在虚拟化环境下使用的中断控制器。本申请实施例的中断虚拟化处理方法跳过了该宿主机层对应的VMM层。图2的最上层对应于上述图1中的虚拟机。
如图2所示,中断虚拟化的处理流程是:vTimer虚拟中断被GIC识别,GIC识别出中断请求后将该虚拟中断的状态信息保存到对应的CPU的中断状态寄存器,硬件层的CPU会定期检查中断状态寄存器,如果发现该中断请求,则会将该中断请求的控制权给到Guest OS,GIC通知vCPU,之后vCPU对该中断请求对应的虚拟中断进行处理。
vTimer即虚拟定时器(Virtual Timer),在本申请实施例中,vTimer作为硬件层的硬件设备来实现,其实现方式会因不同的硬件平台和架构而有所不同。本申请实施例提供的是一种面向ARM架构的vTimer的中断虚拟化处理方法,在Linux内核中,ARM体系结构的vTimer中断的中断号是27。其中该中断号是用来标识中断源的,当中断源触发中断时,中断控制器会根据中断号来确定中断处理程序的执行。在使用中断时,需要根据具体的中断号来编写相应的中断处理程序,以完成对中断源的响应和处理。
在ARM体系结构中,常见的中断类型有以下几种:
LPI(Low Peripheral Interrupt):低功耗中断,用于唤醒系统从低功耗状态中恢复。比如,中断ID为16比特时,中断号分配从8192到65535,共计57344个中断号可供使用。
SGI(Software Generated Interrupt):软件产生的中断,由操作系统或应用程序产生,可以用于进程间通信、系统调度等功能。中断号分配从0到15,共计16个中断号。SGI中断是一种边沿触发中断,即中断请求信号有脉冲。
PPI(Private Peripheral Interrupt):私有外设中断,由外设设备产生,只能被特定的CPU核处理。中断号分配从16到31,其中一些中断号被用于处理特定的外设中断,例如本申请的vTimer中断。PPI中断是一种电平触发的中断,即当中断请求信号保持在高电平或低电平时触发。
SPI(Shared Peripheral Interrupt):共享外设中断,由外设设备产生,可以被多个CPU核处理。SPI中断的中断号通常从32开始,一直到中断控制器所支持的最大中断号。在GIC中,SPI中断号的分配通常是动态的,即根据外设中断的需求和优先级进行分配和管理。
在虚拟化环境下,虚拟机需要使用中断来完成对物理资源的访问和管理,因此需要对物理机中的中断类型进行虚拟化。在本申请实施例中,采用vLPI、vSGI和vPPI对物理机中的LPI、SGI和PPI进行虚拟化,它们的使用方式和物理机中的中断类型类似。vLPI是在虚拟化环境下的低功耗中断类型,与LPI相对应。vSGI是在虚拟化环境下的软件产生的中断类型,与SGI相对应。vLPI和vSGI是目前虚拟化环境下的软件产生的中断类型,鉴于本申请的vTimer中断属于PPI中断,基于当前中断协议的思路,本申请实施例提供了一种vPPI中断,该vPPI是在虚拟化环境下的私有外设中断类型,与PPI相对应。
本申请的vTimer中断属于PPI类型,其中断号为27,vPPI的中断号被映射到宿主机的中断号30(需要说明的是,该中断号30作为一种示例,还可以是其他中断号)上,然后再由宿主机转发到虚拟机对应的中断号上。因此,本申请实施例将vTimer中断(中断号为27)配置到宿主机(中断号为30)。当vTimer中断触发时,MessageGenerator设备和中断控制器根据上述配置检测到中断号对应的中断请求,并将该中断请求转发到虚拟机对应的中断号上。当虚拟机接收到中断请求后,会将中断传递到虚拟机中运行的Guest OS中进行处理。在Guest OS中,可以通过注册中断处理程序的方式来处理vTimer中断,并实现虚拟机的时间管理和调度功能。由此,即能够实现虚拟Timer中断直接注入正在运行的Guest OS,不需要引起Guest OS与 Hypervisor 之间的上下文切换。
需要说明的是,上述虚拟Timer中断直接注入正在运行的Guest OS,不会修改Guest OS的内核代码,这是商用虚拟化技术的一个必要条件,因为商用虚拟化技术需要确保Guest OS的稳定性和安全性,同时尽可能减少对Guest OS的干扰。
为实现上述目的,本申请实施例在虚拟机刚创建时,由Hypervisor调用ITS(Interrupt Translate Service)驱动接口将上述映射关系通知给硬件设备ITS进行管理维护。在虚拟化环境中,Hypervisor通常需要通过ITS驱动接口来与硬件设备的ITS进行通信,以建立和维护虚拟机与物理设备之间的中断映射关系。ITS驱动接口通常是由硬件设备厂商提供的一组API或SDK,用于实现与硬件设备ITS的交互和通信。硬件设备ITS是用于在虚拟化环境中实现虚拟机和物理设备之间的中断传递和管理的设备。ITS通常是一种硬件中断控制器,可以将虚拟机中的中断请求映射到物理设备对应的中断号上,并将中断请求传递到物理设备上进行处理。具体地,请参阅图3,图3是本申请实施例对上述硬件层进行改进的实现框图,其核心思想是改变 vTimer中断与vCPU的映射关系的维护位置。在所述硬件层主要涉及两个方面的改进。
首先,可以知道的,硬件设备vTimer中断是wired电平触发的类型,不能直接接入ARM平台中断虚拟化的硬件系统,它需要经过Hypervisor处理后转发至ARM架构的芯片(物理CPU)去处理,然而本申请需要绕过Hypervisor,因此,本申请实施例增加了一个转换设备MessageGenerator(即图3所示的Msg_Gen),通过用SOC互联总线上的Message来模拟vTimer电平中断的行为。即通过转换设备MessageGenerator实现了vTimer中断对应的类型的转换,从而确保vTimer中断能够直接接入ARM平台中断虚拟化的硬件系统。
其中,转换设备MessageGenerator是一个用于模拟vTimer电平中断的设备,它能够在SOC互联总线上生成中断请求信号,并将其传递给其他设备。具体而言,它可以执行以下操作:当vTimer计数器达到预设的阈值时,生成一个中断请求信号,监听该中断请求信号的状态;将中断请求信号对应的电平中断转换为Message消息,并将该Message消息发送到SOC互联总线上;中断控制器能够通过监控SOC互联总线上的Message消息来检测vTimer中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系;中断控制器再根据该映射关系通知vCPU,vCPU对该vTimer中断作出处理。
在实现中,转换设备MessageGenerator可以是一个独立的硬件设备。它可以通过SOC总线的接口与其他设备(比如中断控制器)进行通信,并使用SOC总线协议来传递中断请求信号,这样,中断控制器就可以通过监听SOC总线上的消息来捕获中断请求信号,并执行相应的中断处理程序。其中,该中断请求信号被该转换设备MessageGenerator转换为Message消息,所述中断控制器具体是捕获所述Message消息来获得vTimer 中断。
具体地,如图4所示,图4是本申请实施例提供的基于转换设备MessageGenerator进行类型转换的过程示意图。其中,Message Configuration registers模块为该转换设备的消息配置寄存器组,用于存储wire线中断的屏蔽和中断触发类型,以及存储发送Message时的总线地址和总线数据,其包括消息地址、消息数据、屏蔽、触发类型和命令同步等。中断源在系统中断控制器(即图3所示的GIC和ITS)的状态维护过程中,可以用中断控制器内部寄存器来维护中断的状态和配置,也可以用memory(指用来存储中断相关信息的内存)做中断状态和配置存储载体。针对使用memory做中断状态维护的场景,Sync寄存器用于指示中断Clear的请求是否完成memory中pending状态的清除。具体而言,当中断控制器接收到中断请求并将其记录到memory中时,会将相应的中断标志位设置为pending状态。如果此时中断控制器接收到Clear请求,则会将相应的中断标志位清除,以取消该中断的触发。但由于memory的访问速度相对较慢,中断Clear的请求可能需要一定时间才能完成,因此需要使用Sync寄存器来指示Clear操作的完成情况。Sync寄存器是一个特殊的寄存器,用于记录中断Clear操作的状态。
Set/clear pending bit control(即中断配置/清除控制寄存器)用于该转换设备对异步wire类型线的处理。处理完之后的信号经过mask过滤,之后进入Message FSM(Finite State Machine)进行生命周期维护。其中,生命周期维护具体是维护所述中断请求信号的生命周期,包括:将所述中断请求信号的当前状态和中断请求的属性进行状态转换,并根据转换后的状态设置相应的Message消息。
其中,Message FSM是指消息有限状态机。在通信系统中,消息通常需要经过多个状态才能完成传输和处理,例如消息的发送、接收、解析和响应等过程。为了管理这些状态,本申请实施例使用消息有限状态机来描述和控制消息的状态转换过程。在消息有限状态机中,每个状态都具有相应的状态转换条件和动作。
例如,SET是消息置位状态,ACTIVE是激活状态,Deactive是消息失活状态,IDLE是空闲状态。当中断控制器接收到一个中断请求时,将进入SET状态,在SET状态下,该转换设备会将相应的中断标志位设置为pending状态,并发送Message消息给互联总线上的中断控制器后进入ACTIVE状态。在ACTIVE状态下,该转换设备会检测中断请求是否无效,若无效,则再次发送Message消息到中断控制器之后进入Deactive状态。在Deactive状态下,等待总线响应之后进入IDLE状态。
通过使用消息有限状态机,可以有效地管理消息的状态转换和处理过程,从而提高通信系统的可靠性和性能。
在本申请实施例中,Message FSM主要完成线中断生命周期维护的任务。其状态转换如下:
1.中断源触发,状态从IDLE转到SET;
2.处于SET状态的中断,申请Message Master Interface使用权,配合寄存器ms_address(寄存器在内存中的物理地址)和ms_data(寄存器的数据)中的数据生成一个SETMessage请求,当该请求发送到系统互联总线上时,状态从SET转到ACTIVATE状态;
3.此时,如果中断是边沿触发类型,当系统互联总线响应以后,就可以从ACTIVATE状态转成IDLE,结束在该模块的生命管理周期;如果中断是电平触发类型的,当系统互联总线响应以后,状态保持不变;
4.当线电平中断(deassert)以后,意味着中断信号的电平从高电平变为了低电平,即中断信号结束,处于ACTIVATE状态的中断再次利用寄存器里面的ms_address和ms_data向互联总线发Clear Message,此后状态转变成Deactive;
5.系统总线响应之后,Deactive状态转成IDLE,结束在该模块的生命管理周期。
在本申请实施例中,通过Message FSM对中断请求的生命周期进行管理和控制,以确保中断的正确触发和处理,从而提高中断的可靠性和可维护性,同时降低系统的复杂度和故障率。
上述解决了硬件设备vTimer中断由于是wired电平触发的类型而不能直接接入ARM平台中断虚拟化的硬件系统的这个问题。另外,由于当前ARM最新GIC specification(中断控制器规格)不支持硬件设备ITS接收vTimer的MSI中断(中断号为27),可以利用当前规格支持的vSGI中断软硬件接口,vSGI中断软硬件接口是本申请实施例的预设中断软硬件接口,对涉及到vSGI的内容进行扩展,具体是通过修改设备ITS的GITS_VSGI接口和vSGICommand等来实现。
其中,如图5所示,图5是本申请实施例提供的修改设备ITS的GITS_VSGI接口的示意图。详见附图,从31位开始,修改对应的寄存器中保留位的设置,使用保留位中的一部分作为新的sync、clr、Vtimer内容使用。其中,sync是指MessageGenerator发送过来的消息是否需要完成同步操作,确保消息对应的硬件操作彻底完成。clr是指是否清除之前接收的vTimer 中断请求。需要说明的是,不一定就必须从31位开始,RES0中的其他位也行。
在GITS_VSGI接口中,sync、clr和Vtimer的内容被用于描述虚拟软件生成的中断的属性和参数。具体来说,sync用于描述中断的硬件操作是否需要同步,用于确保操作彻底完成,clr用于描述中断的清除操作,Vtimer用于描述是否属于为vTimer 的中断请求。通过这些参数的设置,可以实现对虚拟软件生成的中断的精确控制,确保中断的正确触发和处理。因此,通过修改设备ITS的GITS_VSGI接口的内容可以实现对vTimer中断的处理。
在ITS 处理带sync的Clear 请求时,其在返回系统互联总线的Message响应时,需要保证这个Clear请求完成对中断状态彻底清除,尤其是中断状态保存在memory中的场景。为此还需要修改设备ITS的vSGI Command。在ITS处理带sync的Clear请求时,确保中断状态彻底清除,特别是中断状态保存在内存中的场景,是非常重要的。为了实现这一目标,可以考虑修改设备ITS的vSGI Command,添加相应的控制信息和参数,以确保Clear请求的正确处理。具体来说,可以在设备ITS的vSGI Command中添加一个新的参数(或命令),用于指示该命令是对该vTimer 中断请求的属性和vCPU的映射关系进行配置。例如,如图6所示,修改发送至中断控制器的命令的命令格式,将Vtimer包含的信息(中断相关信息)写入命令格式的保留位RES0中,详见附图,从63位开始。需要说明的是,不一定就必须从63位开始,RES0中的其他位也行。
在一些实施例中,同时需要定义vTimer中断的状态管理表内存使用空间, vSGI使用的空间为0x3F0~0x3FC, 可以定义0x300作为vTimer中断使用内存空间。
在一些实施例中,在系统软件层面,内核只是需要在vSGI相关调用接口支持vTimer这个中断ID,比如在创建虚拟机时配置vTimer中断,只需要根据vSGI command中自定义的vTimer bit的状态来确定,并不用为此开发专门的软件调用接口。其中vTimer bit是一个控制位,用于指示中断请求是否需要启动一个虚拟定时器。比如当vTimer bit被置为1时,表示中断请求需要启动一个虚拟定时器来控制中断的触发时间。其中虚拟机初始化流程中,Hypervisor为MessageGenerator配置相关寄存器:
虚拟机初始化时和调度虚拟机运行时,把Message Generate里面的配置寄存器当作虚拟机上下文的一部分,为vTimer增加的配置流程为:
(1)配置Message Generate里面ms_addr和ms_data, 其中ms_addr是系统中断控制器ITS的ITS_VSGI寄存器地址,ms_data为中断ID, 值为30. Level寄存器配置为电平触发。
(2)调用ITS的驱动,使用vSGI command驱动根据定义的命令格式对vTimer的中断属性进行配置。
虚拟机在退出时对vTimer增加的配置流程:
(1)虚拟机退出时,需要配置Message Generate的sync寄存为1,之后需查询sync是否变化为0,保证如果有clear message的情况下,确保该消息对memory的操作完成。
如图7所示,本申请实施例提供的中断虚拟化处理方法的流程包括:
S101、在创建Virtual Machine 的时候,Hypervisor给Guest OS 创建VirtualCPU等结构体,通过调用ITS驱动接口,将硬件设备中断和vCPU的映射关系等信息配置给中断控制器维护,初始化vTimer相关的运行上下文,并建立此vTimer上下文和vCPU之间的映射关系。
S102、Hypervisor 进行vCPU调度,将vCPU调度到物理CPU上执行,同时将vTimer上下文配置到时钟设备vTimer上,并配置MessageGenerator的寄存器指示发送消息的地址和数据,数据中含有vTimer中断ID和当前所属的vCPU ID,使其开始运行。
S103、虚拟机正常运行,此时虚拟时钟设备vTimer计数满产生中断。
S104、vTimer产生的中断经过MessageGenerator设备转成Message中断消息,该中断消息被中断控制器ITS接收处理之后通知GIC,GIC识别当前中断消息并通知正在运行的vCPU,将此中断消息发往CPU的中断处理接口(virtual interrupt interface,VII)。
S105、vCPU 通过该中断处理接口接收到中断,Guest OS的中断服务程序执行该中断。
其中,Virtual Interrupt Interface(VII)是一种虚拟化技术,用于在虚拟化环境中提供中断处理的支持。VII为CPU和客户操作系统之间提供了一个统一的中断处理接口,使得CPU通过该中断处理接口将中断消息传递给客户操作系统中的中断处理程序。
在本申请实施例中,可以将外设wired类型中断转换成互联总线Message的硬件设备,该设备定义了wired类型中断的生命周期所拥有的状态,以及这些状态的转换关系和对应的触发事件。该设备可以用于满足芯片系统上所有外设的wired类型中断接入互联总线,可以有效减少系统中断走线,有利于后端布局布线。然后,可以将wired类型的电平中断接入中断虚拟化硬件系统的设计方案,该方案包括wired中断接入芯片互联总线的方式,在总线上发送的消息类型(set/clr/sync message,即中断置位/清除/同步消息),消息在中断控制器硬件ITS中的处理行为,以及该中断的配置和状态在memory中的格式及其软件配置命令。上述给出了在虚拟机创建时候的需要添加的配置流程,以及虚拟机切换和退出时需要添加的配置流程,通过软件和硬件配合,从而能够将vTimer中断直接注入正在运行的虚拟机,不需要经过中间的VMM层,缩短了中断处理时的时延,提高了计算设备的系统性能。
需要说明的是,本申请上述实施例是针对vTimer中断,在其他一些实施例中,上述方案的思路可以拓展到任意一种类似vTimer的外部设备上。
在一些实施例中,为了避免中断被恶意软件注入,保证系统安全,本申请的中断虚拟化处理方法还包括:Msg_Gen模块发出的总线操作,带有唯一的识别信息。当设备ITS从GITS_VSGI接口收到总线操作并识别出是vTimer中断, 需要判断该总线操作所携带的识别信息是否标识Msg_Gen(即是否包含所述转换设备的标识信息),如果未标识Msg_Gen,则该总线操作应该被忽略掉,即不处理该vTimer中断。其中,所述转换设备的标识信息用于标识经过转换设备处理的中断请求信号,如果该中断请求信号不经过转换设备转换为Message消息,则不处理该中断请求信号,认为是恶意软件注入的中断请求信号。
如图8所示,图8是本申请实施例提供的中断虚拟化处理装置的结构示意图。所述中断虚拟化处理装置200包括:
中断消息获取模块201,用于获取vTimer计数器达到预设的阈值时生成的中断请求信号;
中断消息类型转换模块202,用于通过所述转换设备将所述中断请求信号转换为Message消息,并将所述Message消息发送至SOC互联总线;
中断识别模块203,用于控制所述中断控制器通过监控所述SOC 互联总线上的Message消息来检测 vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,并获取所述中断号与vCPU的映射关系;
中断处理模块204,用于控制所述中断控制器通过预设中断软硬件接口接收所述vTimer 中断,并根据所述中断号与vCPU的映射关系,将所述vTimer 中断注入至对应的vCPU中,以使所述vCPU进行中断处理。
需要说明的是,本申请实施例提供的中断虚拟化处理装置200与上述实施例具有相同的发明构思和有益效果,详细地可参考上述实施例。
图9示出了电子设备的一种硬件结构。请参照图9,电子设备100包括处理器10、存储器20、中断控制器30和vTimer计数器40,处理器10、存储器20、中断控制器30和vTimer计数器40通过线路连接,在图9所示的实施例中,处理器10、存储器20、中断控制器30和vTimer计数器40通过总线实现彼此之间的通信连接。
存储器20用于存储软件程序、计算机可执行程序指令等。存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。
存储器20可以是可存储静态信息和指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM) ,也可以是可存储信息和指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(e1ectrica11y erasab1e programmab1eread-on1y memory,EEPROM),具体此处不做限定。示例性的,前述存储器20可以为双倍速率同步动态随机存储器DDRSDRAM (简称DDR)。该存储器20可以独立存在,但与处理器10相连。可选的,该存储器20也可以和处理器10集成于一体。例如,集成于一个或多个芯片之内。
在一些实施例中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器10利用各种接口和线路连接整个电子设备100的各个部分,通过运行或执行存储在存储器20内的软件程序,以及调用存储在存储器20内的数据,执行电子设备的各种功能和处理数据,例如实现本申请任一实施例所述的方法。
处理器10可以是中央处理器(centra1 processing unit,CPU)等。
处理器10可以是一个单核处理器,也可以是一个多核处理器。此外,处理器10可以指一个或多个装置、电路和/或用于处理数据(例如计算机程序指令)的处理核。该处理器10可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个片上系统(system-on-a-chip,SoC),或者也可以作为一个特殊应用集成电路(app1icationspecific integrated circuit,ASIC)的内置处理器集成在所述ASIC当中,该集成了处理器的ASIC可以单独封装或者也可以跟其他电路封装在一起。
中断控制器30和vTimer计数器40具体可以参考上述实施例,其分别与处理器10和存储器20配合,实现本申请实施例的中断虚拟化处理方法。
本申请实施例提供的电子设备具体可以是计算机设备、服务器等其他具有数据交互功能的电子装置。
本申请实施例还提供了一种计算机存储介质,计算机存储介质存储有指令或程序,该指令或程序被一个或多个处理器执行,例如图9中的一个处理器10,可使得上述一个或多个处理器可执行上述任意方法实施例中的中断虚拟化处理方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,该计算机程序包括程序或指令,当程序或指令被电子设备执行时,使电子设备执行上述任一实施例的中断虚拟化处理方法。
需要说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种中断虚拟化处理方法,应用于电子设备,所述电子设备包括硬件层,所述硬件层设有转换设备和中断控制器,其特征在于,所述方法包括:
获取vTimer计数器达到预设的阈值时生成的中断请求信号;
通过所述转换设备将所述中断请求信号转换为Message消息,并将所述Message消息发送至SOC互联总线;
所述中断控制器通过监控所述SOC 互联总线上的 Message消息来检测 vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系;
根据所述中断号与vCPU的映射关系,将所述vTimer 中断注入至对应的vCPU中,以使所述vCPU进行中断处理。
2.根据权利要求1所述的方法,其特征在于,所述中断控制器通过监控所述SOC 互联总线上的 Message消息来检测 vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系,包括:
所述中断控制器监控所述SOC互联总线上的Message消息,并根据所述Message消息获取所述中断请求信号;
所述中断控制器将所述中断请求信号与预存的映射关系进行匹配,并根据所述映射关系获取所述中断请求信号对应的中断号,以及所述中断号与对应的vCPU的绑定关系。
3.根据权利要求1所述的方法,其特征在于,所述通过所述转换设备将所述中断请求信号转换为Message消息,包括:
当确定所述中断请求信号属于电平触发的类型时,根据预设控制机制管理和维护所述中断请求信号对应的中断请求位的状态;
当所述中断请求位的状态为pending状态时,对所述中断请求信号对应的中断进行过滤;
将所述进行过滤的中断传递至消息有限状态机,并根据所述消息有限状态机维护所述中断请求信号的生命周期,其中,维护所述中断请求信号的生命周期包括:将所述中断请求信号的当前状态和中断请求的属性进行状态转换,并根据转换后的状态设置相应的Message消息。
4.根据权利要求3所述的方法,其特征在于,所述对所述中断请求信号对应的中断进行过滤,包括:
在所述转换设备的寄存器预先配置中断请求信号对应的地址和数据,所述数据包括所述中断请求信号对应的vTimer 中断的中断号,以及所述vTimer 中断所属的vCPU标识号;
根据所述寄存器中存储的中断号,过滤掉与所述寄存器中存储的中断号不相匹配的中断。
5.根据权利要求1至4任一项所述的方法,其特征在于,在执行所述通过预设中断软硬件接口接收触发的所述vTimer 中断的步骤之前,所述方法还包括:配置所述预设中断软硬件接口;
所述配置所述预设中断软硬件接口包括:
设置设备ITS的GITS_VSGI接口的保留位中的一部分作为新的sync、clr、Vtimer内容使用;
修改设备ITS的vSGI Command;
定义vTimer 中断的状态管理表对应的内存使用空间。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述中断控制器通过预设中断软硬件接口接收到所述vTimer 中断时,判断所述vTimer 中断对应的识别信息中是否包含所述转换设备的标识信息,如果不包含所述转换设备的标识信息,则不处理所述vTimer 中断。
7.一种中断虚拟化处理装置,应用于电子设备,所述电子设备包括硬件层,所述硬件层设有转换设备和中断控制器,其特征在于,所述装置包括:
中断消息获取模块,用于获取vTimer计数器达到预设的阈值时生成的中断请求信号;
中断消息类型转换模块,用于通过所述转换设备将所述中断请求信号转换为Message消息,并将所述Message消息发送至SOC互联总线;
中断识别模块,用于控制所述中断控制器通过监控所述SOC 互联总线上的 Message消息来检测 vTimer 中断的触发,通过预设中断软硬件接口接收触发的所述vTimer 中断,并识别所述vTimer 中断对应的中断号,获取所述中断号与vCPU的映射关系;
中断处理模块,用于根据所述中断号与vCPU的映射关系,将所述vTimer 中断注入至对应的vCPU中,以使所述vCPU进行中断处理。
8.根据权利要求7所述的装置,其特征在于,所述中断识别模块具体用于:
控制所述中断控制器监控所述SOC互联总线上的Message消息,并根据所述Message消息获取所述中断请求信号;
控制所述中断控制器将所述中断请求信号与预存的映射关系进行匹配,并根据所述映射关系获取所述中断请求信号对应的中断号,以及所述中断号与对应的vCPU的绑定关系。
9.根据权利要求7所述的装置,其特征在于,所述中断消息类型转换模块具体用于:
当确定所述中断请求信号属于电平触发的类型时,根据预设控制机制管理和维护所述中断请求信号对应的中断请求位的状态;
当所述中断请求位的状态为pending状态时,对所述中断请求信号对应的中断进行过滤;
将所述进行过滤的中断传递至消息有限状态机,并根据所述消息有限状态机维护所述中断请求信号的生命周期,其中,维护所述中断请求信号的生命周期包括:将所述中断请求信号的当前状态和中断请求的属性进行状态转换,并根据转换后的状态设置相应的Message消息。
10.一种电子设备,其特征在于,包括:
至少一个处理器和存储器;
所述存储器与所述处理器耦合,所述存储器用于存储指令或程序,当所述指令或程序被所述至少一个处理器执行时,使所述至少一个处理器执行如权利要求1至6任一项所述的中断虚拟化处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310788570.0A CN116521324B (zh) | 2023-06-30 | 2023-06-30 | 中断虚拟化处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310788570.0A CN116521324B (zh) | 2023-06-30 | 2023-06-30 | 中断虚拟化处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521324A true CN116521324A (zh) | 2023-08-01 |
CN116521324B CN116521324B (zh) | 2024-04-12 |
Family
ID=87408592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310788570.0A Active CN116521324B (zh) | 2023-06-30 | 2023-06-30 | 中断虚拟化处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521324B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954830A (zh) * | 2023-09-18 | 2023-10-27 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622320A (zh) * | 2012-02-22 | 2012-08-01 | 中国人民解放军国防科学技术大学 | 用于飞腾服务器的中断控制方法 |
CN110609730A (zh) * | 2018-06-14 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种实现虚拟处理器间中断透传的方法及设备 |
CN112783600A (zh) * | 2020-07-01 | 2021-05-11 | 中兴通讯股份有限公司 | 中断处理方法、中断管理器、电子设备、计算机可读介质 |
CN113407298A (zh) * | 2020-03-17 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 实现消息信号中断的方法、装置和设备 |
CN113934504A (zh) * | 2020-06-29 | 2022-01-14 | 华为技术有限公司 | 一种系统以及中断处理方法 |
CN114371907A (zh) * | 2020-10-15 | 2022-04-19 | 华为技术有限公司 | 一种芯片系统、处理虚拟中断的方法及相应装置 |
CN114610444A (zh) * | 2022-03-07 | 2022-06-10 | 斑马网络技术有限公司 | 消息中断的虚拟化处理方法、装置及存储介质 |
-
2023
- 2023-06-30 CN CN202310788570.0A patent/CN116521324B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622320A (zh) * | 2012-02-22 | 2012-08-01 | 中国人民解放军国防科学技术大学 | 用于飞腾服务器的中断控制方法 |
CN110609730A (zh) * | 2018-06-14 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种实现虚拟处理器间中断透传的方法及设备 |
CN113407298A (zh) * | 2020-03-17 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 实现消息信号中断的方法、装置和设备 |
CN113934504A (zh) * | 2020-06-29 | 2022-01-14 | 华为技术有限公司 | 一种系统以及中断处理方法 |
CN112783600A (zh) * | 2020-07-01 | 2021-05-11 | 中兴通讯股份有限公司 | 中断处理方法、中断管理器、电子设备、计算机可读介质 |
WO2022002106A1 (zh) * | 2020-07-01 | 2022-01-06 | 中兴通讯股份有限公司 | 中断处理方法、中断管理器、电子设备、计算机可读存储介质 |
CN114371907A (zh) * | 2020-10-15 | 2022-04-19 | 华为技术有限公司 | 一种芯片系统、处理虚拟中断的方法及相应装置 |
CN114610444A (zh) * | 2022-03-07 | 2022-06-10 | 斑马网络技术有限公司 | 消息中断的虚拟化处理方法、装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
---|---|
CN116521324B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997093B2 (en) | NVME data processing method and NVME device | |
US12061566B2 (en) | IO processing method and apparatus | |
CA2933712C (en) | Resource processing method, operating system, and device | |
WO2021217529A1 (zh) | 一种进程间通信的方法及系统 | |
CN108064377B (zh) | 一种多系统共享内存的管理方法及装置 | |
US9131031B2 (en) | Virtual computer system, virtual computer management program, and MAC address management method | |
WO2024221469A1 (zh) | 嵌入式系统的启动控制方法和装置、存储介质和电子设备 | |
WO2024221465A1 (zh) | 操作系统的运行控制方法和装置,以及嵌入式系统和芯片 | |
CN116302141B (zh) | 串口切换方法、芯片及串口切换系统 | |
CN116521324B (zh) | 中断虚拟化处理方法、装置及电子设备 | |
CN116521209B (zh) | 操作系统的升级方法及装置、存储介质及电子设备 | |
CN116243996B (zh) | 业务的运行切换方法、装置、存储介质及电子装置 | |
CN116541227A (zh) | 故障诊断方法、装置、存储介质、电子装置及bmc芯片 | |
CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
EP3633507B1 (en) | Technologies for secure and efficient native code invocation for firmware services | |
CN112306652A (zh) | 带有上下文提示的功能的唤醒和调度 | |
WO2024221468A1 (zh) | 嵌入式系统的运行方法和装置、嵌入式系统及芯片 | |
US20230214245A1 (en) | Online Migration Method and System for Bare Metal Server | |
CN114115703A (zh) | 裸金属服务器在线迁移方法以及系统 | |
US11360926B2 (en) | Configuration management device, configuration management system, configuration management method, and non-transitory computer readable storage medium | |
CN114281529A (zh) | 分布式虚拟化的客户操作系统调度优化方法、系统及终端 | |
US10782764B2 (en) | Techniques of emulating an ACPI controller on a service processor | |
CN114064128A (zh) | 内核重启方法 | |
CN117149471B (zh) | 通信方法、装置、嵌入式系统、存储介质以及电子设备 | |
US20230251883A1 (en) | Coordinating timer access for virtual machines using peripheral component interface cards |
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 |