Application-driven shared device queue polling in a virtualized computing environment
First Claim
Patent Images
1. A method comprising:
- engaging a hypervisor to process a request at a host operating system, said request received from an application, identifying one or more sockets associated with said application, and providing instructions to poll for messages;
in response to said request, determining whether a message, having an association with a first one of said one or more sockets, is stored in a memory space associated with said host operating system, wherein said message when stored in said memory space is to be passed to said application via said hypervisor;
identifying, by a processing device, a shared device queue of at least one device having previously stored messages for a second one of said one or more sockets associated with said application;
transmitting said instructions to said at least one device to enable polling of said shared device queue;
in response to said instructions to enable polling, determining whether a second message is stored in said shared device queue; and
determining whether said second message has an association with the second one of said sockets associated with said application, wherein said second message when stored in said shared device queue is to be passed to said application via said hypervisor.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for application-driven polling of shared device queues are provided. One or more applications running in non-virtualized or virtualized computing environments may be adapted to enable methods for polling shared device queues. Applications adapted to operate in a polling mode may transmit a request to initiate polling of shared device queues, wherein operating in the polling mode disables corresponding device interrupts. Applications adapted to operate in a polling mode may be regulated by one or more predefined threshold limitations.
29 Citations
33 Claims
-
1. A method comprising:
-
engaging a hypervisor to process a request at a host operating system, said request received from an application, identifying one or more sockets associated with said application, and providing instructions to poll for messages; in response to said request, determining whether a message, having an association with a first one of said one or more sockets, is stored in a memory space associated with said host operating system, wherein said message when stored in said memory space is to be passed to said application via said hypervisor; identifying, by a processing device, a shared device queue of at least one device having previously stored messages for a second one of said one or more sockets associated with said application; transmitting said instructions to said at least one device to enable polling of said shared device queue; in response to said instructions to enable polling, determining whether a second message is stored in said shared device queue; and determining whether said second message has an association with the second one of said sockets associated with said application, wherein said second message when stored in said shared device queue is to be passed to said application via said hypervisor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system, comprising:
-
a memory; a processing device, coupled to said memory; and a host operating system hosted by said computer system, having access to said memory and use of said processing device, said host operating system to communicate, via a hypervisor, with a guest operating system of a virtual machine, said host operating system to; engage the hypervisor to process a request at the host operating system, said request received from an application, identifying one or more sockets associated with said application, and providing instructions to poll for messages; in response to said request, determine whether a message, having an association with a first one of said one or more sockets, is stored in a memory space associated with said host operating system, wherein said message when stored in said memory space is to be passed to said application via said hypervisor; identify a shared device queue of at least one device having previously stored messages for a second one of said one or more sockets associated with said application; transmit said instructions to said at least one device to enable polling of said shared device queue; in response to said instructions to enable polling, determine whether a second message is stored in said shared device queue; and determine if said second message has an association with the second one of said sockets associated with said application, wherein said second message when stored in said shared device queue is to be passed to said application via said hypervisor. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer-readable storage medium programmed to include instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
-
engaging a hypervisor to process a request at a host operating system, said request received from an application, identifying one or more sockets associated with said application, and providing instructions to poll for messages; in response to said request, determining whether a message, having an association with a first one of said one or more sockets, is stored in a memory space associated with said host operating system, wherein said message when stored in said memory space is to be passed to said application via said hypervisor; identifying, by the processing device, a shared device queue of at least one device having previously stored messages for a second one of said one or more sockets associated with said application; transmitting said instructions to said at least one device to enable polling of said shared device queue; in response to said instructions to enable polling, determining whether a second message is stored in said shared device queue; and determining whether said second message has an association with the second one of said sockets associated with said application, wherein said second message when stored in said shared device queue is to be passed to said application via said hypervisor. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification