Shared Memory Channel for Low-Latency VM Hypervisor Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computing systems, communication between clients in virtual machines (VMs) and filesystem servers in hypervisors involves multiple system calls and context switches, leading to latency issues when accessing shared storage, which is undesirable for most applications.
Innovation Solution
A method is introduced where a client driver in a VM allocates shared memory and establishes a shared memory channel with a filesystem server in the hypervisor, allowing direct communication through this channel without the need for system calls or VM exits, using inter-process communication and kernel cooperation to manage the shared memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If multiple system calls and context switches are used for communication between clients in VMs and filesystem servers in hypervisors, then communication can be established, but latency increases
Solution Approach 1:
The patent introduces a shared memory channel as an intermediary mechanism between the client driver in the VM and the filesystem server in the hypervisor. This shared memory channel acts as a direct communication pathway that eliminates the need for repeated system calls and context switches, thereby reducing communication latency while maintaining the necessary interaction between different address spaces.
Solution Approach 2:
The patent implements preliminary allocation of shared memory resources before actual communication occurs. The client driver allocates shared memory in advance, and the hypervisor prepares the corresponding memory region, establishing the communication pathway before data transfer begins. This preliminary setup eliminates the need for repeated system calls during actual data communication.
2Productivity
If system calls and context switches are used for communication, then process isolation is maintained, but performance deteriorates
Solution Approach 1:
The shared memory channel serves as an intermediary that allows direct data transfer between the client driver and filesystem server without requiring continuous system call overhead. This intermediary mechanism maintains process isolation through proper memory space management while dramatically improving data transfer performance by eliminating repeated context switches.
3Loss of time
If shared memory channel is established without system calls, then latency is reduced, but memory management complexity increases
Solution Approach 1:
The hypervisor kernel acts as an intermediary memory manager that handles the complexity of shared memory allocation and mapping between different address spaces. The client driver simply allocates memory in its own address space, and the hypervisor manages the correspondence with the filesystem server's memory region, abstracting away the complex memory management details while enabling low-latency communication.
Data Source
AI summary
Examples provide a method of communication between a client driver and a filesystem server. The client driver executes in a virtual machine (VM) and the filesystem server executes in a hypervisor. The method includes: allocating, by the client driver, shared memory in an address space of the VM for the communication; sending identification information for the shared memory from the client driver to the filesystem server through an inter-process communication channel between the client driver and the filesystem server; identifying, by the filesystem server in cooperation with a kernel of the hypervisor, the shared memory within an address space of the hypervisor, based on the identification information, to create a shared memory channel; sending commands from the client driver to the filesystem server through the shared memory channel; and receiving completion messages for the commands from the filesystem server to the client driver through the shared memory channel.


