Guest idle based VM request completion processing

US9697029B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9697029-B2
Application numberUS-201414529015-A
CountryUS
Kind codeB2
Filing dateOct 30, 2014
Priority dateOct 30, 2014
Publication dateJul 4, 2017
Grant dateJul 4, 2017

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 hypervisor identifies one or more interrupts of a networking device for a virtual machine. The hypervisor queues the interrupts and determines the execution state of at least one virtual processor of a virtual machine. Upon determining that the execution state of the virtual processor is active, the hypervisor continues queuing the interrupts of the networking device. Upon determining that the execution state of the virtual processor has changed to idle, the hypervisor provides the queued interrupts to the virtual machine.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: identifying, by a processing device executing a hypervisor, one or more interrupts of a networking device for a virtual machine; queuing the one or more interrupts of the networking device; determining, by the processing device executing the hypervisor, an execution state of at least one virtual processor of the virtual machine; responsive to determining that the execution state is idle, providing, by the processing device executing the hypervisor, the one or more queued interrupts to the virtual machine; and responsive to determining that the one or more queued interrupts have been queued for a period of time that meets a first threshold condition: determining that the at least one virtual processor has transferred control of a physical processor to the hypervisor; and providing, by the processing device executing the hypervisor, the one or more queued interrupts to the virtual machine. 2. The method of claim 1 wherein providing the queued interrupts comprises: retrieving, by the hypervisor, the one or more queued interrupts from the networking device; and sending, by the hypervisor, the one or more queued interrupts to the at least one virtual processor of the virtual machine. 3. The method of claim 1 further comprising providing, by the hypervisor, the one or more queued interrupts to the virtual machine upon determining that the one or more queued interrupts have been queued for a period of time that meets a second threshold condition. 4. The method of claim 1 , wherein the at least one virtual processor represents a plurality of virtual processors. 5. The method of claim 4 , further comprising: receiving, by the hypervisor, information from the virtual machine that maps at least one of the plurality of virtual processors to the networking device; storing, by the hypervisor, the mapping information in a data store accessible to the hypervisor; and pairing, by the hypervisor, the one or more queued interrupts with the at least one of the plurality of virtual processors using the mapping information. 6. The method of claim 5 , further comprising: upon determining that the execution state of at least one of the plurality of virtual processors is idle, identifying the networking device associated with the at least one virtual processor in view of the mapping information; querying the networking device for one or more requests to be completed; and processing, by the hypervisor, the one or more requests. 7. A computing apparatus comprising: a memory; and a processing device, operatively coupled to the memory, to execute a hypervisor to: identify one or more interrupts of a networking device for a virtual machine; queue the one or more interrupts of the networking device; determine an execution state of at least one virtual processor of the virtual machine; responsive to determining that the execution state is idle, provide the one or more queued interrupts to the virtual machine; and responsive to determining that the one or more queued interrupts have been queued for a period of time that meets a first threshold condition: determine that the at least one virtual processor has transferred control of a physical processor to the hypervisor; and provide the one or more queued interrupts to the virtual machine. 8. The apparatus of claim 7 wherein to provide the queued interrupts, the processing device is to: retrieve, by the hypervisor, the one or more queued interrupts from the networking device; and send, by the hypervisor, the one or more queued interrupts to the at least one virtual processor of the virtual machine. 9. The apparatus of claim 7 , wherein the processing device is further to provide, by the hypervisor, the one or more queued interrupts to the virtual machine upon determining that the one or more queued interrupts have been queued for a period of time that meets a second threshold condition. 10. The apparatus of claim 7 , wherein the at least one virtual processor represents a plurality of virtual processors. 11. The apparatus of claim 10 , wherein the processing device is further to: receive, by the hypervisor, information from the virtual machine that maps at least one of the plurality of virtual processors to the networking device; store, by the hypervisor, the mapping information in a data store accessible to the hypervisor; and pair, by the hypervisor, the one or more queued interrupts with the at least one of the plurality of virtual processors using the mapping information. 12. The apparatus of claim 11 , wherein the processing device is further to: upon determining that the execution state of at least one of the plurality of virtual processors is idle, identify the networking device associated with the at least one virtual processor in view of the mapping information; query the networking device for one or more requests to be completed; and process, by the hypervisor, the one or more requests. 13. A non-transitory computer readable storage medium, having instructions stored therein, which when executed by a processing device of a computer system, cause the processing device to: identify, by the processing device executing an operating system, one or more interrupts of a networking device for an application; queue the one or more interrupts of the networking device; determine, by the processing device executing the operating system, an execution state of at least one application; responsive to determining that the execution state is idle, provide, by the processing device executing the operating system, the one or more queued interrupts to the application; and responsive to determining that the one or more queued interrupts have been queued for a period of time that meets a first threshold condition: determine that the at least one application has transferred control of a physical processor to the operating system; and provide, by the processing device executing the operating system, the one or more queued interrupts to the application. 14. The non-transitory computer readable storage medium of claim 13 , wherein to provide the queued interrupts, the processing device is to: retrieve, by the operating system, the one or more queued interrupts from the networking device; and send, by the operating system, the one or more queued interrupts to the at least one application. 15. The non-transitory computer readable storage medium of claim 13 , wherein the processing device is further to provide, by the operating system, the one or more queued interrupts to the application upon determining that the one or more queued interrupts have been queued for a period of time that meets a second threshold condition. 16. The non-transitory computer readable storage medium of claim 13 , wherein the processing device is further to: receive, by the operating system, information from the application that maps the application to the networking device; store, by the operating system, the mapping information in a data store accessible to the operating system; and pair, by the operating system, the one or more queued interrupts with the application using the mapping information. 17. The non-transitory computer readable storage medium of claim 16 , wherein the processing device is further to: upon determining that the execution state of the application is idle, identify the networking device associated with the application in view of the mapping information; query the networking device for one or more requests to be completed; and process, by the operating system,

Assignees

Inventors

Classifications

  • Network integration; Enabling network access in virtual machine instances · CPC title

  • Interrupt from clock, e.g. time of day · CPC title

  • Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox · CPC title

  • by interrupt, e.g. masked · CPC title

  • Hypervisor-specific management and integration aspects · 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 US9697029B2 cover?
A hypervisor identifies one or more interrupts of a networking device for a virtual machine. The hypervisor queues the interrupts and determines the execution state of at least one virtual processor of a virtual machine. Upon determining that the execution state of the virtual processor is active, the hypervisor continues queuing the interrupts of the networking device. Upon determining that th…
Who is the assignee on this patent?
Red Hat Israel Ltd, Red Hat Israel Ltd
What technology area does this patent fall under?
Primary CPC classification G06F9/45545. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 04 2017 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).