Shared Memory Channel for VM Filesystem Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized computing systems, communication between client applications in virtual machines and filesystem servers in the hypervisor is hindered by latency due to multiple system calls and context switches, which are necessary for accessing shared storage.

Innovation Solution

Establishing a guest application shared memory channel between the client application and the filesystem server, allowing direct communication without system calls or context switches, by allocating shared memory, creating a shared memory channel, and submitting commands with authentication information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If communication between client application and filesystem server uses traditional system call mechanism, then security and address space isolation are maintained, but communication latency increases due to multiple context switches

Engineering Contradiction:
Improvecommunication latencyVSAvoidcommunication mechanism complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces a shared memory channel as an intermediary communication mechanism between the client application and filesystem server. This channel uses guest physical addresses that are directly accessible from user space, eliminating the need for traditional system calls and context switches while maintaining security through authentication information verification.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical system of system calls and context switches with a direct memory access mechanism. By using shared memory channels with guest physical addresses, the communication path is simplified from a multi-layered system call structure to a direct memory-based communication path, significantly reducing latency.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If shared memory channel is established between client application and filesystem server, then communication efficiency improves, but security requirements and authentication complexity increase

Engineering Contradiction:
Improvedata access speedVSAvoidauthentication mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements preliminary authentication by embedding authentication information within the shared memory channel structure itself. The authentication credentials are established beforehand and integrated into the memory channel configuration, allowing rapid verification without adding complex runtime authentication procedures.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple context switches are used for file access operations, then proper process management and security checks are performed, but overall system performance deteriorates

Engineering Contradiction:
Improveprocess management correctnessVSAvoidfile access time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The shared memory channel acts as a trusted intermediary that maintains process management correctness while eliminating context switches. The channel structure itself enforces proper access control and authentication, replacing the need for repeated context switch-based security checks with a single authenticated connection.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11698737B2Low-latency shared memory channel across address spaces without system call overhead in a computing system
Publication Date: 2023.07.11 VMWARE INC
  • US11698737B2 patent drawing
  • US11698737B2 patent drawing
  • US11698737B2 patent drawing

AI summary

Examples provide a method of communication between a client application and a filesystem server in a virtualized computing system. The client application executes in a virtual machine (VM) and the filesystem server executes in a hypervisor. The method includes: allocating, by the client application, first shared memory in a guest virtual address space of the client application; creating a guest application shared memory channel between the client application and the filesystem server upon request by the client application to a driver in the VM, the driver in communication with the filesystem server, the guest application shared memory channel using the first shared memory; sending authentication information associated with the client application to the filesystem server to create cached authentication information at the filesystem server; and submitting a command in the guest application shared memory channel from the client application to the filesystem server, the command including the authentication information.