User-level interrupts in virtual machines

US12498963B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12498963-B2
Application numberUS-202117519384-A
CountryUS
Kind codeB2
Filing dateNov 4, 2021
Priority dateNov 4, 2021
Publication dateDec 16, 2025
Grant dateDec 16, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system comprises a physical processor to execute a virtual machine manager to run, on a logical core, a virtual machine including a guest user application and a virtual CPU. Circuitry coupled to an external device is to receive an interrupt request from the external device for the guest user application, locate a first interrupt data structure associated with the guest user application, generate a first interrupt with the first interrupt data structure based on a first interrupt vector for the interrupt request, locate a second interrupt data structure associated with the virtual CPU, and generate a first notification interrupt for the virtual CPU with the second interrupt data structure based on a first notification vector in the first interrupt data structure. The circuitry may generate a second notification interrupt for the logical core using a second notification vector and a logical core identifier from the second interrupt data structure.

First claim

Opening claim text (preview).

The invention claimed is: 1 . A system comprising: a physical processor including a logical core, the physical processor to execute a virtual machine manager to run a virtual machine on the logical core, the virtual machine including a guest user application and a virtual central processing unit (CPU); memory to store a first interrupt data structure associated with the guest user application and a second interrupt data structure associated with the virtual CPU; and circuitry communicatively coupled to an external device, the circuitry to: identify, in a first table, an entry corresponding to an interrupt request received from the external device for the guest user application, wherein the entry includes a first interrupt vector for the guest user application; obtain, from the entry, the first interrupt vector, a first pointer to the first interrupt data structure, and a second pointer to a second table that associates the first identifier of the virtual CPU to the second interrupt data structure; locate, based on first information in the entry, the first interrupt data structure including a first notification vector for the virtual CPU and a first identifier of the virtual CPU; generate a first interrupt for the guest user application with the first interrupt data structure based on the first interrupt vector; locate the second interrupt data structure based at least in part on second information in the entry and the first identifier of the virtual CPU; and generate a first notification interrupt for the virtual CPU with the second interrupt data structure based on the first notification vector for the virtual CPU. 2 . The system of claim 1 , wherein the circuitry is further to: generate a second notification interrupt for the logical core of the physical processor using a second notification vector and a second identifier of the logical core. 3 . The system of claim 2 , wherein the circuitry is further to: obtain the second notification vector and the second identifier of the logical core from the second interrupt data structure. 4 . The system of claim 1 , wherein the circuitry is further to: obtain the first identifier of the virtual CPU from the first interrupt data structure; locate a second table that associates a plurality of virtual CPU identifiers to a plurality of second interrupt data structures, respectively; and access the second table using the first identifier to locate the second interrupt data structure of the plurality of second interrupt data structures. 5 . The system of claim 1 , wherein the circuitry is further to: determine whether a posted type associated with the interrupt request is a user-level posted type, a kernel posted type, or a nested posted type. 6 . The system of claim 1 , wherein the circuitry is further to: subsequent to receiving the interrupt request, receive a second interrupt request for the guest user application; locate the first interrupt data structure associated with the guest user application; and in response to determining that a previous notification interrupt for the virtual CPU is pending, prevent generating another notification interrupt for the virtual CPU. 7 . The system of claim 1 , wherein the circuitry is further to: in response to determining that a previous notification interrupt for the logical core of the physical processor is pending, prevent generation of a second notification interrupt for the logical core of the physical processor. 8 . The system of claim 1 , wherein the external device is one of an input/output device or an accelerator. 9 . The system of claim 1 , wherein the physical processor and the circuitry are part of a hardware platform, and wherein the external device is either integrated with the hardware platform or separate from the hardware platform. 10 . An apparatus comprising: interrupt remapping hardware including circuitry communicatively coupled to an external device and a physical processor including a logical core, the circuitry to: receive an interrupt request from the external device for a guest user application running on a virtual central processing unit (CPU) in a virtual machine instantiated by a virtual machine manager (VMM) executed by the physical processor; identify, in a first table, an entry corresponding to the interrupt request and including a first interrupt vector for the guest user application; obtain, from the entry, the first interrupt vector, a first pointer to a first interrupt data structure, and a second pointer to a second table that associates the first identifier of the virtual CPU to the second interrupt data structure; use first information in the entry to locate the first interrupt data structure in memory, wherein the first interrupt data structure includes a first notification vector for the virtual CPU and a first identifier of the virtual CPU; generate a first interrupt for the guest user application by setting a first portion of the first interrupt data structure based on the first interrupt vector; use second information in the entry and the first identifier of the virtual CPU to locate a second interrupt data structure in the memory; and generate a first notification interrupt for the virtual CPU by setting a second portion of the second interrupt data structure based on the first notification vector for the virtual CPU. 11 . The apparatus of claim 10 , wherein the circuitry is further to: generate a second notification interrupt for the logical core of the physical processor using a second notification vector and a second identifier of the logical core. 12 . The apparatus of claim 11 , wherein the circuitry is further to: obtain the second notification vector and the second identifier of the logical core from the second interrupt data structure. 13 . The apparatus of claim 10 , wherein the circuitry is further to: obtain the first identifier of the virtual CPU from the first interrupt data structure; locate a second table that associates a plurality of virtual CPU identifiers to a plurality of second interrupt data structures, respectively; and access the second table using the first identifier to locate the second interrupt data structure of the plurality of second interrupt data structures. 14 . The apparatus of claim 10 , wherein the circuitry is further to: determine whether a posted type associated with the interrupt request is a user-level posted type, a kernel posted type, or a nested posted type. 15 . The apparatus of claim 10 , wherein the circuitry is further to: in response to determining that notification interrupts are to be suppressed for the logical core of the physical processor, prevent generation of a second notification interrupt for the logical core of the physical processor. 16 . A method comprising: receiving, by circuitry in a hardware platform, an interrupt request from an external device communicatively coupled to the circuitry, wherein the interrupt request targets a guest user application running on a virtual central processing unit (CPU) in a virtual machine corresponding to a logical core of a physical processor in the hardware platform; identifying, in a first table, an entry corresponding to the interrupt request and including a first interrupt vector for the guest user application; obtaining, from the entry, the first interrupt vector, a first pointer to a first interrupt data structure, and a second pointer to a second table that associates the first identifier of the virtual CPU to the second interrupt data structure; using a first pointer in the entry

Assignees

Inventors

Classifications

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • using interrupt (G06F13/32 takes precedence) · CPC title

  • Event management; Broadcasting; Multicasting; Notifications · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • G06F9/4812Primary

    by interrupt, e.g. masked · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12498963B2 cover?
A system comprises a physical processor to execute a virtual machine manager to run, on a logical core, a virtual machine including a guest user application and a virtual CPU. Circuitry coupled to an external device is to receive an interrupt request from the external device for the guest user application, locate a first interrupt data structure associated with the guest user application, gener…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 16 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).