Flexible Virtual Machine Memory Allocation via Dynamic Host Resource Adjustment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtual machine memory management techniques allocate a fixed amount of memory at boot-up, leading to inefficient and inflexible use of host memory resources, resulting in memory contention and potential instruction failures.
Innovation Solution
Implementing dynamic memory allocation by a virtual machine manager that adjusts memory based on events generated by the virtual machine and/or signals indicating high memory pressure, allowing additional memory to be allocated transparently without requiring the virtual machine to be reconfigured or rebooted.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a fixed amount of memory is allocated to a virtual machine at boot-up, then the virtual machine has guaranteed memory resources available, but the host memory resources are used inefficiently and inflexibly
Solution Approach 1:
The patent implements dynamic memory allocation by allowing the virtual machine to access memory beyond its initially allocated amount. When the virtual machine attempts to access unallocated memory, the system dynamically allocates additional memory from available host resources, transforming the static memory allocation model into a dynamic one that adapts to actual usage needs.
Solution Approach 2:
The system changes the memory allocation parameter from a fixed value determined at boot-up to a variable value that can be adjusted during runtime. The virtual machine's effective memory allocation evolves from an initial static amount to a dynamic amount that responds to memory access patterns and host availability, optimizing both reliability and efficiency.
2Productivity
If additional memory is allocated to a virtual machine during execution, then memory resource efficiency improves, but the virtual machine requires reconfiguration or reboot
Solution Approach 1:
The patent introduces a memory management intermediary layer that sits between the virtual machine and the physical memory resources. This intermediary handles memory allocation requests transparently, intercepting attempts to access unallocated memory and facilitating dynamic allocation without requiring the virtual machine to be aware of or participate in the reconfiguration process.
Solution Approach 2:
The system enables self-service memory allocation where the memory management infrastructure automatically handles additional allocation in response to virtual machine memory access patterns. The virtual machine effectively serves itself by attempting to access memory, and the system automatically provides the necessary resources without external intervention or virtual machine reconfiguration.
3Loss of information
If memory access is attempted at unallocated memory locations, then the system can detect memory pressure events, but instruction execution fails
Solution Approach 1:
The system performs preliminary action by pre-establishing monitoring mechanisms that detect memory access attempts to unallocated locations before instruction failure occurs. The memory management infrastructure is configured in advance to intercept and handle such access attempts, transforming potential failures into opportunities for dynamic memory allocation.
Solution Approach 2:
The patent converts the harmful event of memory access failure into a beneficial trigger for dynamic memory allocation. Instead of treating unallocated memory access as an error condition to be prevented, the system embraces it as a signal that indicates the virtual machine needs more memory, transforming a reliability problem into an opportunity for resource optimization.
Data Source
AI summary
A virtual machine monitor (VMM) of a computing system may provide flexible memory management for guest virtual machines (guest VMs). The VMM may allocate a flexible amount of memory that is accessible to a guest VM. A guest VM may be configured, such as by VMM, to utilize a larger fixed amount of guest memory. A memory access error may be generated when guest VM accesses a memory location outside of the flexible memory. The VMM may receive the memory access error and allocate additional memory including at least the memory location to the flexible memory. The memory location may then be accessed without triggering a failure.


