Virtualized I/O Memory Buffer Pool for Host Domain Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualized I/O operations in cloud computing environments suffer from performance issues such as low throughput and high latency due to frequent mapping and unmapping of guest memory buffers into the host domain's memory, which is resource-intensive and compromises security.

Innovation Solution

A virtualized computing system reserves a statically mapped pool of memory buffers for I/O operations, allowing the host domain to access these buffers directly without the need for frequent remapping, thereby reducing the overhead of hypercalls and TLB flushes, and ensuring security by preventing full mapping of guest memory into the host domain.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If guest memory buffers are mapped into the host domain's memory for I/O operations, then the host domain can access guest memory directly, but frequent mapping and unmapping operations increase overhead and compromise security

Engineering Contradiction:
ImproveI/O access speedVSAvoidmemory mapping overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-allocating and statically mapping a dedicated pool of memory buffers into the host domain's address space before I/O operations begin. This eliminates the need for frequent dynamic mapping and unmapping operations during runtime, reducing overhead and improving I/O performance while maintaining security boundaries.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If guest memory buffers are mapped into the host domain's memory for I/O operations, then direct access is enabled, but security is compromised due to potential security breaches

Engineering Contradiction:
Improvedirect memory accessVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies segmentation by creating a dedicated, isolated pool of memory buffers that is separately allocated and statically mapped into the host domain. This segmented memory region provides controlled direct access for I/O operations while maintaining security boundaries, preventing unauthorized access to the entire guest memory space.

Inventive Principle:
Principle #1Segmentation

3Productivity

If frequent mapping and unmapping of memory buffers is performed, then I/O operations can be executed, but throughput decreases due to resource-intensive operations

Engineering Contradiction:
ImproveI/O throughputVSAvoidtime for mapping operations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-allocating and statically mapping a dedicated pool of memory buffers into the host domain's address space before I/O operations begin. This eliminates the need for frequent dynamic mapping and unmapping operations during runtime, reducing overhead and improving I/O performance while maintaining security boundaries.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8938571B1Managing I/O operations in a virtualized environment
Publication Date: 2015.01.20 AMAZON TECH INC
  • US8938571B1 patent drawing
  • US8938571B1 patent drawing
  • US8938571B1 patent drawing

AI summary

A set of techniques is described for performing input/output (I/O) between a guest domain and a host domain in a virtualized environment. A pool of memory buffers is reserved for performing virtualized I/O operations. The reserved pool of memory buffers has static mappings that grant access to both the guest domain and the host domain. When a request to perform an I/O operation is received, the system can determine whether the memory buffers allocated to the I/O operation belong to the reserved pool. If the buffers are in the reserved pool, the host domain executes the I/O operation using the buffers without the need to map/unmap the buffers and perform TLB flushes. If the buffers are not in the reserved pool, the system can either copy the data into the reserved pool or perform the mapping and unmapping of the memory buffers to the address space of the host domain.