SHARING DATA BY A VIRTUAL MACHINE
First Claim
1. A computer-implemented method comprising:
- providing a memory block shared between a first endpoint and a second endpoint, the shared memory block including at least one buffer, a post counter, and an acknowledgment counter, and the first endpoint being one of a host for a virtual machine hosted by a computing device or the virtual machine, and the second endpoint being one of the host or another virtual machine hosted by the computing device;
sending, by the first endpoint, data to the second endpoint, the sending including;
identifying one of the at least one buffers as being currently owned by the first endpoint and storing data in that buffer;
detecting that the acknowledgment counter is equal to the post counter; and
following detecting that the acknowledgment counter is equal to the post counter, incrementing the post counter to signal that data has been stored for receipt by the second endpoint;
receiving, by the second endpoint, the data from the first endpoint, the receiving including;
detecting that the post counter has changed; and
following detecting that the post counter has changed, incrementing the acknowledgment counter to acknowledge receipt of the data.
3 Assignments
0 Petitions
Accused Products
Abstract
A memory block is provided that is shared between two endpoints. This first endpoint is either a host for a virtual machine or the virtual machine. The second endpoint is either the host or another virtual machine. The shared memory block includes a buffer, a post counter, and an acknowledgment counter. The block is employed for communicating data from the first endpoint to the second endpoint. Sending data to the second endpoint includes identifying the buffer as being currently owned by the first endpoint and storing data in the buffer. It is then detected that the acknowledgment counter is equal to the post counter. The post counter is then incremented to signal that data has been stored for receipt by the second endpoint. Receiving the data by the second endpoint includes detecting that the post counter has changed and then incrementing the acknowledgment counter to acknowledge receipt of the data.
-
Citations
19 Claims
-
1. A computer-implemented method comprising:
-
providing a memory block shared between a first endpoint and a second endpoint, the shared memory block including at least one buffer, a post counter, and an acknowledgment counter, and the first endpoint being one of a host for a virtual machine hosted by a computing device or the virtual machine, and the second endpoint being one of the host or another virtual machine hosted by the computing device; sending, by the first endpoint, data to the second endpoint, the sending including; identifying one of the at least one buffers as being currently owned by the first endpoint and storing data in that buffer; detecting that the acknowledgment counter is equal to the post counter; and following detecting that the acknowledgment counter is equal to the post counter, incrementing the post counter to signal that data has been stored for receipt by the second endpoint; receiving, by the second endpoint, the data from the first endpoint, the receiving including; detecting that the post counter has changed; and following detecting that the post counter has changed, incrementing the acknowledgment counter to acknowledge receipt of the data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer system comprising:
-
at least one processor; and a physical memory storing instructions that, when executed by the at least one processor, cause a first endpoint to communicate data to a second endpoint via a portion of the physical memory shared between the first endpoint and the second endpoint, the first endpoint being one of a host for a virtual machine hosted by the computer system or the virtual machine, and the second endpoint being one of the host or another virtual machine hosted by the computer system, the portion of the physical memory including; at least one buffer; a post counter incrementable by the first endpoint to signal to the second endpoint that data has been made available in one of the at least one buffers; and an acknowledgment counter incrementable by the second endpoint to acknowledge signaling that data has been made available in one of the at least one buffers. - View Dependent Claims (16, 17, 18)
-
-
19. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor of a computer system, cause a first endpoint to send data to a second endpoint using a memory block shared between the first endpoint and the second endpoint, the first endpoint being one of a host for a virtual machine hosted by the computer system or the virtual machine, and the second endpoint being one of the host or another virtual machine hosted by the computer system, and the shared memory block including at least one buffer, a post counter, and an acknowledgment counter, wherein sending the data includes:
-
identifying one of the at least one buffers as being currently owned by the first endpoint and storing data in that buffer; detecting that the acknowledgment counter is equal to the post counter; and following detecting that the acknowledgment counter is equal to the post counter, incrementing the post counter to signal that data has been stored for receipt by the second endpoint, and wherein the medium further stores additional instructions that cause the second endpoint to receive the data from the first endpoint, wherein receiving the data includes; detecting that the post counter has changed; and following detecting that the post counter has changed, incrementing the acknowledgment counter to acknowledge receipt of the data.
-
Specification