VM inter-process communication
First Claim
1. A method for enabling inter-process communication between a first application and a second application, the first application running within a first virtual machine (VM) in a host and the second application running within a second VM in the host, the method comprising:
- creating a shared memory region in physical memory for access during execution of the first application, the shared memory region being associated with a handle and being mapped to guest memory of the first VM, the guest memory of the first VM being virtualized memory of the physical memory of the host for the first VM;
enabling discovery of the presence of the shared memory region and the handle associated with the shared memory region for purposes of use by the second application;
in response to the second application discovering the presence of the shared memory region, attaching the shared region of memory to guest memory of the second VM for access during execution of the second application, the guest memory of the second VM being virtualized memory of the physical memory of the host, the attaching being based on the handle that uniquely identifies the shared region of memory and being executed by a framework that is a component of virtualization software in the host;
identifying a first list of physical memory pages in the physical memory as a first portion of the shared memory region that corresponds to the guest memory of the first VM;
identifying a second list of physical memory pages in the physical memory as a second portion of the shared memory region that corresponds to the guest memory of the second VM; and
mapping a portion of the guest memory of the second VM to the shared memory region in the physical memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is described for enabling inter-process communication between a first application and a second application, the first application running within a first virtual machine (VM) in a host and the second application running within a second VM in the host, The method includes receiving a request to attach a shared region of memory to a memory allocation, identifying a list of one or more physical memory pages defining the shared region that corresponds to the handle, and mapping guest memory pages corresponding to the allocation to the physical memory pages. The request may be received by a framework from the second application and includes a handle that uniquely identifies the shared region of memory as well as an identification of at least one guest memory page corresponding to the memory allocation.
-
Citations
20 Claims
-
1. A method for enabling inter-process communication between a first application and a second application, the first application running within a first virtual machine (VM) in a host and the second application running within a second VM in the host, the method comprising:
-
creating a shared memory region in physical memory for access during execution of the first application, the shared memory region being associated with a handle and being mapped to guest memory of the first VM, the guest memory of the first VM being virtualized memory of the physical memory of the host for the first VM; enabling discovery of the presence of the shared memory region and the handle associated with the shared memory region for purposes of use by the second application; in response to the second application discovering the presence of the shared memory region, attaching the shared region of memory to guest memory of the second VM for access during execution of the second application, the guest memory of the second VM being virtualized memory of the physical memory of the host, the attaching being based on the handle that uniquely identifies the shared region of memory and being executed by a framework that is a component of virtualization software in the host; identifying a first list of physical memory pages in the physical memory as a first portion of the shared memory region that corresponds to the guest memory of the first VM; identifying a second list of physical memory pages in the physical memory as a second portion of the shared memory region that corresponds to the guest memory of the second VM; and mapping a portion of the guest memory of the second VM to the shared memory region in the physical memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14)
-
-
9. A non-transitory computer-readable medium embodying program instructions for causing a computer to perform a method for enabling inter-process communication between a first application and a second application, the first application running within a first virtual machine (VM) in a host and the second application running within a second VM in the host, the method comprising:
-
creating a shared memory region in physical memory for access during execution of the first application, the shared memory region being associated with a handle and being mapped to guest memory of the first VM, the guest memory of the first VM being virtualized memory of the physical memory of the host for the first VM; enabling discovery of the presence of the shared memory region and the handle associated with the shared memory region for purposes of use by the second application; in response to the second application discovering the presence of the shared memory region, attaching the shared region of memory to guest memory of the second VM for access during execution of the second application, the guest memory of the second VM being virtualized memory of the physical memory of the host, the attaching being based on the handle that uniquely identifies the shared region of memory and being executed by a framework that is a component of virtualization software in the host; identifying a first list of physical memory pages in the physical memory as a first portion of the shared memory region that corresponds to the guest memory of the first VM; identifying a second list of physical memory pages in the physical memory as a second portion of the shared memory region that corresponds to the guest memory of the second VM; and mapping a portion of the guest memory of the second VM to the shared memory region in the physical memory. - View Dependent Claims (15, 16)
-
-
17. A host computer comprising:
-
physical memory; and at least one processor configured to; create a shared memory region in the physical memory for access during execution of a first application running within a first virtual machine (VM) in the host computer, the shared memory region being associated with a handle and being mapped to guest memory of the first VM, the guest memory of the first VM being virtualized memory of the physical memory of the host for the first VM; enable discovery of the presence of the shared memory region and the handle associated with the shared memory region for purposes of use by a second application running within a second VM in the host computer; in response to the second application discovering the presence of the shared memory region, attach the shared region of memory to guest memory of the second VM for access during execution of the second application, the guest memory of the second VM being virtualized memory of the physical memory of the host computer, a process of attaching the shared region of memory to the guest memory of the second VM being based on the handle that uniquely identifies the shared region of memory and being executed by a framework that is a component of virtualization software in the host computer; identify a first list of physical memory pages in the physical memory as a first portion of the shared memory region that corresponds to the guest memory of the first VM; identify a second list of physical memory pages in the physical memory as a second portion of the shared memory region that corresponds to the guest memory of the second VM; and map a portion of the guest memory of the second VM to the shared memory region in the physical memory. - View Dependent Claims (18, 19, 20)
-
Specification