CN111124608B - 一种面向多核虚拟机的精确低延迟中断重定向方法 - Google Patents

一种面向多核虚拟机的精确低延迟中断重定向方法 Download PDF

Info

Publication number
CN111124608B
CN111124608B CN201911303463.4A CN201911303463A CN111124608B CN 111124608 B CN111124608 B CN 111124608B CN 201911303463 A CN201911303463 A CN 201911303463A CN 111124608 B CN111124608 B CN 111124608B
Authority
CN
China
Prior art keywords
interrupt
vcpu
virtual machine
submitted
recorded
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
CN201911303463.4A
Other languages
English (en)
Other versions
CN111124608A (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201911303463.4A priority Critical patent/CN111124608B/zh
Publication of CN111124608A publication Critical patent/CN111124608A/zh
Application granted granted Critical
Publication of CN111124608B publication Critical patent/CN111124608B/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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)
  • Bus Control (AREA)

Abstract

本发明提出一种面向多核虚拟机的精确低延迟中断重定向方法,是对现有中断重定向方法的改进,其特征在于,其核心思想是当无法确定目标虚拟机中最先运行的vCPU时,先推迟中断递交,并记录下待递交中断,等发现并确定所述目标虚拟机最先运行的vCPU时再实施中断递交。本发明的有益效果是,目标虚拟机的待递交中断可以精确地被递交给最先运行的vCPU,确保I/O响应性,而且这种精确的低延迟中断重定向方法不会带来副作用。

Description

一种面向多核虚拟机的精确低延迟中断重定向方法
技术领域
本发明涉及虚拟化与云计算领域,尤其涉及一种面向多核虚拟机的精确低延迟中断重定向方法。
背景技术
系统虚拟化允许多个虚拟机同时运行在一个物理服务器上,极大提升了硬件资源的利用率,是云计算的重要支撑技术。虚拟对称多处理(Virtual SymmetricMultiprocessing,VSMP)技术使得一个虚拟机可以拥有多个虚拟处理器(virtual CPU,vCPU),也即成为多核虚拟机。多核虚拟机可以灵活地使用系统计算资源,尤其在高负载时可以具备同时使用多个物理CPU核的能力。
在VSMP环境下,同一个物理CPU核通常被多个vCPU复用以提高资源利用率,但这种复用方式也给I/O响应性带来了挑战:当虚拟机监控器(Virtual Machine Monitor,VMM)将某个I/O事件递交给目标虚拟机的某个vCPU处理时,该vCPU可能已经被调度走(即当时未在运行),那么该I/O事件只有等到目标vCPU重新被调度运行时才能被处理,造成I/O事件处理延迟,降低了I/O响应性。
现有的针对VSMP环境下I/O响应性提升的解决方案大致可以分为以下三类。第一类是旁核(side core)策略,也称为I/O专有核策略,其基本思想是使用专门的物理CPU核来处理虚拟机的I/O事件,避免vCPU调度延迟引发的I/O延迟。旁核策略虽然可以保证I/O性能,但容易造成计算资源的浪费。第二类是调度相关策略,如使用更小的调度时间片来减少vCPU在调度队列中的等待时间,从而减少I/O事件处理延迟。但该方法会造成频繁的vCPU切换,不利于CPU密集型任务的运行。第三类是中断重定向,通过将I/O设备的中断事件智能地重定向至虚拟机多个vCPU中最合适的一个,既能提升I/O性能,也不会引入其它副作用。
目前,中断重定向已经成为VSMP环境下I/O性能提升的重要解决方案之一。在选择最合适的目标vCPU时,可以将负载均衡作为优化方向,也可以将低延迟作为优化方向。低延迟中断重定向通常的做法是预测目标虚拟机多个vCPU中最先运行的vCPU,将其作为中断重定向的目标vCPU。一种简单的预测方法是,平均情况下(即每个物理核上运行同样数量的vCPU),目标虚拟机中多个vCPU中等待时间最长的那一个vCPU最先运行的概率最高。但预测准确率取决于具体的调度环境和调度策略,如果预测失败,可能反而会增加I/O延迟。
发明内容
本发明要解决的问题是现有的低延迟中断重定向方法中预测准确率取决于具体的调度环境和调度策略、预测失败可能反而会增加I/O延迟的问题。
为解决上述问题,本发明提出一种面向多核虚拟机的精确低延迟中断重定向方法,是对现有中断重定向方法的改进,其核心思想是当无法确定目标虚拟机中最先运行的vCPU时,先推迟中断递交,并记录下待递交中断,等发现并确定所述目标虚拟机中最先运行的vCPU时再实施中断递交。
进一步地,所述方法包含以下两个步骤:
步骤1、推迟中断递交并记录所述待递交中断;
步骤2、发现最先运行的vCPU并实施中断递交。
进一步地,中断重定向以低延迟为优化方向,选取所述目标虚拟机中最先运行的vCPU作为新的目标vCPU,如果目标虚拟机的所有vCPU当前均未在运行,也即无法直接确定最先运行的vCPU,不去做预测并递交中断,而是推迟中断递交。
进一步地,实施中断递交的时机是当VMM调度vCPU运行时,被调度即将运行的vCPU就是所述目标虚拟机中最先运行的vCPU。
进一步地,所述待递交中断是以虚拟机为单位被记录的。
进一步地,如果所述待递交中断被记录而未被递交时,相同的中断事件再次到来,新的中断事件无需再记录。
进一步地,如果所述待递交中断被记录而未被递交时,相同的中断事件再次到来,新的中断事件直接合并至已记录的所述待递交中断。
进一步地,所述待递交中断被记录在描述虚拟机的数据结构中。
进一步地,实施中断递交的方法是,在VMM触发调度vCPU之前,检测该vCPU所对应的虚拟机是否有前期记录的所述待递交中断,如果有则在调度的同时注入所述待递交中断,由于每个vCPU在被调度之前都会执行检测,目标虚拟机的待递交中断可以精确地被递交给最先运行的vCPU。
进一步地,所述待递交中断被递交后,该中断的记录被清除。
本发明的有益效果是,目标虚拟机的待递交中断可以精确地被递交给最先运行的vCPU,确保I/O响应性,而且这种精确的低延迟中断重定向方法不会带来副作用。首先,不会造成中断丢失,如果待递交中断被记录而未被递交时,相同的中断事件再次到来,新的中断事件无需再被记录,而是直接被合并至已记录的待递交中断,现今的I/O设备驱动(中断处理程序)有能力处理合并的中断事件;其次,其开销较低,由于是在vCPU调度时执行是否有待递交中断的检测,执行检测的开销相比于vCPU上下文切换的开销可以忽略不计。
附图说明
图1是本发明的一个较佳实施例的示意图;
具体实施方式
以下参考说明书附图介绍本发明的优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
如图1所示,本发明的一个较佳实施例,平台采用KVM虚拟化环境以及当前主流的VIRTIO半虚拟化网络I/O模型,半虚拟化网卡的前端驱动位于虚拟机,半虚拟化网卡的后端驱动位于虚拟机监控器,面向多核虚拟机的精确低延迟中断重定向方法包括以下详细步骤:
步骤1、半虚拟化网卡后端驱动完成来自前端驱动的I/O请求或者接收到来自外界的数据包,产生一个虚拟中断,该中断的目的是通知目标虚拟机某个I/O请求已经完成或者有新数据包到达。
步骤2、该虚拟中断被中断重定向模块截获,中断重定向的目的是为该虚拟中断重新选择最合适的目标vCPU,选取标准是选择正在运行或者最快运行的vCPU作为目标,从而能够最快的处理该中断事件,降低延迟。
步骤3、如果目标虚拟机当前没有vCPU正在运行,无法确定最优vCPU(即最先运行的vCPU),则推迟中断递交,并记录下待递交中断。待递交中断以虚拟机为单位进行记录,比如可以记录到描述虚拟机的数据结构中去,对于KVM Hypervisor中,该数据结构可以是“struct kvm”,在其中新添加一个域用于记录待递交中断的中断向量。
步骤4、在记录待递交中断时,如果发现相同的中断已经被记录过(表明相同的中断被多次产生),则无需再记录,因为多次中断事件(对应多个数据包)可以聚合到一次中断处理函数中进行处理。
步骤5:当虚拟机监控器的调度器在进行vCPU调度时,增加中断递交检测模块。对于KVM Hypervisor,可以在kvm_sched_in函数中进行添加,该函数在vCPU将被调度之前触发。
步骤6:针对每个vCPU,在触发调度之前(如kvm_sched_in函数中),中断递交检测模块执行如下:根据vCPU定位其所属虚拟机,在虚拟机结构体(如struct kvm)中检测是否有前期记录的待递交中断,如果有则注入中断并清除待递交中断记录。
步骤7:如果某个vCPU在触发调度之前被注入待递交中断,当其被调度运行时,在VM Entry处理中检测到注入的中断,即可立即处理该中断。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

Claims (7)

1.一种面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,所述方法包括以下步骤:
步骤1、中断重定向模块截获中断;
步骤2、所述中断重定向模块为中断选择最先运行的vCPU;
步骤3、当无法确定目标虚拟机中最先运行的vCPU时,先推迟中断递交,并记录下待递交中断;
步骤4、当发现并确定所述目标虚拟机中最先运行的vCPU时,实施中断递交;实施中断递交的时机是当VMM调度vCPU运行时,被调度即将运行的vCPU就是所述目标虚拟机中最先运行的vCPU;实施中断递交的方法是,在VMM触发调度vCPU之前,检测该vCPU所对应的虚拟机是否有前期记录的所述待递交中断,如果有则在调度的同时注入所述待递交中断,由于每个vCPU在被调度之前都会执行检测,目标虚拟机的待递交中断精确地被递交给最先运行的vCPU。
2.如权利要求1所述的面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,中断重定向以低延迟为优化方向,选取所述目标虚拟机中最先运行的vCPU作为新的目标vCPU,如果目标虚拟机的所有vCPU当前均未在运行,不去做预测并递交中断,而是推迟中断递交。
3.如权利要求1所述的面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,所述待递交中断是以虚拟机为单位被记录的。
4.如权利要求1所述的面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,如果所述待递交中断被记录而未被递交时,相同的中断事件再次到来,新的中断事件无需再记录。
5.如权利要求1所述的面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,如果所述待递交中断被记录而未被递交时,相同的中断事件再次到来,新的中断事件直接合并至已记录的所述待递交中断。
6.如权利要求1所述的面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,所述待递交中断被记录在描述虚拟机的数据结构中。
7.如权利要求1所述的面向多核虚拟机的精确低延迟中断重定向方法,其特征在于,所述待递交中断被递交后,该中断的记录被清除。
CN201911303463.4A 2019-12-17 2019-12-17 一种面向多核虚拟机的精确低延迟中断重定向方法 Active CN111124608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911303463.4A CN111124608B (zh) 2019-12-17 2019-12-17 一种面向多核虚拟机的精确低延迟中断重定向方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911303463.4A CN111124608B (zh) 2019-12-17 2019-12-17 一种面向多核虚拟机的精确低延迟中断重定向方法

Publications (2)

Publication Number Publication Date
CN111124608A CN111124608A (zh) 2020-05-08
CN111124608B true CN111124608B (zh) 2023-03-21

Family

ID=70499362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911303463.4A Active CN111124608B (zh) 2019-12-17 2019-12-17 一种面向多核虚拟机的精确低延迟中断重定向方法

Country Status (1)

Country Link
CN (1) CN111124608B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253679A (zh) * 2020-09-24 2022-03-29 广州慧睿思通科技股份有限公司 中断事件处理方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744716A (zh) * 2014-01-15 2014-04-23 上海交通大学 一种基于当前vcpu调度状态的动态中断均衡映射方法
CN106095578A (zh) * 2016-06-14 2016-11-09 上海交通大学 基于硬件辅助技术和虚拟cpu运行状态的直接中断递交方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108123850B (zh) * 2017-12-25 2020-04-24 上海交通大学 针对中断持有者抢占问题的综合调度方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744716A (zh) * 2014-01-15 2014-04-23 上海交通大学 一种基于当前vcpu调度状态的动态中断均衡映射方法
CN106095578A (zh) * 2016-06-14 2016-11-09 上海交通大学 基于硬件辅助技术和虚拟cpu运行状态的直接中断递交方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Xiaokang Hu.QTLS: High-Performance TLS Asynchronous Of load Framework with Intel ® QuickAssist Te chnology.2019,全文. *

Also Published As

Publication number Publication date
CN111124608A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
EP1899810B1 (en) System and method to optimize os context switching by instruction group trapping
US9697041B2 (en) Method for dynamic interrupt balanced mapping based on current scheduling states of VCPUs
Song et al. Schedule processes, not VCPUs
US8312195B2 (en) Managing interrupts using a preferred binding between a device generating interrupts and a CPU
US9792137B2 (en) Real-time performance apparatus and method for controlling virtual machine scheduling in real-time
US8352946B2 (en) Managing migration ready queue associated with each processor based on the migration ready status of the tasks
US9836324B2 (en) Interleave-scheduling of correlated tasks and backfill-scheduling of depender tasks into a slot of dependee tasks
CN109101276B (zh) 在cpu中执行指令的方法
US9201823B2 (en) Pessimistic interrupt affinity for devices
CN106293881B (zh) 一种基于非一致性i/o访问构架的性能监控器及其监控方法
Ahn et al. Micro-sliced virtual processors to hide the effect of discontinuous cpu availability for consolidated systems
US9785466B2 (en) Managing data segments in memory for context switching with standalone fetch and merge services
US5784711A (en) Data cache prefetching under control of instruction cache
US9361159B2 (en) Runtime chargeback in a simultaneous multithreading (SMT) environment
US20150227394A1 (en) Detection of time points to voluntarily yield resources for context switching
Zeng et al. An improved xen credit scheduler for i/o latency-sensitive applications on multicores
CN111124608B (zh) 一种面向多核虚拟机的精确低延迟中断重定向方法
CN108123850B (zh) 针对中断持有者抢占问题的综合调度方法及装置
Gottschlag et al. Mechanism to mitigate avx-induced frequency reduction
Zhang et al. Lock-Visor: An efficient transitory co-scheduling for MP guest
Miao et al. FlexCore: Dynamic virtual machine scheduling using VCPU ballooning
US10929164B2 (en) Enhancing ability of a hypervisor to detect an instruction that causes execution to transition from a virtual machine to the hypervisor
US20050283586A1 (en) Stepping a virtual machine guest
US20110231637A1 (en) Central processing unit and method for workload dependent optimization thereof

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