WO2022001808A1 - 一种系统以及中断处理方法 - Google Patents
一种系统以及中断处理方法 Download PDFInfo
- Publication number
- WO2022001808A1 WO2022001808A1 PCT/CN2021/102011 CN2021102011W WO2022001808A1 WO 2022001808 A1 WO2022001808 A1 WO 2022001808A1 CN 2021102011 W CN2021102011 W CN 2021102011W WO 2022001808 A1 WO2022001808 A1 WO 2022001808A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- interrupt
- virtual
- identifier
- physical
- processor
- 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
Images
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/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 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/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 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/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 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
Definitions
- the present application relates to the field of computers, and in particular, to a system and an interrupt processing method.
- Virtualization technology achieves "virtualization” and "isolation” of the physical computer hardware by adding a specific software layer to a physical computer, including the host layer and the virtual computer layer.
- Each software layer includes different operating states, such as user mode and kernel mode.
- the diversification of software levels and operating states increases the processing links for certain requirements within the physical computer, thereby increasing the processing delay of these requirements.
- Interrupt processing is a key requirement of computing devices.
- virtual machine monitor provides users with virtual interrupt controller and virtual interrupt translation service through interrupt virtualization technology.
- the process of delivering the virtual interrupt to the virtual processor is controlled based on the software of the virtual machine monitor.
- the VMM can implement the virtual interrupt by writing the virtual interrupt into a register corresponding to the virtual processor.
- the VMM can write the virtual interrupt into the system register corresponding to the virtual CPU, in order to ensure the timely virtual interrupt Write, the VMM will actively trigger the virtual machine to exit the virtual machine (VM-exit), and write the virtual interrupt to the system register corresponding to the virtual CPU when the virtual machine is re-run (VM-entry).
- VM-exit virtual machine to exit the virtual machine
- VM-entry write the virtual interrupt to the system register corresponding to the virtual CPU when the virtual machine is re-run
- the virtual processor temporarily stops running, thus increasing the virtual interrupt processing delay.
- the present application provides a computing device, the computing device includes a hardware layer and a host computer running on the hardware layer; wherein, the host computer is used to obtain a virtual interrupt; a virtual device in the virtual machine Virtual interrupts can be enabled, and virtual devices can be virtual devices simulated by software, such as serial ports simulated by software, etc.; the back-end driver (such as QEMU) in the host can capture the virtual machine's behavior of enabling virtual interrupts and trigger virtual interrupts , the virtual interrupt may include a virtual device identifier Device ID and a virtual interrupt vector identifier Vector ID, wherein, when the interrupt resource is initialized, a virtual device identifier Device ID and a virtual interrupt vector identifier Vector ID are allocated to the virtual processor of the virtual machine.
- Each virtual processor uniquely corresponds to one virtual device identifier Device ID and multiple virtual interrupt vector identifiers Vector ID;
- the virtual device identifier Device ID in the virtual interrupt can indicate which virtual device is enabled for the virtual interrupt, and the virtual interrupt vector identifier
- the Vector ID can indicate which virtual interrupt is specifically among the multiple virtual interrupts allocated by the virtual device;
- the virtual interrupt can be delivered to the VMM, and correspondingly, the VMM in the host machine 200 can obtain the virtual interrupt;
- the hardware layer is configured to acquire a corresponding virtual interrupt identifier and a virtual processor according to the physical interrupt identifier identifier; wherein the virtual interrupt is configured to interrupt a target virtual processor, the virtual interrupt and the physical interrupt identifier uniquely correspond to the virtual processor identifier, and the virtual processor identifier is used to indicate the target virtual processor a processor; and, passing the virtual interrupt identifier to the target virtual processor.
- the hardware layer may include a physical interrupt translation service (interrupt translation service, ITS) and a physical interrupt controller (generic interrupt controller, GIC), wherein the physical ITS can obtain a physical interrupt, and the physical interrupt is used to interrupt the virtual CPU, The physical ITS can determine which virtual CPU the physical interrupt corresponds to, and determine the virtual interrupt identifier corresponding to the physical interrupt (which can indicate which virtual interrupt is specific); the physical GIC can send the virtual interrupt identifier to the virtual CPU.
- ITS interrupt translation service
- GIC generator
- the physical ITS may include a register and an arithmetic circuit
- the register may store the correspondence between the physical interrupt and the virtual interrupt identifier (more specifically, the register stores the base address of the correspondence between the physical interrupt and the virtual interrupt identifier), And the correspondence between the physical interrupt and the virtual processor identifier (more specifically, the register stores the base address of the correspondence between the physical interrupt and the virtual processor identifier), and the arithmetic circuit can obtain the above-mentioned correspondence from the register ( The arithmetic circuit can obtain the above-mentioned base address from the register, and obtain the corresponding relationship between the physical interrupt and the virtual interrupt identifier, and the corresponding relationship between the physical interrupt and the virtual interrupt identifier from the memory based on the base address, and determine that the received Which virtual CPU corresponds to the physical interrupt identifier, and determine the virtual interrupt identifier corresponding to the physical interrupt identifier; GIC can be implemented based on the arithmetic circuit in the chip of the ARM architecture, and the physical GIC
- the hardware layer transparently transmits the virtual interrupt identifier to the target virtual processor, it does not need to be written into the system register corresponding to the virtual processor, and then the virtual processor obtains the virtual interrupt identifier in the system register when it is put into operation again. It is directly passed to the target virtual processor (specifically, the virtual interrupt identifier can be written to the interface interface corresponding to the virtual processor in the physical memory, and the virtual processor can obtain the virtual interrupt identifier based on the above interface), so the target virtual processing The processor does not need to exit, which reduces the delay caused by the exit of the virtual processor when the software implements virtual interrupt routing.
- the virtual interrupt uniquely corresponds to the virtual interrupt identifier.
- the computing device includes a hardware-based physical interrupt translation service ITS and a physical interrupt controller GIC;
- the physical ITS is used to obtain a corresponding virtual interrupt identifier and a virtual processor identifier according to the physical interrupt identifier;
- the physical GIC is used to transmit the virtual interrupt identifier to the target virtual processor.
- the host machine is further configured to: acquire the physical interrupt identifier corresponding to the virtual interrupt according to the virtual interrupt and a preconfigured first mapping relationship; the first mapping relationship represents multiple virtual interrupts and the corresponding relationship between each virtual interrupt and physical interrupt identifiers; exemplarily, the first mapping relationship may include N virtual interrupts and N physical interrupt identifiers, wherein N virtual interrupts and N physical interrupt identifiers exist In a one-to-one correspondence, each virtual interrupt in the N virtual interrupts corresponds to a physical interrupt identifier, and each physical interrupt identifier in the N physical interrupt identifiers corresponds to a virtual interrupt.
- the hardware layer is further configured to: obtain a virtual interrupt identifier corresponding to the physical interrupt according to the physical interrupt identifier and a preconfigured second mapping relationship; the second mapping relationship represents a plurality of physical interrupt identifiers and each physical interrupt identifier.
- the first mapping relationship may include N physical interrupt identifiers and N virtual interrupt identifiers, wherein there is a one-to-one correspondence between the N physical interrupt identifiers and the N virtual interrupt identifiers, and each of the N physical interrupt identifiers has a one-to-one correspondence.
- One physical interrupt identifier corresponds to one virtual interrupt identifier
- each virtual interrupt identifier in the N virtual interrupt identifiers corresponds to one physical interrupt identifier.
- the hardware layer is further configured to: obtain the corresponding virtual processor identifier according to the physical interrupt identifier and a preconfigured third mapping relationship; the third mapping relationship represents multiple physical interrupt identifiers and the corresponding relationship between each physical interrupt identifier and the virtual processor identifier.
- the first mapping relationship may include N physical interrupt identifiers and N virtual processor identifiers, wherein each physical interrupt identifier in the N physical interrupt identifiers corresponds to a virtual processor identifier, and the N virtual processor identifiers Each virtual processor identifier in the identifiers corresponds to one or more physical interrupt identifiers.
- a new mapping relationship needs to be preconfigured on the VMM side (hereinafter can be referred to as the first mapping relationship), and adaptively configure a new mapping relationship at the hardware layer (hereinafter referred to as the second mapping relationship and the third mapping relationship), the mapping relationship configured on the VMM side and the hardware
- the mapping relationship of the layer configuration can be mutually configured, so that: the VMM side can convert the acquired virtual interrupt (including the virtual device identifier Device ID and the virtual interrupt vector identifier Vector ID) to the hardware layer side (such as the physical ITS based on the first mapping relationship).
- identifiable physical interrupt identifier for example, including physical device identifier Device ID and physical interrupt vector identifier Vector ID
- the hardware layer side can determine the virtual interrupt identifier corresponding to the physical interrupt identifier based on the preconfigured second mapping relationship, and based on The preconfigured third mapping relationship determines the virtual processor identifier corresponding to the physical interrupt identifier, and the virtual processor identifier uniquely corresponds to the target virtual processor.
- the virtual interrupt identifier determined by the hardware layer based on the pre-configured second mapping relationship should be the virtual interrupt identifier corresponding to the virtual interrupt determined by the VMM in the virtual interrupt transfer implemented by software.
- the interrupt identifier is consistent, and the virtual processor identifier determined by the hardware layer based on the preconfigured third mapping relationship should be consistent with the virtual processor identifier corresponding to the virtual interrupt determined by the VMM in the implementation of the virtual interrupt delivery through software. .
- the hardware layer is further configured to: generate a physical interrupt according to the physical interrupt identifier
- the host can transmit the interrupt generation request carrying the physical interrupt identifier to the physical ITS in the hardware layer, and the physical ITS can generate a corresponding interrupt generation request based on the interrupt generation request carrying the physical interrupt identifier. Physical interruption.
- the host may write the physical interrupt identifier into a target register located at the hardware layer, so that the target register generates a physical interrupt.
- the host can write the physical interrupt identifier into a target register located at the hardware layer.
- the target register has the ability to generate physical interrupts in software, and the physical ITS can obtain physical interrupts from the target register.
- the virtual interrupt includes a virtual device identifier and a virtual interrupt vector identifier
- the host machine is further configured to: obtain, according to the virtual interrupt, a physical device identifier corresponding to the virtual device identifier, and a physical interrupt vector identifier corresponding to the virtual interrupt vector identifier; wherein the physical interrupt identifier includes the Physical device identification and the physical interrupt vector identification.
- the hardware layer is further configured to: acquire interrupt status information corresponding to the physical interrupt identifier, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be is delivered to the virtual processor; specifically, the interrupt status information may include at least one of the following: interrupt pending status, interrupt priority, and interrupt enable status; determine the virtual interrupt based on the interrupt status information An identification can be passed to the virtual processor.
- the interrupt pending information can indicate that the virtual interrupt is in a pending/active state
- the interrupt priority state can indicate the priority of the current virtual interrupt among all pending virtual interrupts
- the interrupt enable state can indicate whether the interrupt is It can be transmitted to the processor. Specifically, if the physical interrupt identifier is in the enabled state, and the priority state and the pending state satisfy the conditions, the virtual interrupt identifier corresponding to the physical interrupt identifier can be transmitted to the virtual processor.
- the host is also used for:
- the interrupt status information corresponding to the physical interrupt identifier is obtained from the hardware layer, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be transferred to the a virtual processor; the interrupt status information may include at least one of the following: interrupt pending status, interrupt priority, and interrupt enable status; write the interrupt status information into other computing devices other than the computing device in the hardware layer of the device.
- the present application provides an interrupt processing method, the method is applied to a host computer, and the host computer runs on a host computer on the hardware layer, and the method includes:
- the virtual interrupt is configured to interrupt a target virtual processor
- the virtual interrupt and the physical interrupt identifier uniquely correspond to the virtual processor identifier
- the virtual processor identifier is used to indicate the target virtual processor the processor, and transmits the virtual interrupt identifier to the target virtual processor.
- the virtual interrupt uniquely corresponds to the virtual interrupt identifier.
- obtaining the corresponding physical interrupt identifier according to the virtual interrupt includes:
- a physical interrupt identifier corresponding to the virtual interrupt is acquired according to the virtual interrupt and a preconfigured first mapping relationship; the first mapping relationship represents a plurality of virtual interrupts and a corresponding relationship between each virtual interrupt and a physical interrupt identifier.
- the virtual interrupt includes a virtual device identifier and a virtual interrupt vector identifier
- the obtaining the corresponding physical interrupt identifier according to the virtual interrupt includes:
- the method further includes:
- the interrupt status information corresponding to the physical interrupt identifier is obtained from the hardware layer, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be transferred to the A virtual processor; wherein, the interrupt state information may include at least one of the following: interrupt pending state, interrupt priority, and interrupt enable state;
- the interrupt status information is written into a hardware layer of a computing device other than the computing device.
- the present application provides an interrupt processing method, the method is applied to a computing device, the computing device includes a hardware layer and a host running on the hardware layer, and the method includes:
- the hardware layer acquires the corresponding virtual interrupt identifier and the virtual processor identifier according to the physical interrupt identifier; wherein, the physical interrupt identifier is the virtual interrupt acquired by the host machine according to the virtual interrupt and sent to the hardware layer.
- the physical interrupt identifier corresponding to the interrupt the virtual interrupt is configured as an interrupt target virtual processor, the virtual interrupt and the physical interrupt identifier uniquely correspond to the virtual processor identifier, and the virtual processor identifier is used to indicate the the target virtual processor; and passing the virtual interrupt identifier to the target virtual processor.
- the virtual interrupt uniquely corresponds to the virtual interrupt identifier.
- the computing device includes a hardware-based physical interrupt translation service ITS and a physical interrupt controller GIC;
- the hardware layer obtains the corresponding virtual interrupt identifier and virtual processor identifier according to the physical interrupt identifier, including:
- the physical ITS obtains, according to the physical interrupt identifier, a corresponding virtual interrupt identifier and a virtual processor identifier;
- the transmitting the virtual interrupt identifier to the target virtual processor includes:
- the physical GIC communicates the virtual interrupt identifier to the target virtual processor.
- the hardware layer acquiring the corresponding virtual interrupt identifier according to the physical interrupt identifier includes: the hardware layer acquiring the corresponding virtual interrupt identifier according to the physical interrupt identifier and a preconfigured second mapping relationship The virtual interrupt identifier corresponding to the physical interrupt; the second mapping relationship represents a plurality of physical interrupt identifiers and the corresponding relationship between each physical interrupt identifier and the virtual interrupt identifier.
- the method further includes:
- the third mapping relationship represents a plurality of physical interrupt identifiers and the correspondence between each physical interrupt identifier and the virtual processor identifier relation.
- the hardware layer obtains the corresponding virtual interrupt identifier and the virtual processor identifier according to the physical interrupt identifier, including: the hardware layer generates a physical interrupt according to the physical interrupt identifier;
- the method further includes:
- the hardware layer acquires interrupt status information corresponding to the physical interrupt identifier, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be delivered to the virtual processor; based on the interrupt status The information determines that the virtual interrupt identification can be communicated to the virtual processor.
- the method further includes: during the virtual machine hot migration process, the host acquires the interrupt status information corresponding to the physical interrupt identifier from the hardware layer, and the interrupt status information uses for indicating whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be delivered to the virtual processor; and writing the interrupt status information into the hardware layer of other computing devices other than the computing device.
- the present application provides an interrupt processing device, the device comprising:
- a virtual interrupt processing unit configured to acquire a virtual interrupt; acquire a corresponding physical interrupt identifier according to the virtual interrupt, and transmit the physical interrupt identifier to the hardware layer;
- a physical interrupt processing unit configured to obtain a corresponding virtual interrupt identifier and a virtual processor identifier according to the physical interrupt identifier; wherein the virtual interrupt is configured as an interrupt target virtual processor, the virtual interrupt and the physical interrupt
- the identifier uniquely corresponds to the virtual processor identifier, and the virtual processor identifier is used to indicate the target virtual processor; and the virtual interrupt identifier is transmitted to the target virtual processor.
- the interrupt processing apparatus can be applied to a computing device, and the computing device includes a hardware layer and a host computer running on the hardware layer; the interrupt processing apparatus includes a virtual interrupt processing device deployed in the host computer unit and a physical interrupt processing unit deployed in the hardware layer.
- the virtual interrupt uniquely corresponds to the virtual interrupt identifier.
- the computing device includes a hardware-based physical interrupt translation service ITS and a physical interrupt controller GIC;
- the physical ITS is used to obtain a corresponding virtual interrupt identifier and a virtual processor identifier according to the physical interrupt identifier;
- the physical GIC is used to transmit the virtual interrupt identifier to the target virtual processor.
- the virtual interrupt processing unit is further configured to: obtain a physical interrupt identifier corresponding to the virtual interrupt according to the virtual interrupt and a preconfigured first mapping relationship; the first mapping relationship Represents multiple virtual interrupts and the corresponding relationship between each virtual interrupt and the physical interrupt identifier;
- the physical interrupt processing unit is further configured to: obtain a virtual interrupt identifier corresponding to the physical interrupt according to the physical interrupt identifier and a preconfigured second mapping relationship; the second mapping relationship represents a plurality of physical interrupt identifiers and each physical interrupt identifier. The corresponding relationship between a physical interrupt identifier and a virtual interrupt identifier.
- the physical interrupt processing unit is further configured to: obtain the corresponding virtual processor identifier according to the physical interrupt identifier and a preconfigured third mapping relationship; the third mapping relationship Indicates multiple physical interrupt identifiers and the corresponding relationship between each physical interrupt identifier and the virtual processor identifier.
- the physical interrupt processing unit is further configured to: generate a physical interrupt according to the physical interrupt identifier;
- the virtual interrupt includes a virtual device identifier and a virtual interrupt vector identifier
- the virtual interrupt processing unit is further configured to: obtain, according to the virtual interrupt, a physical device identifier corresponding to the virtual device identifier, and a physical interrupt vector identifier corresponding to the virtual interrupt vector identifier; wherein the physical interrupt identifier includes the physical device identifier and the physical interrupt vector identifier.
- the physical interrupt processing unit is further configured to: acquire interrupt status information corresponding to the physical interrupt identifier, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier is may be communicated to the virtual processor; determining the virtual interrupt identifier may be communicated to the virtual processor based on the interrupt status information.
- the virtual interrupt processing unit is further configured to:
- the interrupt status information corresponding to the physical interrupt identifier is obtained from the hardware layer, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be transferred to the A virtual processor; writing the interrupt status information into hardware layers of other computing devices other than the computing device.
- an embodiment of the present application provides a computing device, where the computing device includes a processor and a memory connected through a bus, and the processor can call code in the memory to implement any one of the second aspect or the third aspect. interrupt handling method.
- An embodiment of the present application provides a computing device, the computing device includes a hardware layer and a host computer running on the hardware layer; wherein, the host computer is used to obtain a virtual interrupt; according to the virtual interrupt, obtain a corresponding The physical interrupt identifier is transmitted to the hardware layer; the hardware layer is used to obtain the corresponding virtual interrupt identifier and virtual processor identifier according to the physical interrupt identifier; wherein, the virtual interrupt identifier is configured to interrupt the target virtual processor, the virtual interrupt and the physical interrupt identifier uniquely correspond to the virtual processor identifier, and the virtual processor identifier is used to indicate the target virtual processor; A virtual interrupt flag is passed to the target virtual processor.
- the virtual interrupt acquired by the host is mapped to the physical interrupt of the physical layer, and the virtual interrupt identifier is transmitted to the virtual processor through the physical layer. Since the hardware layer transparently transmits the virtual interrupt identifier to the virtual processor, the virtual processor No exit is required, which reduces the delay caused by the exit of the virtual processor when the software implements virtual interrupt routing.
- FIG. 1 is a schematic diagram of the architecture of a computing node provided by an embodiment of the present application
- Figure 2a is a computing device according to an embodiment of the present invention.
- FIG. 2b is a schematic diagram of interrupt processing according to an embodiment of the present invention.
- FIG. 3 is a schematic diagram of interrupt processing according to an embodiment of the present invention.
- FIG. 4 is a schematic diagram of interrupt processing according to an embodiment of the present invention.
- FIG. 5 is a schematic diagram of interrupt processing according to an embodiment of the present invention.
- FIG. 6 is a schematic diagram of interrupt processing according to an embodiment of the present invention.
- FIG. 7 is a schematic diagram of interrupt processing according to an embodiment of the present invention.
- FIG. 8 is a schematic diagram of an interrupt processing apparatus according to an embodiment of the present invention.
- FIG. 9 is a schematic diagram of a computing device according to an embodiment of the present invention.
- plural means two or more.
- the term “and/or” or the character “/” in this application is only an association relationship to describe associated objects, indicating that there can be three relationships, for example, A and/or B, or A/B, which can indicate: There are three cases where A exists alone, A and B exist at the same time, and B exists alone.
- the computing node 100 may be a computing device in this embodiment of the present application.
- Virtualization is to virtualize hardware resources (such as processors, storage space in memory, and network resources) in the hardware layer of a computing node and share them for use by multiple virtual computers.
- a virtual computer is a general term for a running environment virtualized by software in all types of computing devices, and the concept includes virtual machines and containers.
- the computing node 100 may include a hardware layer, a host layer and a virtualization layer, and the virtualization layer includes two virtual machines.
- the hardware layer includes hardware such as two processors 110 , a memory 120 , and a physical interrupt management unit 160 .
- the number of processors 110 and the number of virtual machines may be more or less.
- Virtual machine One or more virtual computers simulated by software on a physical computer. These virtual machines run in a completely isolated environment and work like real computers.
- a guest operating system can be installed on the virtual machine, and one or more applications run on the guest operating system.
- Virtual machines can also access network resources. For applications running in a virtual machine, it is like working on a real computer.
- Virtual processor under the virtualization technology, a representation of a physical processing unit provided to a virtual computer in a shared or sharded manner, such as a virtual CPU (virtual central processing unit, vCPU).
- a virtual computer can be served by one or more virtual processors. When there are multiple virtual processors, usually one virtual processor is the master virtual processor, and the others are slave virtual processors.
- a host operating system 170 and a VMM 180 are deployed in the host, and the VMM 180 is equivalent to a hypervisor or other types of virtual monitoring devices in other virtualization architectures.
- the VMM 180 can be deployed inside the host operating system 170, or can be deployed separately from the host operating system 170.
- VMM 180 is responsible for managing one or more virtual machines running on it.
- a virtual machine includes a virtual hardware layer, a guest operating system 190, and various applications.
- the virtual hardware layer includes virtual hardware such as virtual memory (not shown in the figure), virtual processor 110-v, and the like.
- FIG. 1 this embodiment includes two virtual machines, and each virtual machine includes three virtual processors 110-v.
- the virtual processor 110-v is realized by a combination of software and hardware, and its operation is actually realized by the physical core reading and running the software program. For example, a physical core reads the software program and implements a specific mode of hardware-assisted virtualization of the physical core.
- the software program is run under the hood to implement a virtual processor 110-v. Therefore, the virtual processor 110-v needs to be scheduled on a certain physical core.
- the virtual processor 110-v and the physical core may be in a bound relationship, that is, a virtual processor 110-v is fixed to run on a certain physical core and cannot be scheduled to run on other physical cores, then the virtual processor is bound. core; a virtual processor 110-v can be scheduled to run on different physical cores as required, and the virtual processor is a non-core bound.
- the total number of virtual processors 110-v shown in FIG. 1 is 6, which is greater than the number of physical cores, 4.
- This scenario is called physical processor over-allocation.
- physical processor over-allocation there will be multiple virtual processors sharing the same physical core in a time-slicing manner or in other ways.
- This physical core is called an inclusive core. Of course, in the case of non-over-allocation, inclusive cores may also occur. If a physical core is bound to a virtual processor and is not shared by other virtual processors, the physical core is an exclusive core.
- a virtual machine is equivalent to an independent computer, so an action performed by a virtual machine can also be considered as a virtual processor performing the action, and the virtual processor is implemented by software, so the virtual processor’s execution action is actually a virtual processor.
- the running physical processor or physical core performs the action.
- a virtual machine can contain containers, which are equivalent to applications.
- the virtualization layer is implemented by a lightweight virtualization technology, such as libOS190.
- a libOS usually contains an application, the whole libOS is one or more libraries, and the application is linked into a single address space image.
- the embodiment of the present application generally takes a virtual machine implemented by a traditional virtualization technology as an example, and other types of virtualization architectures may refer to the implementation of the virtual machine.
- Host As a management layer, it is used to complete the management and allocation of hardware resources; present a virtual hardware platform for virtual machines; realize scheduling and isolation of virtual machines, etc.
- the host layer includes a host operating system and a virtual monitoring device, such as a virtual machine monitor (VMM) or a hypervisor, wherein the virtual monitoring device can be deployed within the host operating system, or can be Deployed outside the host operating system.
- the "host layer” may further include a privileged virtual machine (eg, a virtualization architecture Xen).
- the virtual hardware platform provides various hardware resources, such as virtual processors, virtual memory, virtual disks, and virtual network cards, to each virtual computer running on it. A virtual computer runs on a virtual hardware platform prepared for it by the host layer.
- the host layer is sometimes simply referred to as the host.
- the host can also include back-end drivers (such as open source software such as QEMU) to simulate a virtual disk with a cache to the virtual machine, including parsing the cache configuration and cache policy set by the user, such as cache size, cache type and cache priority, etc. , simulates a virtual disk with virtual machine cache that conforms to the user's configuration, provides the simulation of the first physical address required by the front-end driver, and is responsible for management operations involving modifying cache attributes in virtualization management, such as initiating online cache expansion. , capacity reduction and other tasks.
- the back-end driver can capture the virtual interrupt-enabled behavior of the virtual machine, trigger the corresponding virtual interrupt, and deliver the virtual interrupt to the VMM.
- the QEMU included in the host shown in FIG. 1 is only an illustration, and in practical applications, the host may also include other types of back-end drivers.
- the VMM 180 is responsible for scheduling the virtual processors 110-v of each virtual machine VM.
- a kernel-based virtual machine KVM is a typical VMM.
- the virtual interrupt management unit 181 is deployed at the host layer.
- the virtual interrupt management unit 181 may be deployed in the host operating system 170, may also be deployed in the VMM 180, or may be partially deployed in the host operating system 170, and may be partially deployed in the host operating system 170. Deployed within VMM 180.
- the virtual interrupt management unit 181 may be deployed within the VMM 180, may also be deployed within the host operating system 170 other than the VMM 180, or may be partially deployed within the VMM 180 , partially deployed inside the host operating system 170 other than the VMM 180.
- the virtual interrupt processing unit 181 may implement the steps related to the host in the interrupt processing method in the embodiment of the present application.
- Hardware layer The hardware platform on which the virtualized environment runs.
- the hardware layer may include a variety of hardware, for example, the hardware layer of a physical computer may include a processor and a memory, and may also include an interrupt controller, a network interface card (NIC), an input/output (I/O) ) equipment, etc.
- NIC network interface card
- I/O input/output
- the processor 110 may also be referred to as a physical processor.
- the physical core represents the smallest processing unit in the processor. As shown in FIG. 1 , in this embodiment, the processor may have two physical cores: core 0 and core 1, and multiple registers. In some other embodiments, the number of cores included in the processor may be more or less, and the number of cores included in each processor may also be different.
- a processor with multiple physical cores is called a multi-core processor. According to whether the kernel architecture is the same, it can be divided into homogeneous multi-core and heterogeneous multi-core.
- a virtual processor and a physical core can be in a bound relationship, that is, a virtual processor is fixed to run on a certain physical core and cannot be scheduled to run on other physical cores, then the virtual processor is a bound core; a virtual processor If it can be scheduled to run on different physical cores as required, the virtual processor is a non-core bound.
- the physical interrupt management unit 160 is responsible for collecting physical interrupt requests (also referred to as physical interrupts), and sending these physical interrupt requests to each processor 110 according to certain rules or to a virtual processor on the processor transparently. It should be noted that the physical interrupt management unit 160 may execute some steps related to the hardware layer of the interrupt processing method in this application.
- an interrupt refers to an event generated by software or hardware.
- Interrupts include virtual interrupts and physical interrupts.
- a physical interrupt is an event generated by hardware.
- the hardware sends the event to the processor.
- the processor receives the event, it temporarily stops the execution of the current program and executes the program corresponding to the event.
- the interrupt request generated by the hardware may be triggered by the hardware itself, or it may be generated by the software triggered by the hardware.
- Some hardware in the computer (such as network card, sound card, mouse, hard disk, etc.) can complete certain work without the intervention of the processor, but these hardware still need to interrupt the processor periodically to let the processor do some specific tasks for it. Work.
- the VMM needs to present a virtual interrupt architecture similar to the physical interrupt architecture for the virtual machine.
- the virtual interrupt also called virtualized interrupt
- Interrupts can be enabled by front-end drivers in the virtual machine and caught and triggered by back-end drivers in the host (eg QEMU).
- Interrupt controller It is set between the hardware that triggers the interrupt request and the processor. It is mainly used to collect interrupts generated by each hardware and send them to the processor according to a certain priority or other rules.
- Interrupt affinity refers to the correspondence between an interrupt and a processing subject (which may be a physical processing subject or a virtual processing subject, such as a physical core) that processes the interrupt request.
- the interrupt controller may send an interrupt request to one or more physical processing bodies corresponding to the interrupt request according to the interrupt affinity.
- Figure 2a shows a computing device according to an embodiment of the present invention.
- the computing device includes a host 200 and a hardware layer 203.
- the virtual device in the virtual machine can enable virtual interrupts, and the virtual device can be a virtual device simulated by software, such as a serial port simulated by software, etc.; the back-end driver (such as QEMU) in the host can capture the virtual interrupt
- the virtual interrupt is enabled by the virtual machine, and the virtual interrupt is triggered.
- the virtual interrupt may include the virtual device ID Device ID and the virtual interrupt vector ID Vector ID.
- each virtual processor uniquely corresponds to a virtual device ID Device ID and multiple virtual interrupt vector ID Vector IDs; the virtual device ID Device ID in the virtual interrupt can indicate that the virtual interrupt is Which virtual device is enabled, the virtual interrupt vector identifier Vector ID can indicate which virtual interrupt is specifically among the multiple virtual interrupts allocated by the virtual device.
- the virtual interrupt can be delivered to the VMM, and correspondingly, the VMM in the host 200 can obtain the virtual interrupt.
- the VMM in the host may acquire a virtual interrupt, acquire a corresponding physical interrupt identifier according to the virtual interrupt, and transmit the physical interrupt identifier to the hardware layer 203.
- the VMM in the host may acquire a virtual interrupt, acquire a corresponding physical interrupt identifier according to the virtual interrupt, and transmit the physical interrupt identifier to the hardware layer 203.
- the virtual interrupt in order to transparently transmit the virtual interrupt acquired by the VMM to the corresponding virtual processor through the hardware layer, the virtual interrupt needs to be converted into a physical interrupt that the hardware layer can recognize and process.
- the hardware layer may include a physical interrupt translation service (interrupt translation service, ITS) and a physical interrupt controller (generic interrupt controller, GIC), where the physical ITS may acquire a physical interrupt, and the physical interrupt is used to interrupt the virtual CPU,
- the physical ITS can determine which virtual CPU the physical interrupt corresponds to, and determine the virtual interrupt identifier corresponding to the physical interrupt (which can indicate which virtual interrupt is specific); the physical GIC can send the virtual interrupt identifier to the virtual CPU.
- VMM converts virtual interrupts into physical interrupts that the hardware layer can recognize and process, and can ensure that the virtual processor can receive the correct virtual interrupt identifier:
- the VMM From the perspective of the virtual interrupt delivery process implemented by software, after the VMM obtains the virtual interrupt (including the virtual device ID Device ID and the virtual interrupt vector ID Vector ID), it can determine the virtual interrupt ID and virtual processing corresponding to the virtual interrupt based on the software ITS.
- the virtual interrupt identifier here can be different from the above-mentioned virtual device identifier Device ID and virtual interrupt vector identifier Vector ID.
- the virtual interrupt identifier is vINTID; virtual processor The ID uniquely indicates the target virtual processor.
- a new mapping relationship needs to be preconfigured on the VMM side (hereinafter can be referred to as the first mapping relationship), and adaptively configure a new mapping relationship at the hardware layer (hereinafter referred to as the second mapping relationship and the third mapping relationship), the mapping relationship configured on the VMM side and the hardware
- the mapping relationship of the layer configuration can be mutually configured, so that: the VMM side can convert the acquired virtual interrupt (including the virtual device identifier Device ID and the virtual interrupt vector identifier Vector ID) to the hardware layer side (such as the physical ITS based on the first mapping relationship).
- identifiable physical interrupt identifier for example, including physical device identifier Device ID and physical interrupt vector identifier Vector ID
- the hardware layer side can determine the virtual interrupt identifier corresponding to the physical interrupt identifier based on the preconfigured second mapping relationship, and based on The preconfigured third mapping relationship determines the virtual processor identifier corresponding to the physical interrupt identifier, and the virtual processor identifier uniquely corresponds to the target virtual processor.
- the virtual interrupt identifier determined by the hardware layer based on the pre-configured second mapping relationship should be the virtual interrupt identifier corresponding to the virtual interrupt determined by the VMM in the virtual interrupt transfer implemented by software.
- the interrupt identifier is consistent, and the virtual processor identifier determined by the hardware layer based on the preconfigured third mapping relationship should be consistent with the virtual processor identifier corresponding to the virtual interrupt determined by the VMM in the implementation of the virtual interrupt delivery through software. .
- VMM can determine B (virtual interrupt identifier) and C (virtual processor identifier) from A (virtual interrupt), and then transparently transmit the virtual interrupt acquired by VMM to the hardware layer through the hardware layer.
- the VMM can determine D (physical interrupt identifier) from A (virtual interrupt)
- the physical layer can determine B (virtual interrupt identifier) and C (virtual processor identifier) from D (physical interrupt identifier). identification).
- an abstraction of a corresponding physical device can be configured for each virtual device in advance.
- the reason why it is called the abstraction of a physical device is that the physical device may not actually exist.
- the interrupt resource may include a physical interrupt identifier.
- the VMM may pre-store the interrupt resource corresponding to each virtual interrupt among the multiple virtual interrupts corresponding to the virtual device. Physical interrupt identifier.
- the virtual interrupt can include the virtual device identifier Device ID and the virtual interrupt vector identifier Vector ID, then the VMM can obtain the physical device identifier Device ID corresponding to the virtual device identifier Device ID, and the virtual interrupt vector identifier The physical interrupt corresponding to the Vector ID is obtained.
- Vector ID Vector ID the virtual interrupt vector ID.
- the VMM may maintain a preconfigured first mapping relationship
- the first mapping relationship may include a mapping relationship between virtual interrupts and physical interrupt identifiers
- the VMM may obtain the corresponding virtual interrupt through the first mapping relationship.
- Physical interrupt identifier More specifically, the first mapping relationship may include two tables (Table 1 and Table 2), wherein Table 1 includes a plurality of virtual device identifiers Device ID, and a pointer corresponding to each virtual device identifier Device ID, and the VMM can pass the pointer.
- the table 2 can include multiple virtual interrupt vector identifiers Vector ID corresponding to the virtual device identifier Device ID, and the physical interrupt vector identifier Vector corresponding to each virtual interrupt vector identifier Vector ID ID.
- the VMM can determine the physical interrupt identifier corresponding to the virtual interrupt.
- the host can transmit the physical interrupt identifier to the hardware layer. Specifically, the host can transmit the physical interrupt identifier to the physical ITS in the hardware layer.
- the physical ITS in the hardware layer can obtain the corresponding virtual interrupt identifier and virtual processor identifier according to the physical interrupt identifier; wherein, the virtual interrupt identifier is used to uniquely indicate the virtual interrupt, and the virtual processor identifier is used for Indicates the target virtual processor; the physical GIC in the hardware layer can transmit the virtual interrupt identifier to the target virtual processor corresponding to the virtual processor identifier.
- the hardware layer may further generate a physical interrupt according to the physical interrupt identifier.
- the host computer may also transmit an interrupt generation request carrying the physical interrupt identifier to the hardware layer, and the hardware layer may generate a physical interrupt according to the interrupt generation request.
- the host can transmit the interrupt generation request carrying the physical interrupt identifier to the physical ITS in the hardware layer, and the physical ITS can generate a corresponding interrupt generation request based on the interrupt generation request carrying the physical interrupt identifier. Physical interruption.
- the host may write the physical interrupt identifier into a target register located at the hardware layer, so that the target register generates a physical interrupt.
- the host can write the physical interrupt identifier into a target register located at the hardware layer.
- the target register has the ability to generate physical interrupts in software, and the physical ITS can obtain physical interrupts from the target register.
- the hardware layer may acquire the corresponding virtual interrupt identifier according to the physical interrupt identifier and the preconfigured second mapping relationship.
- the physical ITS in the hardware layer may maintain a preconfigured mapping relationship, and the mapping relationship may include a mapping relationship between physical interrupt identifiers, virtual interrupt identifiers, and virtual processors.
- the hardware layer may maintain a second mapping relationship, where the second mapping relationship includes a mapping relationship between a physical interrupt identifier and a virtual interrupt identifier, and the hardware layer may obtain a virtual interrupt identifier corresponding to the physical interrupt identifier through the second mapping relationship.
- the hardware layer can maintain a third mapping relationship, and the third mapping relationship includes the mapping relationship between the physical interrupt identifier and the virtual processor identifier.
- the hardware layer can obtain the virtual processor identifier corresponding to the physical interrupt identifier through the third mapping relationship.
- the processor ID is used to indicate the target virtual processor.
- the second mapping relationship and the third mapping relationship may be set at the hardware layer during the pre-configuration process, and the hardware layer may determine the physical data obtained from the VMM through the second mapping relationship and the third mapping relationship.
- the virtual processor corresponding to the interrupt identifier is determined, and the virtual interrupt identifier corresponding to the physical interrupt identifier is determined.
- the virtual interrupt identifier (eg vINTID) can uniquely indicate the virtual interrupt, and the hardware layer can transmit the virtual interrupt identifier to the target virtual processor.
- the virtual interrupt is used to interrupt the corresponding target virtual processor.
- the mapping relationship can cooperate with each other, so that the target virtual processor determined by the final hardware layer is the corresponding target virtual processor used by the virtual interrupt for interrupting.
- the virtual interrupt identifier obtained by the hardware layer by mapping the physical interrupt identifier needs to uniquely indicate the virtual interrupt.
- the target The virtual processor is equivalent to receiving the correct virtual interrupt identifier. Compared with the existing way of implementing virtual interrupt routing through VMM software, the above method is consistent from the point of view of the virtual processor.
- the routing table of the physical ITS (the second mapping relationship and the third mapping relationship in the above embodiment) is defined in the GICv4 specification, and an additional channel is opened for the virtual interrupt at the hardware layer.
- This channel The virtual interrupt can be transparently transmitted from the hardware layer to the target virtual processor.
- the hardware layer transparently transmits the virtual interrupt identifier to the target virtual processor, it does not need to be written into the system register corresponding to the virtual processor, and then the virtual processor obtains the virtual interrupt identifier in the system register when it is put into operation again. It is directly passed to the target virtual processor, so the virtual processor does not need to exit, which reduces the delay caused by the exit of the virtual processor when the software implements virtual interrupt routing.
- the hardware layer is further configured to: acquire interrupt status information corresponding to the physical interrupt identifier, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be transmitted to the The virtual processor; wherein, the interrupt status information may include at least one of the following: interrupt pending information, interrupt priority status, and interrupt enable status; it is determined based on the interrupt status information that the virtual interrupt identifier can be passed to the virtual processor.
- the interrupt pending information can indicate that the virtual interrupt is in a pending/active state
- the interrupt priority state can indicate the priority of the current virtual interrupt among all pending virtual interrupts
- the interrupt enable state can indicate whether the interrupt is It can be transmitted to the processor. Specifically, if the physical interrupt identifier is in the enabled state, and the priority state and the pending state satisfy the conditions, the virtual interrupt identifier corresponding to the physical interrupt identifier can be transmitted to the virtual processor.
- the physical interrupt controller in the hardware layer may acquire interrupt status information corresponding to the physical interrupt identifier, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be transmitted to
- the interrupt status information includes at least one of the following: interrupt pending information, interrupt priority status, and interrupt enable status; it is determined based on the interrupt status information that the virtual interrupt identifier can be transmitted to the virtual processor.
- An embodiment of the present application provides a computing device, the computing device includes a hardware layer and a host computer running on the hardware layer; wherein, the host computer is used to obtain a virtual interrupt; according to the virtual interrupt, obtain a corresponding The physical interrupt identifier is transmitted to the hardware layer; the hardware layer is used to obtain the corresponding virtual interrupt identifier and virtual processor identifier according to the physical interrupt identifier; wherein, the virtual interrupt identifier is configured to interrupt the target virtual processor, the virtual interrupt and the physical interrupt identifier uniquely correspond to the virtual processor identifier, and the virtual processor identifier is used to indicate the target virtual processor; A virtual interrupt flag is passed to the target virtual processor.
- the virtual interrupt acquired by the host is mapped to the physical interrupt of the physical layer, and the virtual interrupt identifier is transmitted to the virtual processor through the physical layer. Since the hardware layer transparently transmits the virtual interrupt identifier to the virtual processor, the virtual processor No exit is required, which reduces the delay caused by the exit of the virtual processor when the software implements virtual interrupt routing.
- Figure 3 shows a more specific embodiment, as shown in Figure 3, the VMM may include a shadow map 2021, a shadow device 2022, and the interrupt system may include a shadow interrupt domain 2023, wherein the shadow map 2021 and the shadow device 2022 may An abstraction that provides a "shadow object" for each virtual device of the virtual machine.
- the front-end driver eg VirtIO driver
- the shadow map 2021 and the shadow device 2022 are responsible for linking each virtual interrupt of the virtual device to a physical interrupt on the host.
- VMM can intercept these operations, and configure the interrupt information of the virtual machine (for example, including the information related to the above-mentioned front-end driver enabling virtual interrupts, adjusting virtual interrupt routing related information, Modify the information related to the virtual interrupt configuration, etc.) and synchronize to the corresponding shadow map 2021 and shadow device 2022.
- the shadow map 2021 may include key information of virtual device registration, such as the device ID of the virtual device, the ID of the virtual interrupt vector, the upper limit of the number of virtual interrupts that the virtual processor can handle, etc., and the virtual routing information of the virtual interrupt of the device , such as the virtual interrupt identifier, the virtual processor corresponding to each virtual interrupt, and so on.
- the shadow device 2022 can apply for physical interrupt resources such as a physical interrupt identifier on the host for each virtual device.
- the shadow interrupt field 2023 may pass the physical interrupt identification to the physical ITS of the physical layer.
- the physical ITS of the hardware layer may include a physical interrupt routing table 2041, and the hardware layer may include a physical interrupt controller 2042, wherein the physical interrupt routing table 2041 may be a preconfigured mapping relationship, the mapping relationship It may include physical interrupt identifiers, virtual interrupt identifiers, and mapping relationships between virtual processors.
- the hardware layer may maintain a second mapping relationship, and the second mapping relationship may be a part of the above-mentioned physical interrupt routing table 2041.
- the second mapping relationship includes the mapping relationship between the physical interrupt identifier and the virtual interrupt identifier.
- the second mapping relationship obtains the virtual interrupt identifier corresponding to the physical interrupt identifier.
- the hardware layer may maintain a third mapping relationship, and the third mapping relationship may be a part of the above-mentioned physical interrupt routing table 2041.
- the third mapping relationship may include the mapping relationship between the physical interrupt identifier and the virtual processor, and the hardware layer may pass the third mapping relationship. The relationship obtains the virtual processor corresponding to the physical interrupt identifier.
- the physical interrupt controller 2042 may obtain the interrupt status information corresponding to the physical interrupt identifier according to the correspondence between the physical interrupt identifier and the interrupt status information, and determine based on the interrupt status information that the virtual interrupt identifier can be transferred to the virtual processing device.
- FIG. 4 shows more details than FIG. 3.
- the VMM can write the physical interrupt identification to a target register 2043 located at the hardware layer, so that the target register 2043 generates a physical interrupt.
- the target register has a physical interrupt that can be generated by software, and the ITS can obtain the physical interrupt from the target register.
- the VMM and the hardware layer need to be preconfigured.
- the virtual VirtIO device driver inside the virtual machine is loaded and initialized, and the related operations are intercepted by the VMM to establish a software routing table for virtual interrupts.
- the virtual VirtIO device driver inside the virtual machine enables the virtual device capability by writing to the peripheral component interconnect (PCI) configuration space, and this write operation is intercepted by the VMM.
- the VMM can register the key information of the virtual device (the device number of the virtual device, the virtual interrupt vector information, the upper limit of the number of virtual interrupts that the virtual processor can handle, etc.) to the VMM according to the protocol.
- VMM creates a shadow object for a registered virtual device, creates a shadow device with the help of the registered virtual device information, and applies to occupy the physical host device number and physical interrupt number resources accordingly.
- the requested physical interrupt number resource is registered in the shadow interrupt domain for management.
- the VMM can parse the routing information of each virtual interrupt of the virtual device through the registered virtual device, including information such as the target virtual interrupt routing device, the virtual interrupt number, and the target virtual processor.
- the shadow object parses the virtual interrupt routing relationship, translates and constructs the physical interrupt routing device format, uses the shadow device to correspond to the physical interrupt, and establishes the physical device interrupt routing table corresponding to the physical interrupt of the virtual device through the shadow interrupt domain management.
- the VMM parses the routing information of each virtual interrupt of the virtual device through the registered virtual device, including information such as the target virtual interrupt routing device, the virtual interrupt number, and the target virtual processor.
- the configuration of other attributes of virtual interrupts is translated with the help of shadow objects, and managed through the shadow interrupt domain, to configure/modify the shadow device interrupt configuration table.
- the host machine may also acquire interrupt status information corresponding to the physical interrupt identifier from the hardware layer during the virtual machine hot migration process, where the interrupt status information includes at least one of the following Types: interrupt pending information, interrupt priority state, interrupt enable state; write the interrupt state information into hardware layers of other computing devices other than the computing device.
- FIG. 5 is an example of a computing device in an embodiment of the application. As shown in FIG.
- the interrupt status information can be stored in an area 501 accessible to both the hardware layer and the VMM, then the hardware layer
- the physical interrupt processing unit 204 in can obtain the interrupt status information, and determine whether the virtual interrupt identifier should be transmitted to the corresponding virtual processor based on the interrupt status information, and in the virtual machine hot migration process, the VMM 201 can also be transferred from the hardware
- the layer acquires interrupt status information corresponding to the physical interrupt identifier, and writes the interrupt status information into hardware layers of other computing devices other than the computing device.
- the computing device provided by the embodiment of the present application is described below with reference to FIG. 6 .
- the computing device provided by the embodiment of the present application includes a virtual machine, a host machine, and a hardware layer; wherein, the virtual device in the virtual machine
- the interrupt can be triggered, and the corresponding front-end driver will enable virtual interrupt.
- the back-end driver in the host can capture the behavior of the front-end driver to enable virtual interrupt and trigger the virtual interrupt.
- the IRQFD subsystem can receive the virtual interrupt triggered by the back-end driver.
- the shadow device module can determine the physical interrupt identifier of the virtual interrupt, and the shadow interrupt domain transfers the physical interrupt identifier to the physical ITS of the hardware layer through the physical ITS driver, and the physical ITS can determine The physical interrupt identifier corresponds to the virtual interrupt identifier and the target virtual processor, and the physical GIC transmits the virtual interrupt identifier to the target virtual processor VCPU.
- the computing device provided by the embodiment of the present application is described below with reference to FIG. 7 . As shown in FIG.
- the computing device provided by the embodiment of the present application includes a virtual machine, a host machine, and a hardware layer; wherein, in order to ensure the interruption of software and hardware State consistency, the virtual GIC in the VMM needs to obtain the interrupt status information in the physical GIC, and update the interrupt status information of the corresponding virtual interrupt; specifically, as shown in Figure 7, the back-end driver can trigger the status Synchronization request.
- the request carries the information related to the virtual interrupt that needs to be synchronized.
- the shadow map and shadow object can decode the virtual interrupt information of the virtual device, convert it into the corresponding physical interrupt identifier, and send it to the shadow interrupt domain.
- the interrupt field transmits the physical interrupt identifier to the physical ITS of the physical layer, and the physical GIC can transmit the interrupt status information related to the physical interrupt identifier to the table (such as the pending table) that saves the interrupt status information in the host, and then the state synchronization system can
- the interrupt status information related to the physical interrupt identification is passed to the virtual GIC, so that the virtual GIC updates the interrupt status information of the virtual interrupt.
- FIG. 8 is a schematic structural diagram of an interrupt processing apparatus 800 provided by an embodiment of the present application.
- the computing device includes a hardware layer and a host computer running on the hardware layer; the interrupt processing apparatus includes a The virtual interrupt processing unit 801 in the host and the physical interrupt processing unit 802 deployed in the hardware layer; wherein,
- the virtual interrupt processing unit 801 is configured to acquire a virtual interrupt; acquire a corresponding physical interrupt identifier according to the virtual interrupt, and transmit the physical interrupt identifier to the hardware layer;
- the physical interrupt processing unit 802 is configured to obtain a corresponding virtual interrupt identifier and a virtual processor identifier according to the physical interrupt identifier; wherein the virtual interrupt is configured as an interrupt target virtual processor, and the virtual interrupt and the virtual processor The physical interrupt identifier uniquely corresponds to the virtual processor identifier, and the virtual processor identifier is used to indicate the target virtual processor; and,
- the virtual interrupt identifier is passed to the target virtual processor.
- the virtual interrupt processing unit 801 may be equivalent to the virtual interrupt management unit 181 shown in FIG. 1 , the virtual interrupt processing unit 202 shown in FIGS. 2 a and 2 b , and the shadow mapping and shadow mapping shown in FIGS. 3 to 7 . Device and shadow interrupt domains.
- the physical interrupt processing unit 801 may be equivalent to the physical interrupt management unit 160 shown in FIG. 1 , the physical interrupt processing unit 204 shown in FIGS. 2 a and 2 b , and the physical ITS and physical interrupt shown in FIGS. 3 to 7 .
- Interrupt Controller GIC Interrupt Controller
- the virtual interrupt uniquely corresponds to the virtual interrupt identifier.
- the computing device includes a hardware-based physical interrupt translation service ITS and a physical interrupt controller GIC;
- the physical ITS is used to obtain a corresponding virtual interrupt identifier and a virtual processor identifier according to the physical interrupt identifier;
- the physical GIC is used to transmit the virtual interrupt identifier to the target virtual processor.
- the virtual interrupt processing unit 801 is further configured to: obtain a physical interrupt identifier corresponding to the virtual interrupt according to the virtual interrupt and a preconfigured first mapping relationship; the first mapping The relationship represents multiple virtual interrupts and the corresponding relationship between each virtual interrupt and the physical interrupt identifier;
- the physical interrupt processing unit 802 is further configured to: obtain a virtual interrupt identifier corresponding to the physical interrupt according to the physical interrupt identifier and a preconfigured second mapping relationship; the second mapping relationship represents multiple physical interrupt identifiers and The corresponding relationship between each physical interrupt identifier and the virtual interrupt identifier.
- the physical interrupt processing unit 802 is further configured to: obtain the corresponding virtual processor identifier according to the physical interrupt identifier and a preconfigured third mapping relationship; the third mapping The relationship represents a plurality of physical interrupt identifiers and the corresponding relationship between each physical interrupt identifier and the virtual processor identifier.
- the physical interrupt processing unit 802 is further configured to: generate a physical interrupt according to the physical interrupt identifier;
- the virtual interrupt includes a virtual device identifier and a virtual interrupt vector identifier
- the virtual interrupt processing unit 801 is further configured to: obtain, according to the virtual interrupt, a physical device identifier corresponding to the virtual device identifier, and a physical interrupt vector identifier corresponding to the virtual interrupt vector identifier; wherein, the physical interrupt identifier Including the physical device identifier and the physical interrupt vector identifier.
- the physical interrupt processing unit 802 is further configured to: acquire interrupt status information corresponding to the physical interrupt identifier, where the interrupt status information is used to indicate a virtual interrupt identifier corresponding to the physical interrupt identifier Whether it can be transmitted to the virtual processor, the interrupt status information includes at least one of the following: interrupt pending status, interrupt priority, interrupt enable status; determine the virtual interrupt identifier based on the interrupt status information can be passed to the virtual processor.
- the virtual interrupt processing unit 801 is further configured to:
- the interrupt status information corresponding to the physical interrupt identifier is obtained from the hardware layer, where the interrupt status information is used to indicate whether the virtual interrupt identifier corresponding to the physical interrupt identifier can be transferred to the a virtual processor; the interrupt status information includes at least one of the following: interrupt pending status, interrupt priority, and interrupt enable status; write the interrupt status information into other computing devices other than the computing device in the hardware layer.
- the present application also provides a non-volatile computer-readable storage medium, the non-volatile computer-readable storage medium contains computer instructions for executing an interrupt processing method, the method is applied in a host computer, the host computer The host is located at a computing device, the computing device includes a hardware layer, and the non-volatile computer-readable storage medium includes first computer instructions for obtaining a virtual interrupt;
- the non-volatile computer-readable storage medium includes second computer instructions for obtaining a corresponding physical interrupt identifier according to the virtual interrupt, and transmitting the physical interrupt identifier to the hardware layer.
- the first computer instruction is used to obtain the corresponding physical interrupt identifier according to the virtual interrupt and the preconfigured first mapping relationship.
- the virtual interrupt includes a virtual device identifier and a virtual interrupt vector identifier
- the first computer instruction is used to obtain, according to the virtual interrupt, a physical device identifier corresponding to the virtual device identifier, and a physical interrupt vector identifier corresponding to the virtual interrupt vector identifier; wherein, the physical interrupt identifier includes the physical interrupt identifier.
- Device identification and the physical interrupt vector identification are used to obtain, according to the virtual interrupt, a physical device identifier corresponding to the virtual device identifier, and a physical interrupt vector identifier corresponding to the virtual interrupt vector identifier; wherein, the physical interrupt identifier includes the physical interrupt identifier.
- the non-volatile computer-readable storage medium further includes third computer instructions for acquiring, from the hardware layer, interrupt status information corresponding to the physical interrupt identifier during a virtual machine live migration process , the interrupt status information includes at least one of the following: pending information, priority information, and enable information; and the interrupt status information is written into hardware layers of other computing devices other than the computing device.
- the present application also provides a non-volatile computer-readable storage medium, where the non-volatile computer-readable storage medium contains computer instructions, and when the computer instructions are executed by a computer, the interrupt processing method in the above embodiment can be implemented.
- FIG. 9 is a schematic diagram of a computing device 900 provided by an embodiment of the application.
- the computing device 900 includes a processor 901 and a memory 902 connected through a bus, and the processor 901 can call
- the code in the memory 902 implements the interrupt processing method in the above-mentioned embodiment.
- the disclosed system, apparatus and method may be implemented in other manners.
- the apparatus embodiments described above are only illustrative.
- the division of units is only a logical function division.
- there may be other division methods for example, multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
- the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.
- the integrated unit if implemented in the form of a software functional unit and sold or used as an independent product, may be stored in a computer-readable storage medium.
- the technical solutions of the present application can be embodied in the form of software products in essence, or the parts that contribute to the prior art, or all or part of the technical solutions, and the computer software products are stored in a storage medium , including several instructions for causing a computer device (which may be a personal computer, a server, or other network device, etc.) to execute all or part of the steps of the method described in the embodiment of FIG. 2a of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program codes .
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
Claims (31)
- 一种计算设备,其特征在于,所述计算设备包括硬件层和运行在所述硬件层上的宿主机;其中,所述宿主机用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;所述硬件层用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求1所述的计算设备,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
- 根据权利要求1或2所述的计算设备,其特征在于,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求1至3任一所述的计算设备,其特征在于,所述宿主机还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;所述硬件层还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
- 根据权利要求1至4任一所述的计算设备,其特征在于,所述硬件层还用于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
- 根据权利要求1至5任一所述的计算设备,其特征在于,所述硬件层还用于:根据所述物理中断标识,生成物理中断;根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
- 根据权利要求1至6任一所述的计算设备,其特征在于,所述虚拟中断包括虚拟设 备标识和虚拟中断向量标识;所述宿主机还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
- 根据权利要求1至7任一所述的计算设备,其特征在于,所述硬件层还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
- 根据权利要求1至8任一所述的计算设备,其特征在于,所述宿主机还用于:在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
- 一种中断处理方法,其特征在于,所述方法应用于宿主机,所述宿主机运行在所述硬件层上的宿主机,所述方法包括:获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层,以便所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器,并将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求10所述的方法,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
- 根据权利要求11或12所述的方法,其特征在于,所述根据所述虚拟中断,获取对应的物理中断标识,包括:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系。
- 根据权利要求10至12任一所述的方法,其特征在于,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;所述根据所述虚拟中断,获取对应的物理中断标识,包括:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所 述物理中断向量标识。
- 根据权利要求10至13任一所述的方法,其特征在于,所述方法还包括:在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
- 一种中断处理方法,其特征在于,所述方法应用于计算设备,所述计算设备包括硬件层和运行在所述硬件层上的宿主机,所述方法包括:所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述物理中断标识为所述宿主机根据虚拟中断获取并发送至所述硬件层的所述虚拟中断对应的物理中断标识,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求15所述的方法,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
- 根据权利要求15或16所述的方法,其特征在于,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识,包括:所述物理ITS根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;所述将所述虚拟中断标识传递至所述目标虚拟处理器,包括:所述物理GIC将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求15至17任一所述的方法,其特征在于,所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识,包括:所述硬件层根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
- 根据权利要求15至18任一所述的方法,其特征在于,所述方法还包括:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
- 根据权利要求15至19任一所述的方法,其特征在于,所述硬件层根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识,包括:所述硬件层根据所述物理中断标识,生成物理中断;根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
- 根据权利要求15至20任一所述的方法,其特征在于,所述方法还包括:所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
- 一种中断处理装置,其特征在于,所述装置包括:虚拟中断处理单元,用于获取虚拟中断;根据所述虚拟中断,获取对应的物理中断标识,并将所述物理中断标识传递至所述硬件层;物理中断处理单元,用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;其中,所述虚拟中断被配置为中断目标虚拟处理器,所述虚拟中断和所述物理中断标识唯一对应于所述虚拟处理器标识,所述虚拟处理器标识用于指示所述目标虚拟处理器;以及,将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求22所述的装置,其特征在于,所述虚拟中断唯一对应于所述虚拟中断标识。
- 根据权利要求22或23所述的装置,其特征在于,所述计算设备包括基于硬件层实现的物理中断翻译服务ITS以及物理中断控制器GIC;所述物理ITS用于根据所述物理中断标识,获取对应的虚拟中断标识以及虚拟处理器标识;所述物理GIC用于将所述虚拟中断标识传递至所述目标虚拟处理器。
- 根据权利要求22至24任一所述的装置,其特征在于,所述虚拟中断处理单元还用于:根据所述虚拟中断以及预配置的第一映射关系,获取所述虚拟中断对应的物理中断标识;所述第一映射关系表示多个虚拟中断以及每个虚拟中断与物理中断标识的对应关系;所述物理中断处理单元还用于:根据所述物理中断标识以及预配置的第二映射关系,获取所述物理中断对应的虚拟中断标识;所述第二映射关系表示多个物理中断标识以及每个物理中断标识与虚拟中断标识的对应关系。
- 根据权利要求22至25任一所述的装置,其特征在于,所述物理中断处理单元还用 于:根据所述物理中断标识和预配置的第三映射关系,获取对应的所述虚拟处理器标识;所述第三映射关系表示多个物理中断标识以及每个物理中断标识与虚拟处理器标识的对应关系。
- 根据权利要求22至26任一所述的装置,其特征在于,所述物理中断处理单元还用于:根据所述物理中断标识,生成物理中断;根据所述物理中断,获取所述虚拟中断标识以及所述虚拟处理器标识。
- 根据权利要求22至27任一所述的装置,其特征在于,所述虚拟中断包括虚拟设备标识和虚拟中断向量标识;所述虚拟中断处理单元还用于:根据所述虚拟中断,获取所述虚拟设备标识对应的物理设备标识,以及所述虚拟中断向量标识对应的物理中断向量标识;其中,所述物理中断标识包括所述物理设备标识和所述物理中断向量标识。
- 根据权利要求22至28任一所述的装置,其特征在于,所述物理中断处理单元还用于:获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;基于所述中断状态信息确定所述虚拟中断标识可被传递至所述虚拟处理器。
- 根据权利要求22至29任一所述的装置,其特征在于,所述虚拟中断处理单元还用于:在虚拟机热迁移过程中,从所述硬件层获取所述物理中断标识对应的中断状态信息,所述中断状态信息用于指示所述物理中断标识对应的虚拟中断标识是否可被传递至所述虚拟处理器;将所述中断状态信息写入除所述计算设备之外的其他计算设备的硬件层中。
- 一种计算机可读介质,具有指令,该指令在由处理装置的一个或多个处理器执行时,可操作用于执行根据权利要求10-21中任一项所述的方法。
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020257031783A KR20250150147A (ko) | 2020-06-29 | 2021-06-24 | 시스템 및 인터럽트 처리 방법 |
| EP24221037.5A EP4550140A3 (en) | 2020-06-29 | 2021-06-24 | System and interrupt processing method |
| EP21832328.5A EP4170492B1 (en) | 2020-06-29 | 2021-06-24 | System and interrupt processing method |
| BR112022026693A BR112022026693A2 (pt) | 2020-06-29 | 2021-06-24 | Sistema e método de tratamento de interrupção |
| JP2022580544A JP7615474B2 (ja) | 2020-06-29 | 2021-06-24 | コンピューティングデバイス及び割り込み処理方法 |
| KR1020237002968A KR102865023B1 (ko) | 2020-06-29 | 2021-06-24 | 시스템 및 인터럽트 처리 방법 |
| US18/146,943 US12511152B2 (en) | 2020-06-29 | 2022-12-27 | System and interrupt handling method |
| US19/402,608 US20260079742A1 (en) | 2020-06-29 | 2025-11-26 | System and interrupt handling method |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010604993.9A CN113934504A (zh) | 2020-06-29 | 2020-06-29 | 一种系统以及中断处理方法 |
| CN202010604993.9 | 2020-06-29 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/146,943 Continuation US12511152B2 (en) | 2020-06-29 | 2022-12-27 | System and interrupt handling method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022001808A1 true WO2022001808A1 (zh) | 2022-01-06 |
Family
ID=79273031
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2021/102011 Ceased WO2022001808A1 (zh) | 2020-06-29 | 2021-06-24 | 一种系统以及中断处理方法 |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US12511152B2 (zh) |
| EP (2) | EP4550140A3 (zh) |
| JP (1) | JP7615474B2 (zh) |
| KR (2) | KR102865023B1 (zh) |
| CN (1) | CN113934504A (zh) |
| BR (1) | BR112022026693A2 (zh) |
| WO (1) | WO2022001808A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114726657A (zh) * | 2022-03-21 | 2022-07-08 | 京东科技信息技术有限公司 | 中断管理和数据收发管理的方法、装置及智能网卡 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115422106A (zh) * | 2022-09-30 | 2022-12-02 | 新华三信息技术有限公司 | 一种中断请求的处理方法和装置 |
| CN116521324B (zh) * | 2023-06-30 | 2024-04-12 | 深圳中安辰鸿技术有限公司 | 中断虚拟化处理方法、装置及电子设备 |
| CN116954830B (zh) * | 2023-09-18 | 2023-12-26 | 麒麟软件有限公司 | jailhouse下使虚拟机实现msi/x中断的方法 |
| CN120277021B (zh) * | 2025-06-10 | 2025-09-19 | 麒麟软件有限公司 | 一种基于arm64架构的串口设备直通客户机的方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090119538A1 (en) * | 2007-11-06 | 2009-05-07 | Vmware, Inc. | Storage Handling for Fault Tolerance in Virtual Machines |
| CN103559087A (zh) * | 2013-10-31 | 2014-02-05 | 华为技术有限公司 | 一种虚拟处理器之间的中断的实现方法、相关装置和系统 |
| 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 |
| CN106462451B (zh) * | 2014-06-20 | 2019-11-12 | 华为技术有限公司 | 虚拟化平台处理中断方法和相关设备 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61240333A (ja) * | 1985-04-17 | 1986-10-25 | Fujitsu Ltd | 入出力割込処理方式 |
| JPS6394629A (ja) | 1986-10-09 | 1988-04-25 | Matsushita Electric Ind Co Ltd | 半導体装置の製造方法 |
| US7209994B1 (en) * | 2004-05-11 | 2007-04-24 | Advanced Micro Devices, Inc. | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests |
| US8286162B2 (en) * | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
| GB2462258B (en) * | 2008-07-28 | 2012-02-08 | Advanced Risc Mach Ltd | Interrupt control for virtual processing apparatus |
| US8489789B2 (en) * | 2010-02-05 | 2013-07-16 | Advanced Micro Devices, Inc. | Interrupt virtualization |
| US9378162B2 (en) * | 2013-05-21 | 2016-06-28 | Arm Limited | Handling and routing interrupts to virtual processors |
| US9355050B2 (en) * | 2013-11-05 | 2016-05-31 | Qualcomm Incorporated | Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip |
| CN103699428A (zh) * | 2013-12-20 | 2014-04-02 | 华为技术有限公司 | 一种虚拟网卡中断亲和性绑定的方法和计算机设备 |
| CN103744716B (zh) | 2014-01-15 | 2016-09-07 | 上海交通大学 | 一种基于当前vcpu调度状态的动态中断均衡映射方法 |
| KR20160033517A (ko) * | 2014-09-18 | 2016-03-28 | 한국전자통신연구원 | 인터럽트 컨트롤러를 위한 하이브리드 가상화 방법 |
| WO2016092667A1 (ja) * | 2014-12-11 | 2016-06-16 | 株式会社日立製作所 | 計算機及び割込み制御方法 |
| CN109144679B (zh) * | 2017-06-27 | 2022-03-29 | 华为技术有限公司 | 中断请求的处理方法、装置及虚拟化设备 |
| US10642498B2 (en) * | 2017-11-07 | 2020-05-05 | Western Digital Technologies, Inc. | System and method for flexible management of resources in an NVMe virtualization |
| CN110609730B (zh) * | 2018-06-14 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种实现虚拟处理器间中断透传的方法及设备 |
| US11042494B1 (en) * | 2018-06-21 | 2021-06-22 | Amazon Technologies, Inc. | Direct injection of a virtual interrupt |
| US11188369B2 (en) * | 2018-11-26 | 2021-11-30 | International Business Machines Corporation | Interrupt virtualization |
-
2020
- 2020-06-29 CN CN202010604993.9A patent/CN113934504A/zh active Pending
-
2021
- 2021-06-24 KR KR1020237002968A patent/KR102865023B1/ko active Active
- 2021-06-24 EP EP24221037.5A patent/EP4550140A3/en active Pending
- 2021-06-24 WO PCT/CN2021/102011 patent/WO2022001808A1/zh not_active Ceased
- 2021-06-24 KR KR1020257031783A patent/KR20250150147A/ko active Pending
- 2021-06-24 BR BR112022026693A patent/BR112022026693A2/pt unknown
- 2021-06-24 EP EP21832328.5A patent/EP4170492B1/en active Active
- 2021-06-24 JP JP2022580544A patent/JP7615474B2/ja active Active
-
2022
- 2022-12-27 US US18/146,943 patent/US12511152B2/en active Active
-
2025
- 2025-11-26 US US19/402,608 patent/US20260079742A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090119538A1 (en) * | 2007-11-06 | 2009-05-07 | 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 |
| CN103559087A (zh) * | 2013-10-31 | 2014-02-05 | 华为技术有限公司 | 一种虚拟处理器之间的中断的实现方法、相关装置和系统 |
| CN106462451B (zh) * | 2014-06-20 | 2019-11-12 | 华为技术有限公司 | 虚拟化平台处理中断方法和相关设备 |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP4170492A4 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114726657A (zh) * | 2022-03-21 | 2022-07-08 | 京东科技信息技术有限公司 | 中断管理和数据收发管理的方法、装置及智能网卡 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4170492A4 (en) | 2023-12-13 |
| EP4170492B1 (en) | 2025-01-29 |
| US20260079742A1 (en) | 2026-03-19 |
| KR102865023B1 (ko) | 2025-09-26 |
| KR20230025915A (ko) | 2023-02-23 |
| BR112022026693A2 (pt) | 2023-01-24 |
| CN113934504A (zh) | 2022-01-14 |
| EP4550140A3 (en) | 2025-07-30 |
| KR20250150147A (ko) | 2025-10-17 |
| JP2023532077A (ja) | 2023-07-26 |
| US20230133273A1 (en) | 2023-05-04 |
| US12511152B2 (en) | 2025-12-30 |
| JP7615474B2 (ja) | 2025-01-17 |
| EP4550140A2 (en) | 2025-05-07 |
| EP4170492A1 (en) | 2023-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3985504B1 (en) | Virtual machine migration | |
| CN108243118B (zh) | 转发报文的方法和物理主机 | |
| US20200278880A1 (en) | Method, apparatus, and system for accessing storage device | |
| WO2022001808A1 (zh) | 一种系统以及中断处理方法 | |
| US7613847B2 (en) | Partially virtualizing an I/O device for use by virtual machines | |
| CN102819447B (zh) | 一种用于多根共享系统的直接i/o虚拟化方法和装置 | |
| RU2532708C2 (ru) | Способ и устройство для осуществления операции ввода/вывода в среде виртуализации | |
| CN104714846B (zh) | 资源处理方法、操作系统及设备 | |
| CN102497434B (zh) | 内核态虚拟网络设备的建立方法、及其包发送和接收方法 | |
| CN114691286B (zh) | 服务器系统、虚拟机创建方法及装置 | |
| EP3951591B1 (en) | Data processing method, apparatus, and device | |
| CN102799465B (zh) | 分布式虚拟化系统的虚拟中断管理方法及装置 | |
| CN113312143A (zh) | 云计算系统、命令处理方法及虚拟化仿真装置 | |
| US20250036481A1 (en) | Device virtualization method and related device | |
| US20240028381A1 (en) | Virtual i/o device management | |
| CN117389694A (zh) | 基于virtio-blk技术提升虚拟存储IO性能的方法 | |
| WO2023230766A1 (zh) | 一种数据传输方法及虚拟化系统 | |
| CN116418857A (zh) | 一种基于中介透传的NVMeoF计算节点虚拟化方法 | |
| CN120821533B (zh) | Io设备管理方法、设备、系统、介质及程序产品 | |
| US20250147886A1 (en) | I/o cache partitioning | |
| HK40069596A (zh) | 云计算系统、命令处理方法及虚拟化仿真装置 | |
| Huang | High performance network I/O in virtual machines over modern interconnects | |
| Pfefferle | vVerbs: a paravirtual subsystem for RDMA-capable network interfaces |
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: 21832328 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2022580544 Country of ref document: JP Kind code of ref document: A |
|
| REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112022026693 Country of ref document: BR |
|
| ENP | Entry into the national phase |
Ref document number: 112022026693 Country of ref document: BR Kind code of ref document: A2 Effective date: 20221227 |
|
| ENP | Entry into the national phase |
Ref document number: 20237002968 Country of ref document: KR Kind code of ref document: A |
|
| ENP | Entry into the national phase |
Ref document number: 2021832328 Country of ref document: EP Effective date: 20230120 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWP | Wipo information: published in national office |
Ref document number: 1020257031783 Country of ref document: KR |