WO2019128158A1 - 针对中断持有者抢占问题的综合调度方法及装置 - Google Patents
针对中断持有者抢占问题的综合调度方法及装置 Download PDFInfo
- Publication number
- WO2019128158A1 WO2019128158A1 PCT/CN2018/092618 CN2018092618W WO2019128158A1 WO 2019128158 A1 WO2019128158 A1 WO 2019128158A1 CN 2018092618 W CN2018092618 W CN 2018092618W WO 2019128158 A1 WO2019128158 A1 WO 2019128158A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual
- interrupt
- cpu
- holder
- virtual cpu
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/45595—Network integration; Enabling network access in virtual machine instances
Definitions
- the present invention relates to the field of computer technologies, and in particular, to a comprehensive scheduling method and apparatus for preempting an interrupt holder.
- System virtualization creates an environment that allows multiple virtual machines to run simultaneously on a single physical server.
- Virtual machine monitor (VMM, Virtual Machine Monitor) abstracts the underlying hardware as a virtual resource and manages the operation of the virtual machine Row.
- I/O virtualization is an important branch of system virtualization and is responsible for providing I/O devices to virtual machines. As the speed of Internet connectivity continues to increase, I/O virtualization has become one of the key issues in cloud data centers.
- Virtual Symmetric Multiprocessing (VSMP) technology makes a virtual
- the virtual machine can have multiple virtual processors (VCPU, Virtual CPU), which not only brings higher concurrency and resource benefits.
- the utilization rate is also beneficial to further improve I/O throughput and responsiveness.
- Hardware-based interrupt delivery techniques such as Message Signaling Interrupt, Posted Interrupt, etc., can efficiently deliver I/O device interrupts to target virtual Machine processing.
- the VCPU responsible for handling virtual interrupts may be dispatched by the VMM scheduler, resulting in The processing delay of the event is interrupted, which in turn affects the I/O performance of the virtual machine.
- the solution can be roughly divided into three types: side-core strategy, scheduling-related strategy, and interrupt remapping mechanism.
- the side-core strategy uses a separate CPU core dedicated to virtual machine I/O processing, although I/O performance is guaranteed, but it is easy This causes a waste of CPU resources.
- Scheduling related strategies reduce each VCPU in the running team by reducing the time slice of the VMM scheduler Waiting time in the column, which reduces I/O latency, but this method causes frequent context switching, which is not conducive to CPU intensive (PU-intensive) the operation of the task.
- the interrupt remapping mechanism intelligently remaps I/O device interrupts to the most appropriate of the virtual machines' multiple VCPUs, improving I/O performance without introducing other side effects.
- the interrupt remapping mechanism has become one of the most attractive I/O performance solutions in a virtual symmetric multiprocessing environment.
- the risk of failure may occur due to the interrupt remapping mechanism. How to avoid the failure of the interrupt remapping mechanism is an urgent problem to be solved.
- NAPI is an improvement adopted on Linux
- the technology of network processing efficiency, its core concept is to read data without interrupt, and instead use the service program that first wakes up data reception with interrupt, and then close the device interrupt to enter polling (POLL) mode to read data, etc. polling Turn on the device interrupt when the mode ends. Since NAPI needs to operate the interruptability of I/O devices, interrupt remapping needs to modify the destination address of the device interrupt. If not coordinated, a conflict will occur and the interrupt remapping will fail.
- interrupt holder preemption IHP, Interruptability
- Holder Preemption IHP, Interruptability
- IHP problem definition Assuming that a VCPU of a virtual machine is currently processing an interrupt of a network I/O device and entering the polling (POLL) mode of the NAPI process, the device's interruptability is turned off.
- the VCPU is called the interrupt holder (IH, Interruptability) Holder). If the IH is scheduled to be dispatched by the VMM scheduler at this time, an IHP problem occurs.
- the network I/O device cannot be in the period when the IH is scheduled again and the device is re-enabled. An interrupt is generated even if it receives an external packet. Since no interrupts are generated, the interrupt remapping fails, and the packets received by the device cannot be processed even, reducing I/O performance.
- a comprehensive scheduling method and device for preempting problems to solve the IHP problem which is based on the currently widely used KVM (Kernel-Based Virtual) Machine) and its paravirtualized network model, through the global grasp and analysis of the interrupt holder's running state, and taking into account the system's global scheduling fairness, construct a VCPU integrated scheduling method, effectively eliminate IHP issues significantly improve the I/O performance of virtual machines.
- KVM Kernel-Based Virtual
- Step 1 When the virtual network device receives the data packet, select one virtual CPU from the plurality of virtual CPUs as the target virtual The CPU then injects the arrival of the virtual interrupt notification packet;
- Step 2 analyzes the information of the virtual interrupt and marks the target virtual CPU as an interrupt holder;
- Step 3 the target virtual CPU receives the virtual interrupt, triggers corresponding Interrupt processing function, close the interrupt of the virtual network device and enter the polling mode to read the data packet;
- Step 4 When a virtual CPU is to be When the physical CPU is transferred out, it is determined whether the virtual CPU is marked as an interrupt holder, and if so, the virtual CPU is continuously scheduled to run on the physical CPU, and the virtual CPU is recorded as a preferred virtual CPU;
- Step 5 Polling method It is preferred to interrupt whether the virtual CPU has turned on the virtual network device, and if it is turned on, immediately move the preferred virtual CPU away from the physical CPU.
- step 1 a virtual CPU is selected as the target virtual CPU according to the interrupt remapping mechanism.
- step 4 when the virtual CPU to be detached from the physical CPU is not marked as an interrupt holder, That is, the virtual CPU is transferred out of the physical CPU.
- step 5 it is determined in the VM Exit processing function whether the preferred virtual CPU has opened the interrupt of the virtual network device.
- the technical solution of the present invention further provides a comprehensive scheduling device for the interrupt holder preemption problem, comprising: a plurality of virtual CPUs; and a selecting module, configured to select from the plurality of virtual CPUs when the virtual network device receives the data packet A virtual CPU is used as the target virtual CPU, and then the arrival of the virtual interrupt notification packet is injected, the target virtual CPU is configured to receive the virtual interrupt, trigger a corresponding interrupt processing function, close the interrupt of the virtual network device, and enter the polling mold Reading data; an interrupt holder detecting module for analyzing information of the virtual interrupt, and marking the target virtual CPU as an interrupt holder; and a scheduling module connected to the interrupt holder detecting module Used when going to be a virtual When the CPU is transferred out of the physical CPU, it is determined whether the virtual CPU is marked as an interrupt holder according to the interrupt holder information marked by the interrupt holder detection module, and if so, the virtual session is continuously scheduled.
- the CPU runs on the physical CPU and records the virtual CPU as a preferred virtual CPU, and when the preferred virtual CPU turns on the interruption of the virtual network device, immediately moves the preferred virtual CPU away from the physical
- the CPU is configured to be connected to the scheduling module, configured to determine, in a polling manner, whether the preferred virtual CPU has enabled the interruption of the virtual network device, and send the determination information to the scheduling module.
- the selecting module is configured to select a virtual CPU as the target virtual CPU according to the interrupt remapping mechanism.
- the scheduling module includes: a delay scheduling unit, connected to the terminal holder detection module, for continuing to schedule a virtual CPU marked as an interrupt holder to run on a physical CPU, and the virtual The CPU records as a preferred virtual CPU; an instant scheduling unit is connected to the determining module for immediately transferring the virtual CPU that is not marked as the interrupt holder and the preferred virtual CPU that has been shut down by the closed virtual network device to the physical CPU; Scheduling unit, with the delay The unit is connected to immediately remove the virtual CPU that is not marked as an interrupt holder from the physical CPU.
- the determining module is configured to determine, in the VM Exit processing function, whether the preferred virtual CPU has enabled the interruption of the virtual network device.
- the present invention uses an interrupt remapping mechanism to deliver a virtual interrupt to a currently running virtual CPU.
- the problem of virtual machine network responsiveness caused by the scheduling delay of the virtual CPU is significantly reduced.
- the interrupt holder preemption problem is the root cause of the failure of the interrupt remapping mechanism, and is also an important cause of the I/O virtualization performance bottleneck.
- the present invention completely eliminates the interrupt remapping mechanism interrupt holder preemption problem, so that The network I/O performance of the virtual machine is greatly improved.
- FIG. 1 is a schematic diagram of an interrupt processing process in a conventional paravirtualized environment
- FIG. 2 is a diagram showing an example of an interrupt holder preemption problem according to the present invention.
- FIG. 3 is a schematic flowchart of a comprehensive scheduling method for an interrupt holder preemption problem according to an embodiment of the present invention
- FIG. 4 is a schematic structural diagram of an integrated scheduling apparatus for an interrupt holder preemption problem according to an embodiment of the present invention.
- This embodiment is based on KVM (Kernel-Based Virtual) which is widely used at present. Machine) and its paravirtualized network I/O model (consisting of front-end drivers in virtual machines and back-end drivers in VMM).
- KVM Kernel-Based Virtual
- paravirtualized network I/O model consisting of front-end drivers in virtual machines and back-end drivers in VMM.
- Figure 1 Please refer to Figure 1 for a schematic diagram of the interrupt processing flow in a traditional paravirtualized environment.
- VMM virtual machine's network devices are driven and run by the front end running inside the virtual machine.
- the backend driver in VMM consists of two parts. Among them, the front-end driver shares data and control information through the shared memory and the back-end driver.
- the backend device receives a network packet from a physical NIC or virtual switch and copies it to shared memory After (Path 1), the VMM will inject a virtual interrupt to the virtual machine to trigger packet reception.
- Virtual Interrupt Purpose Virtual CPU0 Analog Labic (Local Advanced Programmable Interrupt Controller) received the virtual interrupt (path 2) and triggered storage in the client IDT (Interrupt) Interrupt handler function (path 3) in Descriptor Table).
- the interrupt handler first initiates an EOI (End of Interrupt) write operation to notify the analog LAPIC.
- the virtual interrupt has been processed (path 4), then the interrupt handler enters the NAPI process (path 5), shutting down the device The (backend driver) interrupt (path 6) and enter the polling (POLL) mode mechanism to read data from shared memory (path 7).
- the NAPI mechanism utilizes one The softirq thread polls for access to network packets in shared memory. Once the packet is received, virtual CPU0 sets the front-end driver to exit polling mode and turns on its interrupt capability (path 8), waiting to receive the next virtual interrupt injection.
- FIG. 2 is an example diagram of the IHP problem according to the present invention.
- the virtual machine V has two VCPUs (virtual CPU 0 and virtual CPU 1), virtual CPU. 0 first receives a virtual interrupt and disables the interrupt capability of the front-end device at time T0. If virtual CPU 0 is dispatched from the physical CPU by the scheduler at time T1 0. Since the front-end device disables the interrupt at this time, the subsequent network I/O events processed by the virtual CPU 1 redirected via the interrupt remapping mechanism cannot be delivered to the virtual machine V in time until the VCPU 0 is reset back to the physical CPU at time T2 1 and turn on the interrupt capability of the front-end device.
- virtual CPU 0 first receives a virtual interrupt and disables the interrupt capability of the front-end device at time T0. If virtual CPU 0 is dispatched from the physical CPU by the scheduler at time T1 0. Since the front-end device disables the interrupt at this time, the subsequent network I/O events processed by the virtual CPU 1 redirected via the interrupt remapping mechanism cannot be delivered to the virtual machine V in
- the interrupt remapping mechanism completely fails, and the network I/O performance of the virtual machine is still subject to the scheduling delay of the VCPU, resulting in the preemption problem of the interrupt holder described in the present invention.
- FIG. 3 is a schematic flowchart of a comprehensive scheduling method for an interrupt holder preemption problem according to the present invention, including the following steps:
- Step S1 When the virtual network device receives the data packet, the virtual virtual machine from the client is multiple virtual
- the CPU selects a virtual CPU as the target virtual CPU, and then injects a virtual interrupt to notify the arrival of the packet.
- the virtual machine network device is composed of a front-end driver and a back-end driver, and includes a plurality of virtual CPUs. Specifically, running in VMM
- the virtual machine backend driver receives the network packet from the bridge or virtual switch and copies the packet to the shared memory of the front-end driver.
- the VMM uses the interrupt remapping mechanism to select a suitable VCPU for the corresponding virtual machine as the target virtual.
- the CPU then injects a virtual interrupt to notify the arrival of the packet.
- other suitable VCPUs may be selected as the target virtual CPU.
- Step S2 analyzing the information of the virtual interrupt and marking the target virtual CPU as an interrupt holder.
- the interrupt holder detection module located inside the VMM analyzes the information of the virtual interrupt and marks the target virtual CPU as an interrupt holder (IH), and forms IH information.
- Step S3 The target virtual CPU receives the virtual interrupt, triggers a corresponding interrupt processing function, closes the interrupt of the virtual network device, and enters a polling mode to read the data packet.
- the virtual interrupt is received by the target virtual CPU and triggers a corresponding interrupt processing function, enters the NAPI processing process, shuts down the device (backend driver), and enters the polling. (POLL) mode reads data from shared memory.
- Step S4 When a virtual CPU is to be removed from the physical CPU, it is determined whether the virtual CPU is marked as an interrupt holder, and if so, the virtual CPU is continuously scheduled to run on the physical CPU, and the virtual CPU is recorded. It is a preferred virtual CPU. Specifically, when the interrupt holder (VCPU) recorded in step S2 is to be removed from the physical CPU, the extension inside the VMM is extended. The late scheduling module determines whether the virtual CPU is an interrupt holder based on the IH information provided by the interrupt holder detection module. If yes, the delay scheduling module will continue to schedule the virtual CPU to run on the physical CPU and record it as Favored VCPU (preferably virtual CPU). If not, the virtual CPU is immediately transferred out of the physical CPU.
- VCPU interrupt holder
- Step S5 determining, in a polling manner, whether the preferred virtual CPU has enabled the interruption of the virtual network device, if On, the preferred virtual CPU is immediately transferred from the physical CPU.
- the instant scheduling module located inside the VMM determines the Favored recorded in step S4 in the frequently occurring VM Exit processing function. Whether the VCPU has turned on the interrupt capability of the backend driver. For the Favored VCPU with device interrupts turned on, the instant scheduling module will immediately tune away from the physical CPU.
- the invention utilizes Intel VT-x The VM Exit mechanism in the technology, in the VM Exit handler, judges Favored in a class polling manner.
- the instant scheduling module immediately puts the Favored The VCPU is moved away from the physical CPU to provide operational opportunities for other processes in the system, which not only ensures the global scheduling fairness of the system, but also completely avoids the IHP problem and improves the overall performance.
- the interrupt processing flow of the embodiment includes monitoring of the interrupt holder information and a more elaborate and integrated VCPU scheduling strategy.
- FIG. 4 is a schematic structural diagram of an integrated scheduling apparatus for an interrupt holder preemption problem according to an embodiment of the present invention.
- the integrated scheduling device includes: a plurality of virtual CPUs 501, a selection module 502, and an interrupt holder detection module. 503. A scheduling module 504 and a determining module 505.
- the selecting module 502 is configured to select from a plurality of virtual CPUs 501 when the virtual network device receives the data packet. Selecting a virtual CPU as the target virtual CPU, and then injecting the arrival of the virtual interrupt notification packet, the target virtual CPU And receiving the virtual interrupt, triggering a corresponding interrupt processing function, turning off the interrupt of the virtual network device, and entering the polling mode to read data.
- the selection module 502 can select a virtual CPU as the target virtual CPU according to the interrupt remapping mechanism.
- the interrupt holder detection module 503 is connected to the selection module for analyzing the information of the virtual interrupt.
- the target virtual CPU selected by the selection module 502 is marked as an interrupt holder.
- the virtual CPU is determined according to the interrupt holder information marked by the interrupt holder detecting module 503. Whether it is marked as an interrupt holder, and if so, continue to schedule the virtual CPU to run on the physical CPU, and the virtual CPU Recorded as a preferred virtual CPU, and when the preferred virtual CPU turns off the interruption of the virtual network device, the preferred virtual CPU is immediately transferred from the physical CPU.
- the determining module 505 is connected to the scheduling module 504, and is configured to determine, in a polling manner, the scheduling module 504 records Whether the preferred virtual CPU has turned on the interruption of the virtual network device and sends the determination information to the scheduling module 504.
- the determination module 505 utilizes VMs in Intel VT-x technology
- the Exit mechanism in the frequent occurrence of the VM Exit handler, determines whether the Favored VCPU has turned on the device interrupt in a polling manner.
- the scheduling module 504 includes: a delay scheduling unit 5041 connected to the terminal holder detecting module 503 and the determining module 505 for continuing to schedule a virtual CPU marked as an interrupt holder. running On the physical CPU, record the virtual CPU as a preferred virtual CPU, and send the record information of the preferred virtual CPU to the judgment.
- the module 505 is connected to the determining module 505, and is configured to immediately remove the preferred virtual CPU that has been shut down by the virtual network device from the physical CPU; the normal scheduling unit 5043 is connected to the delay scheduling unit 5041. Used to immediately remove the virtual CPU that is not marked as an interrupt holder from the physical CPU.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Health & Medical Sciences (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明发现并定义了虚拟对称多处理环境下中断重映射机制可能存在的一个问题:中断持有者抢占(IHP,Interruptability Holder Preemption)问题。该问题导致中断重映射机制失效,降低了虚拟机的I/O性能。为了解决IHP问题,本发明提供一种前摄性的、基于中断持有者信息的VCPU综合调度方法。该方法基于目前广泛使用的KVM(Kernel Based Virtual Machine)及其半虚拟化网络模型,通过对中断持有者运行状态的全局把握与分析,并兼顾系统的全局调度公平性,构建一种VCPU综合调度方法,有效消除IHP问题,显著提升虚拟机的I/O性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种针对中断持有者抢占问题的综合调度 方法及装置。
背景技术
系统虚拟化为允许多个虚拟机同时运行在一个物理服务器上创造了环境。虚拟机 监控器(VMM,Virtual
Machine Monitor)将底层硬件抽象为虚拟资源,并管理虚拟机的运
行。I/O虚拟化是系统虚拟化的重要分支,负责为虚拟机提供I/O设备。随着网络互联速度的 持续增加,I/O虚拟化已经成为云数据中心的关键议题之一。
虚拟对称多处理(VSMP,Virtual Symmetric Multiprocessing)技术使得一个虚
拟机可以拥有多个虚拟处理器(VCPU,Virtual CPU),这不仅带来了更高的并发度和资源利
用率,也有利于进一步提升I/O吞吐量和响应性。基于硬件的中断递交技术,如Message Signaling Interrupt、Posted
Interrupt等,可以将I/O 设备中断高效地递交至目标虚拟
机进行处理。然而,在VSMP环境下,由于多个VCPU需要时分共享一个物理CPU核,这使得虚拟中断的处理过程变得复杂:负责处理虚拟中断的VCPU可能会被VMM调度器调度出去,导致中
断事件的处理延迟,进而影响虚拟机的I/O性能。
很多已有研究致力于提升虚拟对称多处理环境下的I/O吞吐量和响应性。现有的
解决方案大致可以分为三种:旁核(side-core)策略、调度相关策略以及中断重映射机制。旁核策略使用一个单独的CPU核专用于虚拟机的I/O处理,虽然可以保证I/O性能,但很容易
造成CPU资源的浪费。调度相关策略通过减少VMM调度器的时间片来减少每个VCPU在运行队
列中的等待时间,从而降低I/O延迟,但该方法会造成频繁的上下文切换,不利于CPU密集型
(PU-intensive)任务的运行。相比之下,中断重映射机制通过将I/O设备中断智能地重映射至虚拟机多个VCPU中最合适的一个,既能提升I/O性能,也不会引入其它副作用。
目前,中断重映射机制已经成为虚拟对称多处理环境下最具有吸引力的I/O性能解决方案之一。但是,在实际过程中,中断重映射机制可能会发生失效的风险,如何避免中断重映射机制失效是目前亟待解决的问题。
发明内容
如背景技术中所述,中断重映射机制会发生失效的风险。发明人对此进行研究,发现,如果虚拟机运行的是Linux操作系统,该系统中针对网络I/O设备的NAPI处理模式可能
会和中断重映射机制发生冲突,使得中断重映射机制失效。NAPI是Linux上采用的一种提高
网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后关闭设备中断进入轮询(POLL)模式读取数据,等轮询
模式结束时再开启设备中断。由于NAPI需要操作I/O设备的可中断性,而中断重映射需要修改设备中断的目的地址,如果不加以协调,会产生冲突以致中断重映射失效。
至此,发明人首先发现并定义了虚拟对称多处理环境下中断重映射机制可能存在的问题:中断持有者抢占(IHP,Interruptability
Holder Preemption)问题。
IHP问题的定义:假设虚拟机的某个VCPU当前正在处理某个网络I/O设备的中断,并进入了NAPI处理过程的轮询(POLL)模式,则该设备的可中断性被关闭,此时称该VCPU为中断持有者(IH,Interruptability
Holder)。如果此时该IH被VMM调度器调度出去,那么就发生了IHP问题。在IH被再次调度并重新开启设备中断的这段时间里,该网络I/O设备无法
产生中断,即使它收到了外界的数据包。由于没有中断产生,中断重映射失效,该设备收到的数据包无法被即使处理,降低了I/O性能。
因此,发明人在上述研究的基础上提出一种针对虚拟多对称处理环境下中端持有
者抢占问题的综合调度方法及装置,以解决IHP问题,该方法基于目前广泛使用的KVM (Kernel-Based Virtual
Machine)及其半虚拟化网络模型,通过对中断持有者运行状态的全局把握与分析,并兼顾系统的全局调度公平性,构建一种VCPU综合调度方法,有效消除
IHP问题,显著提升虚拟机的I/O性能。
本发明的技术方案提供一种针对中断持有者抢占问题的综合调度方法,包括如下步骤:步骤1:当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达;步骤2:分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;步骤3:目标虚拟CPU接收所述虚拟中断,触发对应的
中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据包;步骤4:当要将 一虚拟CPU
调离出物理CPU时,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;步骤5:以轮询方式判
断优选虚拟CPU是否已经开启虚拟网络设备的中断,若已打开,则立即将所述优选虚拟CPU 调离物理CPU。
可选的,步骤1中根据中断重映射机制选择一虚拟CPU作为目标虚拟 CPU。
可选的,步骤4中,当要被调离出物理CPU的虚拟CPU未被标记为中断持有者,则立
即将该虚拟CPU调离出物理CPU。
可选的,步骤5中,在VM Exit处理函数中判断优选虚拟CPU是否已经打开虚拟网络设备的中断。
本发明的技术方案还提供一种针对中断持有者抢占问题的综合调度装置,包括:多个虚拟CPU;选择模块,用于当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达,所述目标虚拟CPU用于接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模
式读取数据;中断持有者检测模块,用于分析所述虚拟中断的信息,并将所述目标虚拟CPU 标记为中断持有者;调度模块,与所述中断持有者检测模块连接,用于当要将一虚拟
CPU调离出物理CPU时,根据所述中断持有者检测模块标记的中断持有者信息,判断所述虚拟CPU 是否被标记为中断持有者,若是,则继续调度该虚拟
CPU运行在物理CPU上,并将该虚拟CPU 记录为优选虚拟CPU,并且当优选虚拟CPU开启虚拟网络设备的中断后,立即将所述优选虚拟CPU调离物理
CPU;判断模块,与所述调度模块连接,用于以轮询方式判断优选虚拟CPU 是否已经开启虚拟网络设备的中断,并将判断信息发送至调度模块。
可选的,所述选择模块用于根据中断重映射机制选择一虚拟CPU作为目标虚拟 CPU。
可选的,所述调度模块包括:延时调度单元,与所述终端持有者检测模块连接,用于继续调度被标记为中断持有者的虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;即时调度单元,与所述判断模块连接,用于将未被标记为中断持有者的虚拟CPU和已关闭虚拟网络设备中断的优选虚拟CPU立即调离物理CPU;常规调度单元,与所述延时调
度单元连接,用于将需要调离的未被标记为中断持有者的虚拟CPU立即调离出物理CPU。
可选的,所述判断模块用于在VM Exit处理函数中判断优选虚拟CPU是否已经开启虚拟网络设备的中断。
本发明提供的一种前摄性的、基于中断持有者信息的VCPU综合调度方法具有以下有益的技术效果:
(1)本发明采用中断重映射机制将虚拟中断递交至目前正在运行的虚拟 CPU上,
显著降低了由于虚拟CPU的调度延时引起的虚拟机网络响应性下降的问题。
(2)本发明的方案只需要记录虚拟中断的目的VCPU信息,并不涉及虚拟机操作系统的改动,对虚拟机完全透明。
(3)中断持有者抢占问题是造成中断重映射机制失效的根本原因,也是造成I/O虚拟化性能瓶颈的重要原因,本发明完全消除了中断重映射机制中断持有者抢占问题,使得虚拟机的网络I/O性能得到极大提高。
附图说明
图1为传统的半虚拟化环境下的中断处理流程示意图;
图2为本发明所述的中断持有者抢占问题的一个实例图;
图3为本发明的一个实施例的针对中断持有者抢占问题的综合调度方法的流程示意图;
图4为本发明的一个实施例的针对中断持有者抢占问题的综合调度装置的结构示意图。
具体实施方式
下面结合附图对本发明提供的一种针对中断持有者抢占问题的综合调度方法和调度装置的实施例做详细说明。所述实施例在本发明技术方案的前提下进行实施,并给出详细实施方式和具体操作过程,但是适用的平台不仅限于下述实施例。
本实施例基于目前广泛使用的KVM(Kernel-Based Virtual
Machine)及其半虚拟化网络I/O模型(由虚拟机中的前端驱动和VMM中的后端驱动构成)。
请参考图1,为传统的半虚拟化环境下的中断处理流程示意图。
在半虚拟化环境下,虚拟机的网络设备由运行在虚拟机内部的前端驱动和运行在
VMM中的后端驱动两部分组成。其中,前端驱动通过共享内存与后端驱动进行数据和控制信息的共享。当后端设备从物理网卡或虚拟交换机接收到网络数据包并将其拷贝至共享内存
后(路径①),VMM会向虚拟机注入一个虚拟中断来触发数据包接收。虚拟中断目的虚拟CPU0的模拟LAPIC(Local Advanced
Programmable Interrupt Controller)接收到该虚拟中断 (路径②)并触发存储在客户机IDT(Interrupt
Descriptor Table)中的中断处理函数(路径③)。中断处理函数首先发起一次EOI(End of Interrupt)写操作通知模拟LAPIC
该虚拟 中断已经处理完成(路径④),接着,中断处理函数进入NAPI处理过程(路径⑤),关闭设备
(后端驱动)中断(路径⑥)并进入轮询(POLL)模式机制从共享内存中读取数据(路径⑦)。需要注意的是,NAPI机制利用一个
softirq线程来轮询访问共享内存中的网络数据包。一旦数据包接收完毕,虚拟CPU0会设置前端驱动退出轮询模式并打开其中断能力(路径⑧),等待接收下一次虚拟中断注入。
请参考图2,为本发明所述的IHP问题的一个实例图。
在虚拟对称多处理架构下,虚拟机V共有两个VCPU(虚拟CPU 0和虚拟 CPU 1),虚 拟CPU
0首先收到一个虚拟中断并在T0时刻禁用了前端设备的中断能力。如果虚拟CPU 0在 T1时刻被调度器调离物理CPU
0,由于此时前端设备禁止中断,后续的经由中断重映射机制重定向的虚拟CPU 1处理的网络 I/O事件将不能被及时递交至虚拟机V,直到VCPU
0在T2时刻重新被调回物理CPU
1并打开前端设备的中断能力。因此,在T1至T2的时间段中,中断重映射机制完全失效,虚拟机的网络I/O性能依然受制于VCPU的调度延迟,造成了本发明前文所述的中断持有者抢占问题。
请参考图3,为本发明的针对中断持有者抢占问题的综合调度方法的流程示意图, 包括如下步骤:
步骤S1:当虚拟网络设备收到数据包时,从客户机即虚拟机的多个虚拟
CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达。在该实施例中,虚拟机网络设备由前端驱动和后端驱动两部分组成,包括多个虚拟CPU。具体的,运行在VMM中
的虚拟机后端驱动从网桥或虚拟交换机接收到网络数据包并将数据包拷贝至前端驱动的共享内存中,VMM利用中断重映射机制为对应虚拟机选择一个合适的VCPU作为目标虚拟
CPU,然后注入虚拟中断通知数据包的到达。在其他具体实施例中,也可以采用其他方式选 择合适的VCPU作为目标虚拟CPU。
步骤S2:分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者。具体的,位于VMM内部的中断持有者检测模块分析该虚拟中断的信息并标记目标虚拟CPU为中断持有者(IH),并形成IH信息。
步骤S3:目标虚拟CPU接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据包。具体的,该虚拟中断由目标虚拟CPU接收并触发相应的中断处理函数,进入NAPI处理过程,关闭设备(后端驱动)中断并进入轮询
(POLL)模式从共享内存中读取数据。
步骤S4:当要将一虚拟CPU调离出物理CPU时,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU。具体的,当要将步骤S2中记录的中断持有者(VCPU)调离物理CPU时,位于VMM内部的延
迟调度模块基于中断持有者检测模块提供的IH信息,判断该虚拟CPU是否为中断持有者。如果是,则该延迟调度模块将继续调度该虚拟CPU运行在物理CPU上,并将其记录为
Favored VCPU(优选虚拟CPU)。如果不是,则立即将该虚拟CPU调离出物理CPU。
步骤S5:以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,若已打
开,则立即将所述优选虚拟CPU调离物理CPU。具体的,位于VMM 内部的即时调度模块在频繁发生的VM Exit处理函数中判断步骤S4中所记录的Favored
VCPU是否已经打开后端驱动的中断能力。对于已经打开设备中断的Favored VCPU,即时调度模块立即将调离物理CPU。本发明利用Intel VT-x
技术中的VM Exit机制,在VM Exit处理函数中,以一种类轮询方式判断Favored
VCPU是否已经打开设备中断,一旦中断能力被打开,即时调度模块立即将该 Favored
VCPU调离物理CPU,为系统内其他进程提供运行机会,既充分保证系统的全局调度公平性又能完全避免IHP问题,获得整体性能的提升。
与传统的半虚拟化环境下中断处理流程相比,本实施例的中断处理流程中加入了中断持有者信息的监控以及更加精细、综合的VCPU调度策略。
请参考图4,为本发明的实施例提供的针对中断持有者抢占问题的综合调度装置的结构示意图。
所述综合调度装置包括:多个虚拟CPU501、选择模块502、中断持有者检测模块
503、调度模块504以及判断模块505。
所述选择模块502用于当虚拟网络设备接收到数据包时,从多个虚拟 CPU501中选
择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达,所述目标虚拟CPU
用于接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据。所述选择模块502可以根据中断重映射机制选择一虚拟CPU作为目标虚拟CPU。
中断持有者检测模块503,与所述选择模块连接,用于分析所述虚拟中断的信息,
并将所述选择模块502选择的目标虚拟CPU标记为中断持有者。
调度模块504,与所述中断持有者检测模块503连接,用于当要将一虚拟
CPU调离出物理CPU时,根据所述中断持有者检测模块503标记的中断持有者信息,判断所述虚拟CPU
是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU
记录为优选虚拟CPU,并且当优选虚拟CPU开启虚拟网络设备的中断后,立即将所述优选虚 拟CPU调离物理CPU。
判断模块505,与所述调度模块504连接,用于以轮询方式判断调度模块 504记录
的优选虚拟CPU是否已经开启虚拟网络设备的中断,并将判断信息发送至调度模块504。所 述判断模块505利用Intel VT-x技术中的VM
Exit机制,在频繁发生的VM Exit处理函数中,以一种类轮询方式判断Favored VCPU是否已经打开设备中断。
该具体实施方式中,所述调度模块504,包括:延时调度单元5041,与所述终端持有者检测模块503和判断模块505连接,用于继续调度被标记为中断持有者的虚拟CPU运行在
物理CPU上,并将该虚拟CPU记录为优选虚拟CPU,并将优选虚拟CPU的记录信息发送给判断
模块505;即时调度单元5042,与所述判断模块505连接,用于将已关闭虚拟网络设备中断的优选虚拟CPU立即调离物理CPU;常规调度单元5043,与所述延时调度单元5041连接,用于将需要调离的未被标记为中断持有者的虚拟CPU立即调离出物理CPU。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (8)
- 一种针对中断持有者抢占问题的综合调度方法,其特征在于,包括以下步骤:步骤1:当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标 虚拟CPU,然后注入虚拟中断通知数据包的到达;步骤2:分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;步骤3:目标虚拟CPU接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据包;步骤4:当要将一虚拟CPU调离出物理CPU时,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;步骤5:以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,若已打开,则立即将所述优选虚拟CPU调离物理CPU。
- 根据权利要求1所述的针对中断持有者抢占问题的综合调度方法,其特征在于,步骤 1中根据中断重映射机制选择一虚拟CPU作为目标虚拟CPU。
- 根据权利要求1所述的针对中断持有者抢占问题的综合调度方法,其特征在于,步骤 4中,当要被调离出物理CPU的虚拟CPU未被标记为中断持有者,则立即将该虚拟CPU调离出物理CPU。
- 根据权利要求1所述的针对中断持有者抢占问题的综合调度方法,其特征在于,步骤 5中,在VM Exit处理函数中判断优选虚拟CPU是否已经打开虚拟网络设备的中断。
- 一种针对中断持有者抢占问题的综合调度装置,其特征在于,包括:多个虚拟CPU;选择模块,用于当虚拟网络设备接收到数据包时,从多个虚拟CPU中选择一个虚拟CPU作为目标虚拟CPU,然后注入虚拟中断通知数据包的到达,所述目标虚拟CPU用于接收所述虚拟中断,触发对应的中断处理函数,关闭所述虚拟网络设备的中断并进入轮询模式读取数据;中断持有者检测模块,用于分析所述虚拟中断的信息,并将所述目标虚拟CPU标记为中断持有者;调度模块,与所述中断持有者检测模块连接,用于当要将一虚拟CPU调离出物理CPU时,根据所述中断持有者检测模块标记的中断持有者信息,判断所述虚拟CPU是否被标记为中断持有者,若是,则继续调度该虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟 CPU,并且当优选虚拟CPU开启虚拟网络设备的中断后,立即将所述优选虚拟CPU调离物理 CPU;判断模块,与所述调度模块连接,用于以轮询方式判断优选虚拟CPU是否已经开启虚拟网络设备的中断,并将判断信息发送至调度模块。
- 根据权利要求5所述的针对中断持有者抢占问题的综合调度装置,其特征在于,所述选择模块用于根据中断重映射机制选择一虚拟CPU作为目标虚拟CPU。
- 根据权利要求5所述的针对中断持有者抢占问题的综合调度装置,其特征在于,所述调度模块包括:延时调度单元,与所述终端持有者检测模块连接,用于继续调度被标记为中 断持有者的虚拟CPU运行在物理CPU上,并将该虚拟CPU记录为优选虚拟CPU;即时调度单元, 与所述判断模块连接,用于将未被标记为中断持有者的虚拟CPU和已关闭虚拟网络设备中断的优选虚拟CPU立即调离物理CPU;常规调度单元,与所述延时调度单元连接,用于将需要调离的未被标记为中断持有者的虚拟CPU立即调离出物理CPU。
- 根据权利要求5所述的针对中断持有者抢占问题的综合调度装置,其特征在于,所述 判断模块用于在VM Exit处理函数中判断优选虚拟CPU是否已经开启虚拟网络设备的中断。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/467,933 US11269675B2 (en) | 2017-12-25 | 2018-06-25 | Comprehensive scheduling method and device for problem of interruptability holder preemption |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201711419235.4A CN108123850B (zh) | 2017-12-25 | 2017-12-25 | 针对中断持有者抢占问题的综合调度方法及装置 |
| CN201711419235.4 | 2017-12-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019128158A1 true WO2019128158A1 (zh) | 2019-07-04 |
Family
ID=62231742
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2018/092618 Ceased WO2019128158A1 (zh) | 2017-12-25 | 2018-06-25 | 针对中断持有者抢占问题的综合调度方法及装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11269675B2 (zh) |
| CN (1) | CN108123850B (zh) |
| WO (1) | WO2019128158A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108123850B (zh) * | 2017-12-25 | 2020-04-24 | 上海交通大学 | 针对中断持有者抢占问题的综合调度方法及装置 |
| CN109800073B (zh) * | 2019-01-28 | 2021-06-18 | Oppo广东移动通信有限公司 | 实时进程的调度方法、装置、终端及存储介质 |
| CN111124608B (zh) * | 2019-12-17 | 2023-03-21 | 上海交通大学 | 一种面向多核虚拟机的精确低延迟中断重定向方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100138208A1 (en) * | 2008-11-28 | 2010-06-03 | Hitachi, Ltd. | Virtual machine system and method for controlling interrupt thereof |
| CN103744716A (zh) * | 2014-01-15 | 2014-04-23 | 上海交通大学 | 一种基于当前vcpu调度状态的动态中断均衡映射方法 |
| CN105210041A (zh) * | 2013-05-21 | 2015-12-30 | Arm有限公司 | 针对虚拟处理器处理并路由中断 |
| CN106095578A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 基于硬件辅助技术和虚拟cpu运行状态的直接中断递交方法 |
| CN108123850A (zh) * | 2017-12-25 | 2018-06-05 | 上海交通大学 | 针对中断持有者抢占问题的综合调度方法及装置 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6795873B1 (en) * | 2000-06-30 | 2004-09-21 | Intel Corporation | Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts |
| US8489789B2 (en) * | 2010-02-05 | 2013-07-16 | Advanced Micro Devices, Inc. | Interrupt virtualization |
| CN101968746B (zh) * | 2010-09-02 | 2016-03-02 | 北京航空航天大学 | 一种内核虚拟机组织架构模式的实现方法 |
| EP2575040A1 (de) * | 2011-09-28 | 2013-04-03 | Siemens Aktiengesellschaft | Verfahren für die Verarbeitung von Unterbrechungsanforderungen eines Datenverarbeitungsgerätes und Virtualisierungssteuerung für ein Datenverarbeitungsgerät |
| US9697150B2 (en) * | 2013-09-04 | 2017-07-04 | Jory Schwach | Real-time embedded system |
| US10437308B2 (en) * | 2017-06-05 | 2019-10-08 | Red Hat, Inc. | Predictive virtual machine halt |
-
2017
- 2017-12-25 CN CN201711419235.4A patent/CN108123850B/zh active Active
-
2018
- 2018-06-25 WO PCT/CN2018/092618 patent/WO2019128158A1/zh not_active Ceased
- 2018-06-25 US US16/467,933 patent/US11269675B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20100138208A1 (en) * | 2008-11-28 | 2010-06-03 | Hitachi, Ltd. | Virtual machine system and method for controlling interrupt thereof |
| CN105210041A (zh) * | 2013-05-21 | 2015-12-30 | Arm有限公司 | 针对虚拟处理器处理并路由中断 |
| CN103744716A (zh) * | 2014-01-15 | 2014-04-23 | 上海交通大学 | 一种基于当前vcpu调度状态的动态中断均衡映射方法 |
| CN106095578A (zh) * | 2016-06-14 | 2016-11-09 | 上海交通大学 | 基于硬件辅助技术和虚拟cpu运行状态的直接中断递交方法 |
| CN108123850A (zh) * | 2017-12-25 | 2018-06-05 | 上海交通大学 | 针对中断持有者抢占问题的综合调度方法及装置 |
Non-Patent Citations (3)
| Title |
|---|
| HAIBING GUAN: "SR-IOV Based Network Interrupt-Free Virtualization with Event Based Polling", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, 2 December 2013 (2013-12-02), pages 2596 - 2609, XP011533021, ISSN: 0733-8716, doi:10.1109/JSAC.2013.131202 * |
| HUANG ZHIQIANG: "Research and optimizations for high performance I/O virtualization based on SR-IOV", CHINESE MASTER'S THESIS FULL TEXT DATABASE (ELECTRONIC JOURNAL) ENGINEERING SCIENCE & TECHNOLOGY), no. 7, 15 July 2013 (2013-07-15), pages 1137 - 1138 * |
| JIAN LI: "vINT: Hardware-Assisted Virtual Interrupt Remapping for SMP VM with Scheduling Awareness", 2 015 IEEE 7TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE, 3 December 2015 (2015-12-03), pages 234 - 241, XP032859123 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN108123850B (zh) | 2020-04-24 |
| US11269675B2 (en) | 2022-03-08 |
| CN108123850A (zh) | 2018-06-05 |
| US20210149698A1 (en) | 2021-05-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10230608B2 (en) | RPS support for NFV by system call bypass | |
| CN101887393B (zh) | 基于半虚拟化技术的设备故障复现方法及系统 | |
| TWI590153B (zh) | 用於多線串處理之方法 | |
| WO2019128158A1 (zh) | 针对中断持有者抢占问题的综合调度方法及装置 | |
| US9058421B2 (en) | Trace correlation for profiling subroutines | |
| US6282601B1 (en) | Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt | |
| US8954996B2 (en) | Profiling the system providing performance statistics in real time | |
| TWI632453B (zh) | 監測伺服器的方法、監測裝置及監測系統 | |
| US7703095B2 (en) | Information processing and control | |
| US20100162014A1 (en) | Low power polling techniques | |
| WO2018171081A1 (zh) | 一种针对虚拟网络功能的自适应计算资源分配方法 | |
| CN102073535A (zh) | 基于硬件计数器虚拟化的多虚拟机性能分析方法 | |
| WO2024037544A1 (zh) | 一种调度跟踪和获取用户空间调用栈的方法和装置 | |
| US20110145829A1 (en) | Performance counter inheritance | |
| RU2312386C2 (ru) | Помечание событий меткой времени | |
| CN103744728B (zh) | 一种基于动态ple技术的虚拟机协同调度方法 | |
| WO2019203512A1 (en) | Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor | |
| WO2024187838A1 (zh) | 应用性能分析方法、装置、计算设备、系统及存储介质 | |
| US20050010908A1 (en) | Method, apparatus and computer program product for implementing breakpoint based performance measurement | |
| US20080276028A1 (en) | Method of detecting and recovering a lost system management interrupt (smi) in a multiprocessor (mp) environment | |
| CN121387563B (zh) | 一种多核实时处理系统的调度控制方法及装置、计算机存储介质 | |
| CN106406974A (zh) | 一种用于虚拟机的高性能定时器实现方法、虚拟机 | |
| CN111538580A (zh) | 一种嵌入式实时操作系统的线程信号操作方法与系统 | |
| WO2013159464A1 (zh) | 一种多核处理器时钟控制装置及控制方法 | |
| CN111124608B (zh) | 一种面向多核虚拟机的精确低延迟中断重定向方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18897455 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 10/11/2020) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18897455 Country of ref document: EP Kind code of ref document: A1 |