Entries |
Document | Title | Date |
20080215793 | Method and Apparatus for Management Between Virtualized Machines and Virtualized Storage Systems - To manage physical paths between a server system and a storage system and information about routing between virtual machines and virtual storage systems in an integrated fashion. A computer system of the present invention includes: a computer and a storage system that stores data, in which the computer includes first information for managing the first resource relating to the computer; and the storage system includes second information for managing the second resource provided in the storage system, and in which a relation between the virtual machine and the virtual storage system is defined based on the first information and the second information. | 09-04-2008 |
20080244155 | METHODS AND APPARATUS TO PROTECT DYNAMIC MEMORY REGIONS ALLOCATED TO PROGRAMMING AGENTS - Methods and apparatus to protect dynamic memory regions allocated to programming agents are disclosed. An example method to protect a dynamic memory region disclosed herein comprises mapping protected memory regions to a protected page table for address translation associated with a protected agent, updating the protected page table with address information corresponding to the dynamic memory region during a context switch from execution of an unprotected agent to execution of the protected agent when the dynamic memory region was allocated for the unprotected agent prior to the context switch, and accessing the dynamic memory region during execution of the protected agent based on the address information in the protected page table without causing a subsequent context switch. | 10-02-2008 |
20080256286 | VERIFICATION OF NON VOLATILE STORAGE STORING PRESERVED UNNEEDED DATA - Non volatile storage may be employed to temporarily store data which is destaged to data storage drives. The non volatile storage is configured to preserve the data through a power outage. Some data may be preserved, but is not needed, such as the result of a failover to another non volatile storage. This unneeded data is tested to verify the non volatile storage by indicating whether the data survived the power cycle from full power to self refresh mode battery power to full power, without risking the loss of data that is needed. | 10-16-2008 |
20080263258 | Method and System for Migrating Virtual Machines Between Hypervisors - A method for migrating virtual machines between hypervisors is disclosed. Initially, metadata describing a virtual machine are automatically scanned and parsed. The structure of the metadata of a source virtual machine are automatically analyzed. Elements of this structure are mapped to corresponding entries of a target virtual machine. A target metadata descriptor to be used as part of the target virtual machine is generated. A predefined layout description of the data stored in a file system image of the source virtual machine read. A predefined layout description of the data to be stored in a file system image to be used at the target virtual machine is also read. The data are extracted from the source virtual machine. A template of a file system image for the target virtual system is generated. Storage space corresponding to the target virtual machine is allocated, and the extracted data are inserted into the allocated storage space. | 10-23-2008 |
20080270673 | Edge Router and Method for Dynamic Learning of an End Device MAC Address - An edge router (Broadband Remote Access Server) and a method are described herein that obtain a Media Access Control (MAC) address of an end device (consumer premises equipment). Once, the edge router obtains the MAC address of the end device then it can use Ethernet Operation, Administration and Maintenance (OAM) tools to troubleshoot the end device. | 10-30-2008 |
20080270674 | Adjusting Available Persistent Storage During Execution in a Virtual Computer System - The amount of virtual disk space that is available for use by software executing within a virtual machine may be dynamically adjusted while the virtual machine is running in a virtual computer system. According to one aspect, a method for flexible run-time reservation of disk space from a virtual machine is provided. The method includes designating for use by a first virtual machine, a fixed portion of disk space accessible by a computing system. The first virtual machine is activated. During operation of the first virtual machine, a portion of the fixed portion of the disk space designated for use by the first virtual machine is reserved from within the first virtual machine. Use of the reserved portion is controlled from outside of the first virtual machine. | 10-30-2008 |
20080313383 | Processor for Virtual Machines and Method Therefor - Apparatus and method are described for a data processing device. The data processor includes features suitable for executing a software virtual machine. The data processor provides an instruction set that supports object-level memory protection suitable for high speed operation. Memory control logic is provided to accommodate a configuration having relatively less random access memory (RAM) as compared to re-programmable, nonvolatile memory, and to improve access to the re-programmable, nonvolatile memory. | 12-18-2008 |
20090006713 | DYNAMIC VIRTUALIZED VOLUME - Providing a virtualized volume to a client and virtualized files on the virtualized volume by emulating a disk, emulating a file system, and storing an file corresponding to the each virtualized file on at least one of a plurality of volume layers. | 01-01-2009 |
20090006714 | METHOD FOR OPTIMIZING VIRTUALIZATION TECHNOLOGY AND MEMORY PROTECTIONS USING PROCESSOR-EXTENSIONS FOR PAGE TABLE AND PAGE DIRECTORY STRIPING - In a virtualized processor based system causing a transition to a virtual machine monitor executing on the processor based system in response to a modification of a page table of a guest executing in a virtual machine of the processor based system, and the virtual machine monitor responding to the transition by performing a verification action, and for each bit modified in the page table of the guest, reading a status indicator for the bit to determine if the bit is significant; and causing the transition only if the status indicator for any bit modified in the page table indicates that the bit is significant. | 01-01-2009 |
20090055571 | FORCING REGISTERED CODE INTO AN EXECUTION CONTEXT OF GUEST SOFTWARE - One embodiment of the present invention includes a method for: (a) executing guest computations in a virtual machine of the virtualization system; and (b) forcing execution of registered code into an execution context of the guest, wherein the forcing is performed from the virtualization system based on an execution trigger monitored without reliance on functionality of the guest software. | 02-26-2009 |
20090063749 | TRACKING DATA UPDATES DURING MEMORY MIGRATION - Methods, systems, and computer program products for tracking updates during memory migration. The method includes computer instructions for establishing communication from a source virtual machine to a target virtual machine, the source virtual machine including a memory. Contents of the memory on the source virtual machine are transmitted to the target virtual machine. The contents include a plurality of pages. Pages in the memory that are modified subsequent to being transmitted to the target virtual machine are tracked. The tracking includes creating a data structure having a plurality of bits corresponding to the pages in the memory, the bits indicating if the corresponding pages have been modified subsequent to being transmitted to the target virtual machine. The data structure also includes a first bit location index to identify the location of the first bit in the data structure that corresponds to a modified page. Bits in the data structure are updated in response to detecting that the corresponding pages have been modified subsequent to being transmitted to the target virtual machine. The data structure is scanned starting at the first bit location index to identify pages that have been modified subsequent to being transmitted to the target virtual machine. The identified pages are transmitted to the target virtual machine. | 03-05-2009 |
20090063750 | MIGRATING CONTENTS OF A MEMORY ON A VIRTUAL MACHINE - A system and computer program product for migrating contents of a memory on a virtual machine. The system includes a source virtual machine executing on a host system, the source virtual machine including a memory. The system also includes a hypervisor executing on the host system. The hypervisor is in communication with the source virtual machine and includes instructions. The instructions facilitate establishing communication from the source virtual machine to a target virtual machine, the source virtual machine including a memory. The contents of the memory on the source virtual machine are transmitted to the target virtual machine. The contents of the memory on the source virtual machine include a plurality of pages. It is determined if all or a subset of the pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine. If it is determined that all or a subset of the pages have been modified, then the modified pages, including a page location and page content for each of the modified pages, are transmitted to the target virtual machine. The determining and transmitting the modified pages continues until the number of remaining pages that have been modified is less than a threshold. The virtual machine is then paused the remaining pages are transmitted to the target virtual machine. | 03-05-2009 |
20090063751 | METHOD FOR MIGRATING CONTENTS OF A MEMORY ON A VIRTUAL MACHINE - A method for migrating contents of a memory on a virtual machine. The method includes computer instructions for establishing communication from a source virtual machine to a target virtual machine, the source virtual machine including a memory. The contents of the memory on the source virtual machine are transmitted to the target virtual machine. The contents of the memory on the source virtual machine include a plurality of pages. It is determined if all or a subset of the pages have been modified on the source virtual machine subsequent to being transmitted to the target virtual machine. If it is determined that all or a subset of the pages have been modified, then the modified pages, including a page location and page content for each of the modified pages, are transmitted to the target virtual machine. The determining and transmitting the modified pages continues until the number of remaining pages that have been modified is less than a threshold. The virtual machine is then paused the remaining pages are transmitted to the target virtual machine. | 03-05-2009 |
20090063752 | UTILIZING DATA ACCESS PATTERNS TO DETERMINE A DATA MIGRATION ORDER - Systems and computer program products for utilizing data access patterns to determine a data migration order. A system includes a source virtual machine executing on a host system, the source virtual machine including a memory. The system also includes a hypervisor executing on the host system, the hypervisor in communication with the source virtual machine and executing instructions. The instructions facilitate establishing communication with a target virtual machine. Access information for pages in the memory is collected and utilized to determine an order of migration for pages in the memory. The pages in the memory are transmitted to the target virtual machine in the order of migration. | 03-05-2009 |
20090063753 | METHOD FOR UTILIZING DATA ACCESS PATTERNS TO DETERMINE A DATA MIGRATION ORDER - A method for utilizing data access patterns to determine a data migration order. The method includes computer instructions for establishing communication from a source virtual machine to a target virtual machine, the source virtual machine including a memory. The access information for pages in the memory is collected and utilized to determine an order of migration for pages in the memory. The pages in the memory are transmitted to the target virtual machine in the order of migration. | 03-05-2009 |
20090094403 | STORAGE SYSTEM AND VIRTUALIZATION METHOD - The storage system of the present invention is able to generate one virtual logical device from different logical devices which exist in each of the different storage control units and remote-copy all or part of the virtual logical device to another logical device. The same virtual identifier is set for a volume of the first storage unit and for a volume of the second storage unit. The path control unit of the host identifies a plurality of volumes which have the same virtual identifier as one virtual volume. A remote copy pair can also be set by a virtual volume and a volume of the third storage unit. The setting of the virtual volume and the setting of the remote copy can be performed by means of an instruction from the management server. | 04-09-2009 |
20090113109 | Using Virtual Machine Cloning To Create a Backup Virtual Machine in a Fault Tolerant System - Techniques for creating a fault tolerant system in a virtual machine environment utilize a primary VM and a backup VM. To initialize the fault tolerant system, the backup VM and primary VM start from the same state. To achieve this in one embodiment, the primary VM is suspended and the state of the primary VM is copied to the backup VM. Once the backup VM has received all the primary VM's state, the primary VM is resumed. Subsequent state changes of the primary VM are buffered until the backup VM resumes, connects to the primary VM, and starts consuming the buffered content. Thereafter, synchronization is maintained by the primary VM's writing relevant state changes to a log and the backup VM's reading such relevant state changes from the log. | 04-30-2009 |
20090113110 | Providing VMM Access to Guest Virtual Memory - A virtual-machine-based system provides a mechanism for a virtual machine monitor (VMM) to process a hypercall received from an application running in the virtual machine (VM). A hypercall interface causes the virtual memory pages, needed by the VMM to process the hypercall, to be available to the VMM. In one embodiment, when virtual memory pages needed by the VMM to process the hypercall are not available to the VMM, the application is caused to access the needed pages, in response to which the required virtual memory becomes available to the VMM. | 04-30-2009 |
20090113111 | SECURE IDENTIFICATION OF EXECUTION CONTEXTS - A virtual-machine-based system that identifies an application or process in a virtual machine in order to locate resources associated with the identified application. Access to the located resources is then controlled based on a context of the identified application. Those applications without the necessary context will have a different view of the resource. | 04-30-2009 |
20090119443 | METHODS FOR PROGRAM DIRECTED MEMORY ACCESS PATTERNS - Systems and methods for program directed memory access patterns including a memory system with a memory, a memory controller and a virtual memory management system. The memory includes a plurality of memory devices organized into one or more physical groups accessible via associated busses for transferring data and control information. The memory controller receives and responds to memory access requests that contain application access information to control access pattern and data organization within the memory. Responding to memory access request includes accessing one or more memory devices. The virtual memory management system includes: a plurality of page table entries for mapping virtual memory addresses to real addresses in the memory; a hint state responsive to application access information for indicating how real memory for associated pages is to be physically organized within the memory; and a means for conveying the hint state to the memory controller. | 05-07-2009 |
20090125667 | METHOD OF CONTROLLING POWER CONSUMPTION OF A MEMORY ACCORDING TO MAPPING - There is provided a method of controlling power consumption of a memory, which is executed in a computer system including operation server and a management server. The operation server includes one or more memory chips which are units to control the power consumption of the memory, a power control module for controlling power consumption of the memory chips, and a virtualization module for operating one or more virtual servers. The management server manages the mapping between the one or more virtual servers and the one or more memory chips. The method comprises the steps of instructing the operation server to change the power consumption of the one or more memory chips based on whether the obtained access information is capable of achieving predetermined target performance and the mapping information, and changing the power consumption of the one or more memory chips based on the instruction from the management server. | 05-14-2009 |
20090144482 | Configuration identification exposure in virtual machines - In one embodiment, a computer system comprises a host machine comprising a plurality of compute resources, at least one secure memory location coupled to the host machine, wherein the secure memory location stores host machine configuration data, and a virtual machine host module coupled to the host machine. The virtual machine host module comprises logic to map a path to the secure memory location, receive a signal indicating whether a first virtual machine guest should be permitted access to the host machine configuration data, and associate at least a portion of the host machine configuration data with the first virtual machine guest when the when the signal indicates that the first virtual machine guest should be permitted to access the configuration data. | 06-04-2009 |
20090157941 | Managing Virtual Addresses Of Blade Servers In A Data Center - Methods, apparatus, and products for managing virtual addresses of blade servers in a data center are disclosed that include storing by a blade server management module (‘BSMM’), in non-volatile memory of a blade server, a parameter block, the parameter block including one or more virtual addresses for communications adapters of the blade server and one or more action identifiers, each action identifier representing a type of address modification; detecting, by a basic input-output system (‘BIOS’) module of the blade server upon powering on the blade server, the parameter block; and modifying, by the BIOS module of the blade server in dependence upon the one or more action identifiers of the parameter block, an address of at least one communications adapter of the blade server. | 06-18-2009 |
20090157942 | Techniques For Data Storage Device Virtualization - A data storage device comprises virtual storage devices that are each assigned to a subset of data sectors in a non-volatile memory of the data storage device. The data storage device receives configuration metadata for configuring each of the virtual storage devices from a host operating system. The configuration metadata is received in a standard format that is file system independent. The configuration metadata comprises a range of logical block addresses and a virtual storage device number assigned to each of the virtual storage devices. Each of the virtual storage device numbers is a unique identifier used by the data storage device to differentiate between the virtual storage devices. The data storage device uses the virtual storage device numbers and logical block addresses to identify data sectors in the virtual storage devices that are accessible by virtual machine operating systems. | 06-18-2009 |
20090187697 | Execute-Only Memory and Mechanism Enabling Execution From Execute-Only Memory for Minivisor - In one embodiment, a processor comprises an execution core configured to execute instructions; and a register configured to store an execute-only valid indication indicative of whether or not execution of instructions is permitted in pages that are indicated as execute-only in a set of page tables used by the processor for address translation. The execution core is configured, responsive to a fetch within an execute-only page, to signal a fault responsive to the execute-only valid indication indicating that execution is not permitted in the execute-only page, and wherein the execution core is configured to permit the fetch within the execute-only page responsive to the execute-only valid indication indicating that execution is permitted in the execute-only page. | 07-23-2009 |
20090187698 | Minivisor Entry Point in Virtual Machine Monitor Address Space - In one embodiment, a processor supports an alternate address space during execution of non-guest code (such as a minivisor or a virtual machine monitor (VMM)). The alternate address space may be the guest address space. An instruction in the minivisor/VMM may specify the alternate address space for a data access, permitting the minivisor/VMM to read guest memory state via the alternate address space. In another embodiment, a processor may implement a page table base address register dedicated for the minivisor's use. In still another embodiment, the minivisor may be implemented as a specified entry point in the VMM address space. | 07-23-2009 |
20090193173 | SECURE VIRTUAL ENVIRONMENT FOR PROVIDING TESTS - Aspects of the subject matter described herein relate to a secure virtual environment for providing tests to test takers. In aspects, a testing environment is set up that includes one or more virtual machines. A view to the virtual machines is provided to a test taking station on which a test taker may interact with and configure the virtual machines. The virtual machines in the testing environment are allowed to communicate with each other but are not allowed access to resources outside of the testing environment. After the test taker indicates that the test taker is done with the test, data related to the test is collected from the virtual machines. This data may then be used to score the test taker. | 07-30-2009 |
20090248949 | System and Method for Increased System Availability In Virtualized Environments - A method is provided for managing errors in a virtualized information handling system that includes an error detection system and a hypervisor allowing multiple virtual machines to run on the information handling system. The hypervisor may assign at least one memory region to each of multiple virtual machines. The error detection system may detect an error, determine a physical memory address associated with the error, and report that address to the hypervisor. Additionally, the hypervisor may determine whether the memory region assigned to each virtual machine includes the physical memory address associated with the error. The hypervisor may shut down each virtual machine for which a memory region assigned to that virtual machine includes the physical memory address associated with the error, and not shut down each virtual machine for which the memory regions assigned to that virtual machine do not include the physical memory address associated with the error. | 10-01-2009 |
20090248950 | USER DATA PROTECTION METHOD IN SERVER APPARATUS, SERVER APPARATUS AND COMPUTER PROGRAM - A user data protection method in which a management server includes an address replacement table having correspondence relation of memory addresses of a memory assigned to a virtual server and memory addresses of a memory assigned to a virtualization mechanism which is different from that at usual time, comprising the steps of: making, when an event occurs, the virtual server send virtual server identifier information for identifying the virtual server to the management server; making the management server detect the event; making the management server specify the virtual server in which the event occurs in accordance with the virtual server identifier information; sending the address replacement table to the virtualization mechanism of the physical server including the specified virtual server; and changing the correspondence relation of the memory addresses of the virtual server and the memory addresses of the virtualization mechanism on the basis of the address replacement table. | 10-01-2009 |
20090248951 | Maintaining Processor Resources During Architectural Events - In one embodiment of the present invention, a method includes switching between a first address space and a second address space, determining if the second address space exists in a list of address spaces; and maintaining entries of the first address space in a translation buffer after the switching. In such manner, overhead associated with such a context switch may be reduced. | 10-01-2009 |
20090292858 | Distributed Virtual Switch for Virtualized Computer Systems - A method for persisting a state of a virtual port in a virtualized computer system is described. A distributed virtual port (DVport) is stored in a persistent storage location, the DVport comprising a state of a corresponding virtual port and configuration settings of the virtual port. In addition, an association between the virtual port and the virtual network interface card (VNIC) connected to the virtual port is stored. When a virtual machine corresponding to the VNIC is restarted, the state from the DVport is restored to a new virtual port from the persistent storage location. | 11-26-2009 |
20090300263 | Virtualization with Merged Guest Page Table and Shadow Page Directory - In a computing system having virtualization software including a guest operating system (OS), a method for providing page tables that includes: providing a guest page table used by the guest OS and a shadow page table and a shadow page directory used by the virtualization software wherein: at least a portion of the guest page table and the shadow page directory are the same; and the portions that are the same are shared in computer memory by the guest page table and the shadow page directory. | 12-03-2009 |
20090300264 | Virtualization with Fortuitously Sized Shadow Page Tables - In a computing system having virtualization software including a guest operating system (OS), a method for providing page tables that includes: providing a guest page table used by the guest OS and a shadow page table used by the virtualization software wherein at least a portion of the guest page table and the shadow page table share computer memory; wherein: machine pages have a predetermined size; and the virtualization software maps guest OS physical pages to machine pages at a predetermined alignment. | 12-03-2009 |
20090313415 | METHOD AND APPARATUS FOR FRAME REDIRECTION IN A STORAGE AREA NETWORK ENVIRONMENT - Embodiments according to the invention relate to frame redirection, which includes methods to intercept and re-route traffic between an initiator and a target. When a frame is redirected, an initiator issues a frame to the target, but the frame is received by a virtual target in a redirection switch by allowing the redirection switch to use the WWN of the actual target. From the perspective of the initiator, the target resides on the redirection switch. From the redirection switch, the frame is sent to the actual target by allowing the redirection switch to use the identity of the initiator. In other words, the redirection switch presents the WWN of the initiator to the target when the redirected frame is sent to the target. From the perspective of the target, the frame is received as if it originated at the initiator. | 12-17-2009 |
20090327574 | REPLAY TIME ONLY FUNCTIONALITIES - Replay-time-only functionalities in a computer program are executed only during replay in a virtual machine and are skipped outside of replay. If a replay-time-only functionality is detected during the replay of a program execution in a virtual machine, the replay may be paused and the virtual machine state may be saved. The replay-time-only core functionality is executed. When this execution is complete, a prior state of the virtual machine may be restored and the replay may be resumed. | 12-31-2009 |
20090327575 | COPY EQUIVALENT PROTECTION USING SECURE PAGE FLIPPING FOR SOFTWARE COMPONENTS WITHIN AN EXECUTION ENVIRONMENT - Embodiments of copy equivalent protection using secure page flipping for software components within an execution environment are generally described herein. An embodiment includes the ability for a Virtual Machine Monitor (VMM), Operating System Monitor, or other underlying platform capability to restrict memory regions for access only by specifically authenticated, authorized and verified software components, even when part of an otherwise compromised operating system environment. In an embodiment, an embedded VM is allowed to directly manipulate page table mappings so that, even without running the VMM or obtaining VMXRoot privilege, the embedded VM can directly flip pages of memory into its direct/exclusive control and back. Other embodiments may be described and claimed. | 12-31-2009 |
20090327576 | Direct Memory Access Filter for Virtualized Operating Systems - Described techniques increase runtime performance of workloads executing on a hypervisor by executing virtualization-aware code in an otherwise non virtualization-aware guest operating system. In one implementation, the virtualization-aware code allows workloads direct access to physical hardware devices, while allowing the system memory allocated to the workloads to be overcommitted. In one implementation, a DMA filter driver is inserted into an I/O driver stack to ensure that the target guest physical memory of a DMA transfer is resident before the transfer begins. The DMA filter driver may utilize a cache to track which pages of memory are resident. The cache may also indicate which pages of memory are in use by one or more transfers, enabling the hypervisor to avoid appropriating pages of memory during a transfer. | 12-31-2009 |
20100005222 | OPTIMIZING VIRTUAL MEMORY ALLOCATION IN A VIRTUAL MACHINE BASED UPON A PREVIOUS USAGE OF THE VIRTUAL MEMORY BLOCKS - The allocation of virtual memory within a virtual machine based upon the previous mapping of virtual memory blocks to physical memory blocks is optimized. Virtual memory blocks that have been mapped to a corresponding physical memory block over virtual memory blocks that are unmapped when fulfilling an allocation request can be reallocated preferentially. | 01-07-2010 |
20100011147 | Virtualizing an IOMMU - In one embodiment, a system comprises one or more input/output (I/O) devices; an I/O memory management unit (IOMMU) coupled to receive memory requests sourced by the I/O devices and configured to provide address translation for the memory requests; and a virtual machine monitor (VMM) configured to manage one or more virtual machines on the system, wherein the VMM is configured to virtualize the IOMMU, providing one or more virtual IOMMUs for use by one or more virtual machines. | 01-14-2010 |
20100049899 | MAINTAINING REVERSE MAPPINGS IN A VIRTUALIZED COMPUTER SYSTEM - For a virtual memory of a virtualized computer system in which a virtual page is mapped to a guest physical page which is backed by a machine page and in which a shadow page table entry directly maps the virtual page to the machine page, reverse mappings of guest physical pages are optimized by removing the reverse mappings of certain immutable guest physical pages. An immutable guest physical memory page is identified, and existing reverse mappings corresponding to the immutable guest physical page are removed. New reverse mappings corresponding to the identified immutable guest physical page are no longer added. | 02-25-2010 |
20100070677 | System and Method for Reducing Communication Overhead Between Network Interface Controllers and Virtual Machines - Available buffers in the memory space of a guest operating system of a virtual machine are provided to a network interface controller (NIC) for use during direct memory access (DMA) and the guest operating system is notified accordingly when data is written into such available buffers. These capabilities obviate the requirement of using hypervisor memory as a staging area to determine which virtual machine to forward incoming data. | 03-18-2010 |
20100070678 | Saving and Restoring State Information for Virtualized Computer Systems - Prior to or while the state of a virtual machine (“VM”) is being saved, such as in connection with the suspension or checkpointing of a VM, a set of one or more “active” memory pages is identified, this set of active memory pages comprising memory pages that are in use within the VM before operation of the VM is suspended. This set of active memory pages may constitute a “working set” of memory pages. To restore the state of the VM and resume operation, in some embodiments, (a) access to persistent storage is restored to the VM, device state for the VM is restored, and one or more of the set of active memory pages are loaded into physical memory; (b) operation of the VM is resumed; and (c) additional memory pages from the saved state of the VM are loaded into memory after operation of the VM has resumed. | 03-18-2010 |
20100077128 | MEMORY MANAGEMENT IN A VIRTUAL MACHINE BASED ON PAGE FAULT PERFORMANCE WORKLOAD CRITERIA - Embodiments of the present invention address deficiencies of the art in respect to virtualization and provide a novel and non-obvious method, system and computer program product for monitoring and managing memory used in a virtualized computing environment. In this regard, a method for monitoring and managing memory used by a virtual machine in a virtualized computing environment can include counting page fault occurrences in a guest operating system (OS) executing in the VM, pinning additional physical memory to the VM along with initiating a hot-add event to the guest OS executing in the VM, responsive to exceeding a page fault allowance threshold in order to mitigate system degradation in the VM based on page fault occurrences. | 03-25-2010 |
20100095045 | Partial Copying of Data to Transmit Buffer for Virtual Network Device - In a virtualized computer system, a network frame is transmitted from a virtual machine using a network interface device, possibly through a virtual switch, by copying only a part of the network frame to the transmit buffers that have pre-translated mappings from guest physical addresses to hypervisor virtual addresses and to machine addresses. The length of the part of the network frame that is copied to the transmit buffers may be variable. | 04-15-2010 |
20100106885 | Method and Device for Upgrading a Guest Operating System of an Active Virtual Machine - A method and device for upgrading a guest operating system (OS) of an active Virtual Machine (VM). The method includes: replicating the active VM to generate a backup VM; upgrading a guest OS of the backup VM; merging changes to be made to a virtual disk image file during running of the active VM and changes to be made to the virtual disk image file during the upgrading; pausing the backup VM; migrating an active process of a Java application program running in the active VM into the backup VM to generate a backup process; migrating resources occupied by the active process of the Java application program into the backup VM such that the backup process occupies the same resources; and resuming running of the backup VM. The device includes: a replicating unit; an upgrading unit; a merging unit; a migrating unit; and a control unit. | 04-29-2010 |
20100153616 | METHODS AND SYSTEMS TO ALLOCATE ADDRESSES IN A HIGH-ENDURANCE/LOW-ENDURANCE HYBRID FLASH MEMORY - Methods and systems to selectively map higher-usage addresses to higher-endurance memory cells of a flash memory, and lower-usage addresses to lower-endurance memory cells of the flash memory. Address usage may be determined with respect to the most recent write operation corresponding to an address and/or with respect to a frequency of write operations corresponding to the address. Higher-endurance memory cells may include single level cells (SLCs). Lower-endurance memory cells may include multi-level cells (MLCs). Improved endurance may be obtained with a relatively small percentage of higher-endurance memory cells, at a relatively low cost. | 06-17-2010 |
20100153617 | STORAGE MANAGEMENT SYSTEM FOR VIRTUAL MACHINES - A computer system (a method) for providing storage management solution that enables server virtualization in data centers is disclosed. The system comprises a plurality of storage devices for storing data and a plurality of storage management drivers configured to provide an abstraction of the plurality of the storage devices to one or more virtual machines of the data center. A storage management driver is configured to represent a live disk or a snapshot of a live disk in a virtual disk image to the virtual machine associated with the driver. The driver is further configured to translate a logical address for a data block to one or more physical addresses of the data block through the virtual disk image. The system further comprises a master server configured to manage the abstraction of the plurality of the storage devices and to allocate storage space to one or more virtual disk images. | 06-17-2010 |
20100161875 | SIMULATOR AND SIMULATING METHOD FOR RUNNING GUEST PROGRAM IN HOST - A Simulator and a simulating method for running a guest program in a host are disclosed. The simulator includes: an initialization device configured for setting content of a hypervisor page table in the host, the hypervisor page table mapping a guest physical address space to a host physical address space. The simulator further includes a binary translation device configured for employing a program logical address to perform a memory access in code translation. The simulator also includes a miss handling device configured for updating a guest translation look-aside buffer by treating a miss in a host translation look-aside buffer caused by the execution of the translated code as a miss in the guest translation look-aside buffer, wherein the host translation look-aside buffer is configured to buffer entries for mapping addresses in a guest program logical address space to addresses in the guest physical address space. The simulator further includes an update tracing device configured for, in response to the update to the guest translation look-aside buffer, perform the update to the host translation look-aside buffer. Also disclosed is a method for running a guest program in a host. | 06-24-2010 |
20100169536 | DYNAMIC VIRTUAL MACHINE MEMORY MANAGEMENT - Techniques for adjusting memory in virtual machines are disclosed. | 07-01-2010 |
20100169537 | Virtual Machine Migration - A source virtual machine (VM) hosted on a source server is migrated to a destination VM on a destination server without first powering down the source VM. After optional pre-copying of the source VM's memory to the destination VM, the source VM is suspended and its non-memory state is transferred to the destination VM; the destination VM is then resumed from the transferred state. The source VM memory is either paged in to the destination VM on demand, or is transferred asynchronously by pre-copying and write-protecting the source VM memory, and then later transferring only the modified pages after the destination VM is resumed. The source and destination servers preferably share common storage, in which the source VM's virtual disk is stored; this avoids the need to transfer the virtual disk contents. Network connectivity is preferably also made transparent to the user by arranging the servers on a common subnet, with virtual network connection addresses generated from a common name space of physical addresses. | 07-01-2010 |
20100205347 | METHOD FOR SPEEDING UP PAGE TABLE ADDRESS UPDATE ON VIRTUAL MACHINE - A method is provided which eliminates redundancy from the shadow PT operation performed by the virtual machine monitor (VMM) when the guest operating system running on a virtual machine updates a guest page table (PT) address. The VMM associates a plurality of shadow PTs with guest PTs and allocates their relation in memory. When it detects the update of a guest PT address, the VMM searches for a shadow PT corresponding to the updated guest PT. If the associated shadow PT exists, the VMM omits rewriting the shadow PT and registers the address of the shadow PT with the central processing unit (CPU). If the associated shadow PT does not exist, the VMM allocates a memory, creates a shadow PT, registers an address of the created shadow PT with the CPU, and records a relationship between the updated guest PT and the generated shadow PT. | 08-12-2010 |
20100217916 | METHOD AND APPARATUS FOR FACILITATING COMMUNICATION BETWEEN VIRTUAL MACHINES - A computer-implemented method, apparatus, and virtual machine for facilitating the communication between VMs. The method of facilitating the communication between a first VM and a second VM includes: allocating a shared memory segment from within the memory of the physical machine; mapping the requested memory space addresses to the shared memory segments in response to the memory space requests from the VMs; and providing the requested memory space addresses. A method of communication from a first VM to a second VM includes: requesting a memory space in response to a notification that a shared memory segment has been allocated; obtaining the requested memory space address, which has been mapped to the allocated shared memory segment; and accessing communication data in the shared memory segment according to the address. The apparatus and virtual machine executes the steps of the methods. | 08-26-2010 |
20100223419 | COPY CIRCUMVENTION IN A VIRTUAL NETWORK ENVIRONMENT - A method, system, and computer program product for circumventing data copy operations in a virtual network environment. The method includes copying a data packet from a user space to a first kernel space of a first logical partition (LPAR). Using a hypervisor, a mapped address of a receiving virtual Ethernet driver in a second LPAR is requested. The first mapped address is associated with a buffer of the receiving virtual Ethernet driver. The data packet is copied directly from the first kernel space of the first LPAR to a destination in a second kernel space of the second LPAR. The destination is determined utilizing the mapped address. The direct copying to the destination bypasses (i) a data packet copy operation from the first kernel space to a transmitting virtual Ethernet driver of the first LPAR, and (ii) a data packet copy operation via the hypervisor. The receiving virtual Ethernet driver is notified that the data packet has been successfully copied to the destination in the second LPAR. | 09-02-2010 |
20100228903 | Block Map Based I/O Optimization for Storage Virtual Appliances - A method of performing disk operations on a physical storage that is being managed by a storage virtual appliance (SVA), from a virtual machine (VM), is disclosed. The method includes intercepting a data read/write request form the VM. The data read/write request is intercepted in the hypervisor prior to the read/write request reaches the SVA. The VM and the SVA are hosted in the hypervisor. The read/write request includes virtual block numbers which are translated into physical block numbers before performing the read/write operation on the physical storage. The method further includes probing a copy of virtual Logical Unit Number (LUN) block numbers to physical disk block numbers mapping table (bock map table) in the hypervisor to identify physical block numbers that corresponds to the virtual block numbers in the read/write request. If a mapping of the virtual block numbers in the read/write request is available in the hypervisor cache, the virtual block numbers are translated into the physical block numbers and the read/write request is performed directly to the physical storage totally bypassing the SVA. | 09-09-2010 |
20100241785 | MANAGEMENT OF HOST PHYSICAL MEMORY ALLOCATION TO VIRTUAL MACHINES WITH A BALLOON APPLICATION - Methods and systems for managing distribution of host physical memory (HPM) among virtual machines (VMs) executing on a host via a hypervisor are presented, where each VM has guest system software including an operating system. A method includes an operation for reserving, by a balloon application executing in a first VM, a guest virtual memory (GVM) location in the first VM. The GVM location is mapped to a guest physical memory (GPM) location, which is mapped to a host physical memory (HPM) location. The balloon application is responsive to the hypervisor for reserving memory. Further, the method includes operations for writing a value to the reserved GVM location and for remapping a plurality of GPM locations containing the value to a single HPM location. The remapping is performed by a content-based page sharing component of the hypervisor. Additionally, the method reclaims the HPM location when the HPM location is freed due to the remapping, and assigns the reclaimed HPM location to a different VM or to a pool of available HPM locations. | 09-23-2010 |
20100250824 | Migrating Virtual Machines Configured With Pass-Through Devices - Virtual machines that utilize pass-through devices are migrated from a source host computer to a destination host computer. During preparation for migration, the pass-through device is substituted with an emulation handler that simulates the pass-through device experiencing errors. Upon successful migration, an error reporting signal is triggered to cause the device driver in the virtual machine to initiate a reset of the pass-through device at the destination host computer, upon which the pass-through device is mapped to the migrated virtual machine. | 09-30-2010 |
20100250825 | METHOD AND APPARATUS FOR MOUNTING FILES AND DIRECTORIES TO A LOCAL OR REMOTE HOST - A method and apparatus are disclosed for mounting at least one file to a host. The method comprises creating a virtual device image comprising a logical block address table. The method further comprises writing information regarding a block address and a size of an occupied space of the at least one file into the logical block address table, the information being calculated according to a format of a normal device image file system. Moreover, the method comprises recording in the logical block address table a file address map relationship comprising a map from the block address of the at least one file to a real position of the at least one file outside of the virtual device image. Furthermore, the method comprises mounting the virtual device image to the host. At least one directory may be mounted in addition to or in lieu of the at least one file. | 09-30-2010 |
20100274947 | MEMORY MANAGEMENT METHOD, MEMORY MANAGEMENT PROGRAM, AND MEMORY MANAGEMENT DEVICE - In a virtual machine system built from a plurality of virtual machines, the utilization efficiency of utilized physical memory is raised. A memory management method in which a virtual machine environment, constituted by having one or several virtual machines and a hypervisor part for operating the same virtual machines, is built on a physical machine and in which: a virtual machine operates an allocation processing part and an application part, application part making a physical memory processing part allocate unallocated physical memory to a memory area and allocation processing part transmitting, when unallocated physical memory is scarce, an instruction for the release, from memory areas utilized by each application part, of memory pages for which physical memory is assigned but not used. | 10-28-2010 |
20100306444 | Free-Space Reduction in Cached Database Pages - A computing system stores a database comprising pages. Each of the pages is the same size. When a page is requested, a block of virtual memory addresses is associated with the page and a set of physical data storage locations is committed to the block of virtual memory addresses. A copy of the page is then stored into the set of physical data storage locations. Physical data storage locations committed to the virtual memory addresses associated with available free space in the copy of the page are deallocated, thereby allowing reuse of these physical data storage locations. A reference to the copy of the page is then returned. | 12-02-2010 |
20100306445 | Mechanism for Virtual Logical Volume Management - In one embodiment, a mechanism for virtual logical volume management is disclosed. In one embodiment, a method for virtual logical volume management includes writing, by a virtual machine (VM) host server computing device, a control block to each of a plurality of network-capable physical storage devices and mapping, by the VM host server computing device, physical storage blocks of the plurality of network-capable physical storage devices to virtual storage blocks of a virtual storage pool by associating the physical storage blocks with the virtual storage blocks in the control block of the network-capable physical storage device housing the physical storage blocks being mapped. Furthermore, the method includes assigning, by the VM host server computing device, a block range of the virtual storage blocks to a VM allocated by the VM host server computing device by writing a unique identifier (ID) of the VM to one or more entries in the control block having the physical storage blocks associated with the block range of the virtual storage blocks assigned to the VM. | 12-02-2010 |
20100332720 | Direct Memory Access and Super Page Swapping Optimizations For A Memory Blade - A system and method is illustrated for identifying an Input/Output (I/O) driver module, using a hypervisor, to receive a read command to read a virtual memory page from a remote memory location. Further, the system and method includes reading the remote virtual memory page, using the I/O driver module, into a memory buffer managed by the I/O driver module. Additionally, the system and method includes storing the virtual memory page in the memory buffer to a persistent storage device. The system and method also includes identifying a remote super page, using a hypervisor, the remote super page including a remote sub page. Additionally, the system and method includes identifying a local super page, using the hypervisor, the local super page including a local sub page. Further, the system and method includes swapping the local sub page for the remote sub page, using the hypervisor, the swapping occurring over a network. | 12-30-2010 |
20100332721 | OPERATING SYSTEM VIRTUAL MEMORY MANAGEMENT FOR HARDWARE TRANSACTIONAL MEMORY - Operating system virtual memory management for hardware transactional memory. A method may be performed in a computing environment where an application running on a first hardware thread has been in a hardware transaction, with transactional memory hardware state in cache entries correlated by memory hardware when data is read from or written to data cache entries. The data cache entries are correlated to physical addresses in a first physical page mapped from a first virtual page in a virtual memory page table. The method includes an operating system deciding to unmap the first virtual page. As a result, the operating system removes the mapping of the first virtual page to the first physical page from the virtual memory page table. As a result, the operating system performs an action to discard transactional memory hardware state for at least the first physical page. Embodiments may further suspend hardware transactions in kernel mode. Embodiments may further perform soft page fault handling without aborting a hardware transaction, resuming the hardware transaction upon return to user mode, and even successfully committing the hardware transaction. | 12-30-2010 |
20100332722 | VIRTUAL MACHINE SYSTEM AND CONTROL METHOD THEREOF - In a two-level virtual machine system having child VMMs operating on a parent VMM, the field update frequency of VMCS and VMCB which control a VMM assist function of a CPU is not uniform. A G field requiring reflection of emulation results is higher in update frequency than a C field. The semiconductor quantity and power dissipation caused by the assist function expansion tend to increase in the C field used for a condition decision as compared with the G field simply retaining a value because influence upon the CPU operation is greater in the C field. Therefore, events relating to the G field which is high in update frequency and less in increase of semiconductor quantity and power dissipation caused by the assist function expansion are coped with by the CPU with its assist function expanded. Events relating to the C field are coped with by the parent VMM. | 12-30-2010 |
20110010483 | MEMORY PROTECTION UNIT IN A VIRTUAL PROCESSING ENVIRONMENT - The present invention relates to a memory management system in a virtualized environment. The system comprises a virtual address, a buffer storage such as a translation lookaside buffer provided to store virtual address to physical address translations, a buffer storage such as a page table provided to store virtual address to real address translations and memory protection unit provided to verify whether a physical address obtained from the virtual address is within boundaries of one or more physical system memory regions assigned to a virtual machine. | 01-13-2011 |
20110029713 | DATA VOLUME SPARSENESS - Disclosed is a method of operating a data storage system. The method comprises generating first metadata describing storage of a volume of data in a first storage volume, storing the volume of data within a second storage volume, generating second metadata describing storage of the volume of data in the second storage volume, and processing the first metadata and the second metadata to increase sparseness of the volume of data stored in the second storage volume. | 02-03-2011 |
20110035532 | Secure Recursive Virtualization - A mechanism is provided for performing secure recursive virtualization of a computer system. A portion of memory is allocated by a virtual machine monitor (VMM) or an operating system (OS) to a new domain. An initial program for the new domain is loaded into the portion of memory. Secure recursive virtualization firmware (SVF) in the data processing system is called to request that the new domain be generated. A determination is made as to whether the call is from a privileged domain or a non-privileged domain. Responsive to the request being from a privileged domain, all access to the new domain is removed from any other domain in the data processing system. Responsive to receiving an indication that the new domain has been generated, an execution of the initial program is scheduled. | 02-10-2011 |
20110047315 | Virtualization of real-time clock - A system and corresponding method virtualizes a real-time clock in the presence of a time-disrupting event. The real-time clock is used with physical machines and includes a single time source within each of the physical machines. The system is implemented in one or more programmable devices, which may be hardware and/or software devices, or a combination of hardware and software devices. The physical machines include one or more virtual machines. The system includes an offset module that determines a time difference offset between a virtual interrupt timer counter (ITC | 02-24-2011 |
20110066786 | Method of Suspending and Resuming Virtual Machines - A virtual machine is suspended and quickly restarted while maintaining the VM's state. The method is quick enough so that network connections are maintained across the restart and the guest operating system and guest applications running in the VM are not aware of the restart. As a result, users and clients connected to the VM do not notice any downtime or disruption to the VM. After suspension and before the restart, VM configuration changes that would not be possible or be very difficult through code changes alone while the VM was running can be made. | 03-17-2011 |
20110078361 | SYSTEM AND METHOD TO ENHANCE MEMORY PROTECTION FOR PROGRAMS IN A VIRTUAL MACHINE ENVIRONMENT - In a computer system supporting execution of virtualization software and at least one instance of virtual system hardware, an interface is provided into the virtualization software to allow a program to directly define the access characteristics of its program data stored in physical memory. The technique includes providing data identifying memory pages and their access characteristics to the virtualization software which then derives the memory access characteristics from the specified data. Optionally, the program may also specify a pre-defined function to be performed upon the occurrence of a fault associated with access to an identified memory page. In this manner, programs operating both internal and external to the virtualization software can protect his memory pages, without intermediation by the operating system software. | 03-31-2011 |
20110082962 | MONITORING A DATA STRUCTURE IN A VIRTUAL MACHINE - A method for monitoring a data structure maintained by guest software within a virtual machine is disclosed. Changes to the contents of the data structure are determined, such as by placing write traces on the memory pages containing the data structure. Also, the method involves determining when memory pages containing the data structure are swapped into and/or out of guest physical memory by the guest software, such as by placing write traces on the memory pages containing the guest page table and detecting changes to the present bit of page table entries involved in mapping virtual addresses for the data structure. Information about the contents of the data structure is retained while memory pages containing the data structure are swapped out of guest physical memory. | 04-07-2011 |
20110087822 | VIRTUALIZING PHYSICAL MEMORY IN A VIRTUAL MACHINE SYSTEM - A processor including a virtualization system of the processor with a memory virtualization support system to map a reference to guest-physical memory made by guest software executable on a virtual machine which in turn is executable on a host machine in which the processor is operable to a reference to host-physical memory of the host machine. | 04-14-2011 |
20110099318 | Leveraging Memory Similarity During Live Migrations - A page scanner may be configured to identify, during a live migration of a virtual machine including a transfer of a plurality of memory pages from source hardware resources to destination hardware resources, a candidate memory page of the plurality of memory pages to include in the transfer while at least one operation of the virtual machine continues to execute. A fingerprint comparator may be configured to compare a candidate page fingerprint of the candidate memory page to existing page fingerprints of existing memory pages stored using the second hardware resources, and further configured to determine, based on the comparing, that a duplicate of the candidate page is included within the existing memory pages. A duplicate page handler may be configured to facilitate continued execution of the virtual machine using the duplicate of the candidate page and the second hardware resources. | 04-28-2011 |
20110099319 | INPUT-OUTPUT MEMORY MANAGEMENT UNIT (IOMMU) AND METHOD FOR TRACKING MEMORY PAGES DURING VIRTUAL-MACHINE MIGRATION - An input-output memory management unit (IOMMU) and method for tracking memory pages during virtual-machine migration are generally described herein. The IOMMU includes an IOMMU manager to service address translation requests associated with memory pages received from a plurality of I/O devices, and a translation request filter to identify translations previously requested from a translation manager. The IOMMU also includes a device context table to identify whether virtual-machine migration is enabled for memory pages associated with virtual addresses identified in received address translation requests. Based on information in the device context table, the IOMMU manager may send a virtual page identifier to the translation manager identifying a virtual page when virtual-machine migration is enabled to indicate that the virtual page has been accessed. The IOMMU manager refrains from sending the virtual page identifier to the translation manager when the virtual page is listed in the translation request filter. | 04-28-2011 |
20110107007 | ASYNCHRONOUS PAGE FAULTS FOR VIRTUAL MACHINES - A method and system to handle an asynchronous page fault in a virtual machine system. A computer hosts a virtual machine that includes a virtual central processing unit (CPU). The virtual CPU requests access to a page that is not resident in memory. The host operating system of the computer receives an indication of a page fault, and informs the virtual CPU of the page fault. The host operating system provides an identifier associated with the page fault. The host operating system performs page swapping operating in parallel with a new task rescheduled by the virtual CPU, and sends a wake-up signal to the virtual CPU when the page has been brought back into the memory. | 05-05-2011 |
20110107008 | MEMORY MANAGEMENT IN A NESTED VIRTUALIZATION ENVIROMENT - A method for managing memory in a nested virtualization environment is provided. The method comprises implementing a first virtual machine (VM) for a first software such that a first guest memory is allocated to the first software; maintaining a first data structure to translate one or more memory addresses in the first guest memory to corresponding memory addresses in a physical memory; maintaining a second data structure to translate one or more memory addresses in the second guest memory to corresponding memory addresses in the physical memory. The first software implements a second VM for a second software such that a second guest memory is allocated to the second software and maintains a third data structure to translate one or more memory addresses in the second guest memory to corresponding memory addresses in the first guest memory. | 05-05-2011 |
20110113180 | VIRTUAL SYSTEM AND METHOD OF ANALYZING OPERATION OF VIRTUAL SYSTEM - A virtual system comprises hardware, a virtualization layer virtualizing the hardware, a virtual machine monitor, a user domain operating using the virtualized hardware, and a root domain operating using the virtualized hardware and managing the user domain. The virtual machine monitor analyzes an operation performed by the user domain in real time and stores resulting analysis information in the root domain. | 05-12-2011 |
20110119427 | SYMMETRIC LIVE MIGRATION OF VIRTUAL MACHINES - A first least recently used map is generated for a set of memory pages of a first virtual machine. The first least recently used map includes metadata including memory page physical address location information. A first of the memory pages of the first virtual machine and the metadata for the first memory page is sent from the first virtual machine to a second virtual machine while the first virtual machine is executing. A first memory page and meta data associated therewith of the second virtual machine is received from the second virtual machine at the first virtual machine. The memory pages of the first virtual machine are ordered from a first location of the first least recently used map to a last location of the first least recently used map based on how recently each of the memory pages of the first virtual machine has been used. | 05-19-2011 |
20110125951 | DISTRIBUTED STORAGE THROUGH A VOLUME DEVICE ARCHITECTURE - A volume manager I/O method and system. The method includes determining a storage extent mapping of storage functionality of a plurality of storage devices and generating a logical disk extent based on the storage extent mapping. The logical disk extent is exported to a volume device component that is communicatively coupled to implement I/O for an application. An I/O request from the application is received via the volume device component. The I/O request is executed in accordance with the logical disk extent. | 05-26-2011 |
20110125952 | MAINTAINING PROCESSOR RESOURCES DURING ARCHITECTURAL EVENTS - In one embodiment of the present invention, a method includes switching between a first address space and a second address space, determining if the second address space exists in a list of address spaces; and maintaining entries of the first address space in a translation buffer after the switching. In such manner, overhead associated with such a context switch may be reduced. | 05-26-2011 |
20110131363 | MECHANISM FOR REMAPPING POST VIRTUAL MACHINE MEMORY PAGES - According to one embodiment, a computer system is disclosed. The computer system includes a processor, a chipset coupled to the processor and a memory coupled to the chipset. The chipset translates partitioned virtual machine memory addresses received from the processor to page level addresses. | 06-02-2011 |
20110138102 | DATA STORAGE MANAGEMENT USING A DISTRIBUTED CACHE SCHEME - A method for accessing data stored in a distributed storage system is provided. The method comprises determining whether a copy of first data is stored in a distributed cache system, where data in the distributed cache system is stored in free storage space of the distributed storage system; accessing the copy of the first data from the distributed cache system if the copy of the first data is stored in a first data storage medium at a first computing system in a network; and requesting a second computing system in the network to access the copy of the first data from the distributed cache system if the copy of the first data is stored in a second data storage medium at the second computing system. If the copy of the first data is not stored in the distributed cache system, the first data is accessed from the distributed storage system. | 06-09-2011 |
20110145471 | METHOD FOR EFFICIENT GUEST OPERATING SYSTEM (OS) MIGRATION OVER A NETWORK - A method, data processing system and computer program product enables efficient transfer of a virtual machine from a first data processing system (DPS) to a second DPS using a combination of Transmission Control Protocol (TCP) and Uniform Data Protocol (UDP). A virtual machine migration (VMM) utility identifies all memory pages of the first virtual machine. The VMM utility notifies the second DPS via TCP of the scheduled transfer of the virtual machine. The VMM utility copies and transfers the memory pages of the virtual machine to the second DPS via UDP. When all expected components of the virtual machine are not received by the second DPS and/or memory data is modified within the memory pages during the migration, the VMM utility combines the missing data and the modified data and transfers the final components of the virtual machine using TCP. Execution of the virtual machine resumes on the second DPS. | 06-16-2011 |
20110153909 | Efficient Nested Virtualization - In one embodiment of the invention, the exit and/or entry process in a nested virtualized environment is made more efficient. For example, a layer | 06-23-2011 |
20110161550 | SUB-OS VIRTUAL MEMORY MANAGEMENT LAYER - A binary memory image in system is modified. The system may or may not already have virtual memory management enabled. Virtual memory management is enabled and/or modified by inserting a sub-OS virtual memory management layer in the binary memory image. Part of the binary memory image may be compressed to make room for the sub-OS virtual memory management layer. | 06-30-2011 |
20110167194 | Method and System for Frequent Checkpointing - A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned. | 07-07-2011 |
20110167195 | Method and System for Frequent Checkpointing - A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned. | 07-07-2011 |
20110167196 | Method and System for Frequent Checkpointing - A virtualization platform provides fault tolerance for a primary virtual machine by continuously transmitting checkpoint information of the primary virtual machine to a collector process, such as a backup virtual machine. When implemented on a hardware platform comprising a multi-processor that supports nested page tables, the virtualization platform leverages the nested page table support to quickly identify memory pages that have been modified between checkpoints. The backup virtual machine provides feedback information to assist the virtualization platform in identifying candidate memory pages for transmitting actual modifications to the memory pages rather than the entire memory page as part of the checkpoint information. The virtualization platform further maintains a modification history data structure to identify memory pages that can be transmitted simultaneous with the execution of the primary virtual machine rather than while the primary virtual machine has been stunned. | 07-07-2011 |
20110173370 | Relocating Page Tables And Data Amongst Memory Modules In A Virtualized Environment - Relocating data in a virtualized environment maintained by a hypervisor administering access to memory with a Cache Page Table (‘CPT’) and a Physical Page Table (‘PPT’), the CPT and PPT including virtual to physical mappings. Relocating data includes converting the virtual to physical mappings of the CPT to virtual to logical mappings; establishing a Logical Memory Block (‘LMB’) relocation tracker that includes logical addresses of an LMB, source physical addresses of the LMB, target physical addresses of the LMB, a translation block indicator for each relocation granule, and a pin count associated with each relocation granule; establishing a PPT entry tracker including PPT entries corresponding to the LMB to be relocated; relocating the LMB in a number of relocation granules including blocking translations to the relocation granules during relocation; and removing the logical addresses from the LMB relocation tracker. | 07-14-2011 |
20110173371 | WRITING TO ASYMMETRIC MEMORY - A memory controller writes to a virtual address associated with data residing within an asymmetric memory component of main memory that is within a computer system and that has a symmetric memory component, while preserving proximate other data residing within the asymmetric memory component. The symmetric memory component within the main memory of the computer system is configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component during the writing of that address. The asymmetric memory component is configured to enable block write operations in which writing to an address within a region of the asymmetric memory component affects the availability of other addresses within the region of the asymmetric memory component during the block write operations involving the address. | 07-14-2011 |
20110179214 | VIRTUAL TARGET ADDRESSING DURING DIRECT DATA ACCESS VIA VF OF IO STORAGE ADAPTER - A method of virtual machine (VM) access to physical storage through a direct path to a virtual function (VF) of a storage adapter, the method for use in a system that includes a host computing machine configured to implement a virtualization intermediary and the virtual machine (VM) and that includes the storage adapter the method, comprising: sending virtual SCSI IO request from the VM to the physical storage that identifies a virtual disk address; mapping within the VF the identified virtual address to at least one physical region of the physical storage; creating within the VF a physical SCSI IO request that identifies a physical address for the mapped-to physical region; sending the physical SCSI IO request from the VF to the physical storage. | 07-21-2011 |
20110202705 | METHOD AND APPARATUS TO MANAGE OBJECT BASED TIER - Exemplary embodiments provide a technique to manage object based tier to improve allocation of media to unallocated area. In one embodiment, a method of allocating an area of a logical volume to an unallocated area of a virtual volume for a write command comprises: calculating an object location of an object based on the write command and an object allocation information, the write command containing a virtual volume name and a virtual volume address of a virtual volume; selecting a tier from a plurality of tiers based on the calculated object location and an object and tier definition information; selecting a media type from a plurality of media types based on the selected tier and a tier and media definition information; and selecting a logical volume from a plurality of logical volumes based on the virtual volume specified by the write command, the object allocation information, a pool information, and the selected media type. | 08-18-2011 |
20110202706 | METHOD AND DRIVER FOR PROCESSING DATA IN A VIRTUALIZED ENVIRONMENT - A data processing method and driver capable of reducing transactions between operating systems (OS) in a virtualization environment that supports a plurality of operating systems are provided. The data processing driver reads, when reading data, an Inode of next data. Then, the data processing driver determines whether or not to request an Inode to a host OS by comparing the read Inode with a requested Inode. | 08-18-2011 |
20110213911 | Mechanism for Dynamic Placement of Virtual Machines During Live Migration Based on Memory - A mechanism for dynamic placement of virtual machines (VMs) during live migration based on memory is disclosed. A method of embodiments of the invention includes determining candidate target host machines capable of receiving a VM to be migrated, obtaining a hash value for memory pages of the VM to be migrated, obtaining for each candidate target host machine hash values for shared memory pages utilized by one or more VMs hosted by the candidate target host machine, comparing for each candidate target host machine the hash values for the memory pages of the VM to be migrated with the hash values for the shared memory pages, and adjusting a score in a general selection algorithm for the candidate target host machine with the most identical matches of the hash values for the shared memory pages with the hash values for the memory pages of the VM to be migrated. | 09-01-2011 |
20110225342 | OPPORTUNISTIC PAGE CACHING FOR VIRTUALIZED SERVERS - A system described herein includes a receiver component that receives an indication that at least one page in virtual memory is free and the at least one page in virtual memory is classified as short-lived memory, wherein the virtual memory is accessible to at least one virtual machine executing on a computing device. The system also includes a cache updater component that dynamically updates a cache to include the at least one page, wherein the cache is accessible to the at least one virtual machine. | 09-15-2011 |
20110225343 | COMPUTER SYSTEM, DATA STORAGE METHOD, AND PROGRAM - In a computer system that can configure a virtual machine being able to transit to a hibernation state data of a main memory of the virtual machine stored in an auxiliary storage device is reduced. At a point in time when the virtual machine has transitioned to a hibernation state, from consideration as to whether the data of the main memory of the virtual machine stored in the auxiliary storage device is unnecessary, data stored in the auxiliary storage device is rewritten in order to reduce the data. | 09-15-2011 |
20110246698 | METHOD AND APPARATUS FOR A PRIMARY OPERATING SYSTEM AND AN APPLIANCE OPERATING SYSTEM - One embodiment includes a personal computer device comprising at least one machine configured to execute a primary user operating system and at least one appliance operating system independent from the primary user operating system. The personal computer device also including a system memory including a first portion of the system memory configured to be used by the primary user operating system; and a second portion of the system memory configured to be sequestered from the primary user operating system. The personal computer device further including an access violation monitor configured to restrict access from the at least one appliance operating system to the second portion of the system memory | 10-06-2011 |
20110264841 | SHARING OF CLASS DATA AMONG VIRTUAL MACHINE APPLICATIONS RUNNING ON GUESTS IN VIRTUALIZED ENVIRONMENT USING MEMORY MANAGEMENT FACILITY - A method, system and computer program product for sharing class data among virtual machine applications running on one or more guests in a virtualized environment. A control program in a virtual operating system is used to manage the user portions of the virtual operating system, each commonly referred to as a guest. A guest operating system runs on each guest and applications can run on each guest operating system. A memory management facility manages shared memory which includes a class cache configured to store class data. The shared memory may be mounted onto each guest using a cluster file system or accessed via an API interface thereby allowing the class cache to be shared across the guests. By sharing the class cache among the guests, multiple copies of the same class data are no longer necessary thereby optimally using the physical memory on the host. | 10-27-2011 |
20110276741 | MAINTAINING REVERSE MAPPINGS IN A VIRTUALIZED COMPUTER SYSTEM - For a virtual memory of a virtualized computer system in which a virtual page is mapped to a guest physical page which is backed by a machine page and in which a shadow page table entry directly maps the virtual page to the machine page, reverse mappings of guest physical pages are optimized by removing the reverse mappings of certain immutable guest physical pages. An immutable guest physical memory page is identified, and existing reverse mappings corresponding to the immutable guest physical page are removed. New reverse mappings corresponding to the identified immutable guest physical page are no longer added. | 11-10-2011 |
20110314203 | RESOURCE ADJUSTMENT METHODS AND SYSTEMS FOR VIRTUAL MACHINES - Resource adjustment methods and systems for virtual machines (VMs) for use in at least one physical device are provided. First, a first VM having a first resource set and a second VM having a second resource set are respectively enabled to enter a suspended state. A first user space address and a second user space address are respectively obtained from a first VM memory page table corresponding to the first VM and a second VM page table corresponding to the second VM, and a first physical memory address corresponding to the first user space address in the physical device and a second physical memory address corresponding to the second user space address in the physical device are obtained from a Hypervisor. The first user space address is mapped to the second physical memory address by the Hypervisor. Then, the first VM is enabled to enter an execution state, and the second VM is stopped. | 12-22-2011 |
20110320681 | MEMORY MANAGEMENT COMPUTER - Memory management of processing systems running in a virtual computer environment and of processes running in an operating system environment includes identifying a usage pattern of a page in memory. The usage pattern is identified by tracking operations conducted with respect to the page. The memory management also includes designating the page as a candidate for sharing when the usage pattern reflects that a number of updates made to the page does not exceed a predefined threshold value. The candidate page is allocated to a first process or virtual machine. The memory management also includes sharing access to the candidate page with a second process or virtual machine when content in the candidate page matches content of page allocated for the second process or virtual machine to an address space of the candidate page. | 12-29-2011 |
20110320682 | COOPERATIVE MEMORY RESOURCE MANAGEMENT VIA APPLICATION-LEVEL BALLOON - Methods, systems, and computer programs for managing memory in a host where virtual machines (VMs) execute are presented. In one embodiment, a method includes an operation for determining which amount of heap memory has been reserved in a Java virtual machine (JVM) that is in excess of the heap memory needed by the JVM. If there is excess heap memory, a Java balloon agent reserves a Java object in the heap memory. Typically, the Java object will be the size of one or more memory pages in the host. Further, the Java balloon agent loads the Java object with a certain value, for example, by zeroing out the page of memory. When a virtual machine monitor (VMM) in the host detects that a machine physical memory page associated with the Java object has the first value, then the VMM frees the machine physical memory page to make the memory available to other VMs or to other processes executing in the host. | 12-29-2011 |
20120005401 | PAGE BUFFERING IN A VIRTUALIZED, MEMORY SHARING CONFIGURATION - An apparatus includes a processor and a volatile memory that is configured to be accessible in an active memory sharing configuration. The apparatus includes a machine-readable encoded with instructions executable by the processor. The instructions including first virtual machine instructions configured to access the volatile memory with a first virtual machine. The instructions including second virtual machine instructions configured to access the volatile memory with a second virtual machine. The instructions including virtual machine monitor instructions configured to page data out from a shared memory to a reserved memory section in the volatile memory responsive to the first virtual machine or the second virtual machine paging the data out from the shared memory or paging the data in to the shared memory. The shared memory is shared across the first virtual machine and the second virtual machine. The volatile memory includes the shared memory. | 01-05-2012 |
20120017027 | METHOD FOR IMPROVING SAVE AND RESTORE PERFORMANCE IN VIRTUAL MACHINE SYSTEMS - Page data of a virtual machine is represented for efficient save and restore operations. One form of representation applies to each page with an easily identifiable pattern. The page is described, saved, and restored in terms of metadata reflective of the pattern rather than a complete page of data reflecting the pattern. During a save or restore operation, however, the metadata of the page is represented, but not the page data. Another form of representation applies to each page sharing a canonical instance of a complex pattern that is instantiated in memory during execution, and explicitly saved and restored. Each page sharing the canonical page is saved and restored as a metadata reference, without the need to actually save redundant copies of the page data. | 01-19-2012 |
20120017028 | Mechanism for Random Cache Line Selection in Virtualization Systems - A mechanism for random cache line selection in virtualization systems is disclosed. A method includes maintaining a secondary data structure representing a plurality of memory pages, the secondary data structure indexed by a subset of each memory page, determining an index of a received new memory page by utilizing a subset of the new memory page that is a same size and at a same offset as the subset of each memory page, comparing the index of the new memory page with the indices of the secondary data structure for a match, utilizing a main data structure to perform a full page memory comparison with the new memory page if a match is found in the secondary data structure, and updating at least one of the size of the subset, the number of subsets, and the offsets of the subsets used to index the memory page. | 01-19-2012 |
20120017029 | SHARING MEMORY SPACES FOR ACCESS BY HARDWARE AND SOFTWARE IN A VIRTUAL MACHINE ENVIRONMENT - Example methods, apparatus, and articles of manufacture to share memory spaces for access by hardware and software in a virtual machine environment are disclosed. A disclosed example method involves enabling a sharing of a memory page of a source domain executing on a first virtual machine with a destination domain executing on a second virtual machine. The example method also involves mapping the memory page to an address space of the destination domain and adding an address translation entry for the memory page in a table. In addition, the example method involves sharing the memory page with a hardware device for direct memory access of the memory page by the hardware device. | 01-19-2012 |
20120017030 | OPTIMIZING A FILE SYSTEM INTERFACE IN A VIRTUALIZED COMPUTING ENVIRONMENT - Systems and methods for optimizing write operations to a storage device in a virtualized computing environment comprise monitoring write operations issued by an application running on a virtual machine's (VM) operating system, wherein the VM is hosted by a hypervisor providing access to a storage device in a virtualized computing environment; and causing a virtual file system (VFS) supported by the operating system to call on a first para-virtualized file system (PVFS FE) supported by the operating system to execute a write operation, in response to determining that the write operation is to write data to the storage device, wherein data that is to be written to the storage device is first written to a VM memory area allocated to the VM and accessible to the hypervisor hosting the VM. | 01-19-2012 |
20120017031 | ROBUST LIVE MIGRATION USING SHARED FILESYSTEM - A method for transferring guest physical memory from a source host to a destination host during live migration of a virtual machine (VM) involves creating a file on a shared datastore, the file on the shared datastore being accessible to both the source host and the destination host. Pages of the guest physical memory are transferred from the source host to the destination host over a network connection and pages of the guest physical memory are written to the file so that the destination host can retrieve the written guest physical pages from the file. | 01-19-2012 |
20120017032 | METHOD AND SYSTEM FOR PROVIDING HARDWARE SUPPORT FOR MEMORY PROTECTION AND VIRTUAL MEMORY ADDRESS TRANSLATION FOR A VIRTUAL MACHINE - A method for providing hardware support for memory protection and virtual memory address translation for a virtual machine. The method includes executing a host machine application within a host machine context and executing a virtual machine application within a virtual machine context. A plurality of TLB (translation look aside buffer) entries for the virtual machine context and the host machine context are stored within a TLB. Memory protection bits for the plurality of TLB entries are logically combined to enforce memory protection on the virtual machine application. | 01-19-2012 |
20120030404 | COMPUTER SYSTEM, COMPUTER AND METHOD FOR PERFORMING THIN PROVISIONING CAPACITY MANAGEMENT IN COORDINATION WITH VIRTUAL MACHINES - In the computer system, a storage system provides a storage level virtual volume based on thin provisioning technology, to a physical server on which a virtual machine is defined. The storage system releases the area of the logical volume corresponding to the storage level virtual volume accessed by a virtual machine which is specified to be deleted, on the basis of storage level virtual volume conversion information which is managed by the storage system. | 02-02-2012 |
20120030405 | INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD - According to one embodiment, an information processing device includes an OS and a virtual machine switching section. The OS accesses a hardware resource including a nonvolatile semiconductor memory and a semiconductor memory used as a cache memory of the nonvolatile semiconductor memory. The virtual machine switching section switches a virtual machine in exection from a first virtual machine to a second virtual machine while a cache process is executed, when cache miss in a process executed by the first virtual machine is detected. | 02-02-2012 |
20120030406 | HYPERVISOR-BASED MANAGEMENT OF LOCAL AND REMOTE VIRTUAL MEMORY PAGES - A system and method is illustrated for comparing a target memory address and a local memory size using a hypervisor module that resides upon a compute blade, the comparison based upon a unit of digital information for the target memory address and an additional unit of digital information for the local memory size. Additionally, the system and method utilizes swapping of a local virtual memory page with a remote virtual memory page using a swapping module that resides on the hypervisor module, the swapping based upon the comparing of the target memory address and the local memory size. Further, the system and method is implemented to transmit the local virtual memory page to a memory blade using a transmission module that resides upon the compute blade. | 02-02-2012 |
20120030407 | SYSTEM AND METHOD FOR IMPROVING MEMORY LOCALITY OF VIRTUAL MACHINES - A system and related method of operation for migrating the memory of a virtual machine from one NUMA node to another. Once the VM is migrated to a new node, migration of memory pages is performed while giving priority to the most utilized pages, so that access to these pages becomes local as soon as possible. Various heuristics are described to enable different implementations for different situations or scenarios. | 02-02-2012 |
20120042115 | APPARATUS AND METHODS FOR LOOK-AHEAD VIRTUAL VOLUME META-DATA PROCESSING IN A STORAGE CONTROLLER - Apparatus and methods for improved efficiency in accessing meta-data in a storage controller of a virtualized storage system. Features and aspects hereof walk/retrieve meta-data for one or more other I/O requests when retrieving meta-data for a first I/O request. The meta-data may include mapping information for mapping logical addresses of the virtual volume. Meta-data may also include meta-data associated with higher level, enhanced data services provide by or in conjunction with the storage system. Enhanced data services may include features for synchronous mirroring of a volume and/or management of time-based snapshots of the content of a virtual volume. | 02-16-2012 |
20120047312 | VIRTUAL MACHINE MEMORY MANAGEMENT IN SYSTEMS WITH ASYMMETRIC MEMORY - A system is described herein that includes a predictor component that predicts accesses to portions of asymmetric memory pools in a computing system by a virtual machine, wherein the asymmetric memory pools comprise a first memory and a second memory, and wherein performance characteristics of the first memory are non-identical to performance of the second memory. The system also includes a memory management system that allocates portions of the first memory to the virtual machine based at least in part upon the accesses to the asymmetric memory pools predicted by the predictor component. | 02-23-2012 |
20120047313 | HIERARCHICAL MEMORY MANAGEMENT IN VIRTUALIZED SYSTEMS FOR NON-VOLATILE MEMORY MODELS - A computing apparatus is described herein that includes one or more physical processors and memory, wherein the memory comprises volatile memory and non-volatile memory, and wherein contents of the non-volatile memory are made accessible to the processors directly, without going through the paging hierarchy, in a time and space multiplexed manner. The computing apparatus further includes a plurality of virtual machines executing on one or more processors, wherein the plurality of virtual machines are configured to access both the volatile memory and the non-volatile memory. A manager component manages allocation of the volatile memory and the non-volatile memory across the plurality of virtual machines during execution of the plurality of virtual machines on the processor, thereby giving the virtual machines an illusion of a larger volatile memory (DRAM) space than is actually available. | 02-23-2012 |
20120059973 | HARDWARE ASSISTANCE FOR SHADOW PAGE TABLE COHERENCE WITH GUEST PAGE MAPPINGS - Some embodiments of the present invention include a memory management unit (MMU) configured to, in response to a write access targeting a guest page mapping of a guest virtual page number (GVPN) to a guest physical page number (GPPN) within a guest page table, identify a shadow page mapping that associates the GVPN with a physical page number (PPN). The MMU is also configured to determine whether a traced write indication is associated with the shadow page mapping and, if so, record update information identifying the targeted guest page mapping. The update information is used to reestablish coherence between the guest page mapping and the shadow page mapping. The MMU is further configured to perform the write access. | 03-08-2012 |
20120072638 | SINGLE STEP PROCESSING OF MEMORY MAPPED ACCESSES IN A HYPERVISOR - Trapping and/or processing of read/write accesses to hardware devices represented to the host through a memory mapped space may be performed without knowledge of the processor's instruction set or semantics of the processor's instructions. A single step routine may be executed to recognize page faults occurring from read/write accesses to emulated memory pages and causing the guest to retry the operation on a single step buffer. The hypervisor may perform post-operation processing on the single step buffer after the guest retries and completes the read or write access. For example, on a read request, the single step routine may place the guest value in the single step buffer for reading by the guest on a retry operation. On a write request, the single step routine may direct the guest to retry the write operation into the single step buffer. After the retry operation the single step routine may read the guest value from the single step buffer and place the guest value in a register of an appropriate emulated system. | 03-22-2012 |
20120079164 | MICROPROCESSOR WITH DUAL-LEVEL ADDRESS TRANSLATION - A processor includes a first translation look-aside buffer to support a guest operating mode. A second translation look-aside buffer supports a root operating mode. Hardware resources support the guest operating mode as controlled by guest mode control registers defining guest context. The guest context is used by the hardware resources to access the first translation look-aside buffer to translate a guest virtual address to a guest physical address. The hardware resources access the second translation look-aside buffer to translate the guest physical address to a physical address. | 03-29-2012 |
20120079165 | Paging Memory From Random Access Memory To Backing Storage In A Parallel Computer - Paging memory from random access memory (‘RAM’) to backing storage in a parallel computer that includes a plurality of compute nodes, including: executing a data processing application on a virtual machine operating system in a virtual machine on a first compute node; providing, by a second compute node, backing storage for the contents of RAM on the first compute node; and swapping, by the virtual machine operating system in the virtual machine on the first compute node, a page of memory from RAM on the first compute node to the backing storage on the second compute node. | 03-29-2012 |
20120084487 | System and Method for Controlling the Input/Output of a Virtualized Network - In accordance with an embodiment a method of running a virtual machine on a server includes controlling data path resources allocated to the virtual machine using a first supervisory process running on the server, controlling data path resources comprising controlling a data path of a hardware interface device coupled to the server, and controlling control path and initialization resources of the hardware interface device using a second process running on the server, where the second process is separate from the first supervisory process. | 04-05-2012 |
20120084488 | Dynamic Address Translation With Translation Exception Qualifier - What is provided is an enhanced dynamic address translation facility. In one embodiment, a virtual address to be translated and an initial origin address of a translation table of the hierarchy of translation tables are obtained. Dynamic address translation of the virtual address proceeds. In response to a translation interruption having occurred during dynamic address translation, bits are stored in a translation exception qualifier (TXQ) field to indicate that the exception was either a host DAT exception having occurred while running a host program or a host DAT exception having occurred while running a guest program. The TXQ is further capable of indicating that the exception was associated with a host virtual address derived from a guest page frame real address or a guest segment frame absolute address. The TXQ is further capable of indicating that a larger or smaller host frame size is preferred to back a guest frame. | 04-05-2012 |
20120089764 | Method for Improving Memory System Performance in Virtual Machine Systems - Updating contents of certain memory pages in a virtual machine system is deferred until they are needed. Specifically, certain page update operations are deferred until the page is accessed for a load or store operation. Each page within the virtual machine system includes associated metadata, which includes a page signature characterizing the contents of a corresponding page or a reference to a page with canonical contents, and a flag that indicates the page needs to be updated before being accessed. The metadata may also include a flag to indicate that a backing store of the memory page has contents of a known content class. When such a memory page is mapped to a shared page with contents of that known content class, a flag in the metadata to indicate that contents of the memory page needs to be updated is not set. | 04-12-2012 |
20120102258 | DYNAMIC MEMORY AFFINITY REALLOCATION AFTER PARTITION MIGRATION - A method of dynamically reallocating memory affinity in a virtual machine after migrating the virtual machine from a source computer system to a destination computer system migrates processor states and resources used by the virtual machine from the source computer system to the destination computer system. The method maps memory of the virtual machine to processor nodes of the destination computer system. The method deletes memory mappings in processor hardware, such as translation lookaside buffers and effective-to-real address tables, for the virtual machine on the destination computer system. The method starts the virtual machine on the destination computer system in virtual real memory mode. A hypervisor running on the destination computer system receives a page fault and virtual address of a page for said virtual machine from a processor of the destination computer system and determines if the page is in local memory of the processor. If the hypervisor determines the page to be in the local memory of the processor, the hypervisor returning a physical address mapping for the page to the processor. If the hypervisor determines the page not to be in the local memory of the processor, the hypervisor moves the page to local memory of the processor and returns a physical address mapping for said page to the processor. | 04-26-2012 |
20120110236 | System and Method to Prioritize Large Memory Page Allocation in Virtualized Systems - The prioritization of large memory page mapping is a function of the access bits in the L1 page table. In a first phase of operation, the number of set access bits in each of the L1 page tables is counted periodically and a current count value is calculated therefrom. During the first phase, no pages are mapped large even if identified as such. After the first phase, the current count value is used to prioritize among potential large memory pages to determine which pages to map large. The system continues to calculate the current count value even after the first phase ends. When using hardware assist, the access bits in the nested page tables are used and when using software MMU, the access bits in the shadow page tables are used for large page prioritization. | 05-03-2012 |
20120110237 | METHOD, APPARATUS, AND SYSTEM FOR ONLINE MIGRATING FROM PHYSICAL MACHINE TO VIRTUAL MACHINE - A method, an apparatus, and a system for online migrating from a physical machine to a virtual machine are provided. The method including: after a target virtual machine is created, started, and suspended by a virtualization platform VMM Host, initially synchronizing data of a memory page from a source physical machine to the target virtual machine at a second time point; monitoring the operation of updating the memory page since the second time point; incrementally synchronizing data of the updated memory page in the source physical machine to the target virtual machine, and stopping monitoring when an increment value of the updated memory page in the source physical machine is less than a first threshold; and calling the virtualization platform VMM Host to resume the target virtual machine to a running state. The effect of smoothly switching services from the source physical machine to the target virtual machine is achieved. | 05-03-2012 |
20120117298 | Managing Memory Across a Network of Cloned Virtual Machines - A method and system manages memory in a network of virtual machines, including a copy of a master virtual machine (VM) memory system, the copy accessible to a memory server. The method includes determining whether a memory page requested by a clone VM memory system is fetchable from the memory server, the clone VM memory system hosted in a host memory system; if the memory page is fetchable from the memory server, fetching the memory page from the memory server; determining whether there is sufficient space in the host memory system to load the memory page; if there is insufficient space in the host memory system, evicting a selected memory page from the host memory system; and loading the memory page into the host memory system and the clone VM memory system. | 05-10-2012 |
20120117299 | EFFICIENT ONLINE CONSTRUCTION OF MISS RATE CURVES - Miss rate curves are constructed in a resource-efficient manner so that they can be constructed and memory management decisions can be made while the workloads are running. The resource-efficient technique includes the steps of selecting a subset of memory pages for the workload, maintaining a least recently used (LRU) data structure for the selected memory pages, detecting accesses to the selected memory pages and updating the LRU data structure in response to the detected accesses, and generating data for constructing a miss-rate curve for the workload using the LRU data structure. After a memory page is accessed, the memory page may be left untraced for a period of time, after which the memory page is retraced. | 05-10-2012 |
20120117300 | INVALIDATING TRANSLATION LOOKASIDE BUFFER ENTRIES IN A VIRTUAL MACHINE (VM) SYSTEM - One embodiment of the present invention is a technique to invalidate entries in a translation lookaside buffer (TLB). A TLB in a processor has a plurality of TLB entries. Each TLB entry is associated with a virtual machine extension (VMX) tag word indicating if the associated TLB entry is invalidated according to a processor mode when an invalidation operation is performed. The processor mode is one of execution in a virtual machine (VM) and execution not in a virtual machine. The invalidation operation belongs to a non-empty set of invalidation operations composed of a union of ( | 05-10-2012 |
20120117301 | METHODS AND APPARATUS FOR VIRTUALIZATION IN AN INTEGRATED CIRCUIT - Various methods and apparatus are described for communicating transactions between one or more initiator IP cores and one or more target IP cores coupled to an interconnect. A centralized Memory Management logic Unit (MMU) is located in the interconnect for virtualization and sharing of integrated circuit resources including target cores between the one or more initiator IP cores. A master translation look aside buffer (TLB) stores virtualization and sharing information in the entries of the master TLB. A set of two or more translation look aside buffers (TLBs) locally store virtualization and sharing information replicated from the master TLB. Logic in the MMU or other software updates the virtualization and sharing information replicated from the master TLB in the entries of one or more of the set of local TLBs. | 05-10-2012 |
20120124269 | Organizing Memory for Effective Memory Power Management - A kernel of the operating system reorganizes a plurality of memory units into a plurality of virtual nodes in a virtual non-uniform memory access architecture in response to receiving a configuration of the plurality of memory units from a firmware. A subsystem of the operating system determines an order of allocation of the plurality of virtual nodes calculated to maintain a maximum number of the plurality of memory units devoid of references. The memory controller transitions one or more memory units into a lower power state in response to the one or more memory units being devoid of one or more references for the period of time. | 05-17-2012 |
20120124270 | RELIEVING MEMORY PRESSURE IN A HOST USING DATABASE MEMORY MANAGEMENT - Memory of a database management system (DBMS) that is running in a virtual machine is managed using techniques that integrate DBMS memory management with virtual machine memory management. Because of the integration, the effectiveness of DBMS memory management is preserved even though the physical memory allocated to the virtual machine may change during runtime as a result of varying memory demands of other applications, e.g., instances of other virtual machines, running on the same host computer as the virtual machine. | 05-17-2012 |
20120124271 | Location of Memory Management Translations in an Emulated Processor - A method and system for location of memory management translations in an emulated processor. The method includes: detecting a page miss of a process on an emulated processor, wherein the emulated processor software refills a translation lookaside buffer (TLB); locating a secondary data structure in memory; fetching a missing translation from a secondary data structure in memory; and inserting the missing translation in a guest translation lookaside buffer; wherein the steps are carried out in a trap handler in the emulated environment. The steps may be carried out in the emulated processor or in a host server of the emulated processor instead of invoking a guest operating system trap handler. | 05-17-2012 |
20120131259 | SHARING MEMORY PAGES HAVING REGULAR EXPRESSIONS WITHIN A VIRTUAL MACHINE - A lightweight technique for sharing memory pages within a virtual machine (VM) is provided. This technique can be used on its own to implement intra-VM page sharing or it can be augmented with sharing across VMs. Memory pages whose content can be described by some succinct grammar, such as a regular expression or simple pattern, are identified for sharing within a VM. If the content of a page matches some simple pattern, it is proposed to share such a page, but only in the scope of the VM to which it belongs, i.e., intra-VM sharing. All other pages, i.e., those that are not simple patterns, can be candidates for sharing in the scope of all currently active VMs, i.e., inter-VM sharing. Either fully functional page sharing across VMs and/or page sharing in the context of each VM can be implemented. | 05-24-2012 |
20120131260 | HYPERVISOR PAGE FAULT PROCESSING IN A SHARED MEMORY PARTITION DATA PROCESSING SYSTEM - Hypervisor page fault processing logic is provided for a shared memory partition data processing system. The logic, responsive to an executing virtual processor of the shared memory partition data processing system encountering a hypervisor page fault, allocates an input/output (I/O) paging request to the virtual processor from an I/O paging request pool and increments an outstanding I/O paging request count for the virtual processor. A determination is then made whether the outstanding I/O paging request count for the virtual processor is at a predefined threshold, and if not, the logic places the virtual processor in a wait state with interrupt wake-up reasons enabled based on the virtual processor's state, otherwise, it places the virtual processor in a wait state with interrupt wake-up reasons disabled. | 05-24-2012 |
20120137045 | EFFICIENTLY DETERMINING IDENTICAL PIECES OF MEMORY USED BY VIRTUAL MACHINES - Efficiently determining identical pieces of memory within a computer memory area, which is occupied by a virtual machine manager hosting multiple guests and the computer memory area being logically separated into memory pages of a unique size. Each guest is inspected for its structural characteristics by the virtual machine manager. The structural characteristics of each guest are compared by the virtual machine manager, wherein memory regions of guests having a similar structure are identified; and the identical memory pages are identified by the virtual machine manager by comparing hash values of memory pages located within memory regions of guests having a similar structure, wherein identical memory pages are determined by comparing hash values calculated over the contents of the memory pages. | 05-31-2012 |
20120151115 | Automatic Alignment of Write Requests in Virtualization Systems - A method and system for automatically aligning the location of a write request of a guest operating system (OS) to a storage boundary of a computer system that hosts the guest OS. The computer system detects an indication of misalignment between a partition of the guest OS and a storage boundary in data storage. In response to the indication, the computer system shifts the partition by a number of bytes to align a starting location of the partition to the storage boundary, and shift locations of subsequent data access requests of the guest OS by the same number of bytes. | 06-14-2012 |
20120151116 | VIRTUALIZING PROCESSOR MEMORY PROTECTION WITH "L1 ITERATE AND L2 DROP/REPOPULATE" - In a computing system including a processor and virtualization software including a guest operating system (OS) that utilizes a guest domain access control register (DACR) containing domain access information and guest page tables including first level page tables (L1 page tables) and second level page tables (L2 page tables), which guest page tables contain: (a) domain identifiers used to obtain domain access information from the guest DACR and (b) access permission information, wherein the domain access information and the access permission information are combined to provide an effective guest access permission, in accordance with one embodiment, a method for providing shadow page tables and processor DACR settings that virtualize processor memory protection includes: the virtualization software providing a shadow page table wherein: (a) domain identifiers in the shadow page table are used to identify domain access information in the processor DACR that are mapped from the domain access information in the guest DACR; and (b) access permissions in the shadow page table that are mapped from the effective access permission information in the guest page tables and guest DACR; wherein a memory management unit (MMU) in the processor traverses the shadow page table, accesses the processor DACR, and combines the mapped domain access information in the processor with the mapped access permission in the shadow page table to reflect the guest intended effective access permissions while isolating the guest from the virtualization software. | 06-14-2012 |
20120151117 | VIRTUALIZING PROCESSOR MEMORY PROTECTION WITH "DOMAIN TRACK" - Methods for providing shadow page tables that virtualize processor memory protection. In one embodiment, virtualization software maintains the following: (a) a mapping φ from guest domain identifier to a set of shadow L2 page tables that back guest L1 sections marked with a domain identifier; and (b) with each such shadow L2 page table, a set ω of back-pointers to “potentially referencing” shadow L1 descriptors. | 06-14-2012 |
20120151118 | APPARATUS, SYSTEM, AND METHOD FOR AUTO-COMMIT MEMORY - An auto-commit memory is capable of implementing a pre-configured, triggered commit action in response to a failure condition, such as a loss of power, invalid shutdown, fault, or the like. A computing device may access the auto-commit memory using memory access semantics (using a memory mapping mechanism or the like), bypassing system calls typically required in virtual memory operations. Since the auto-commit memory is pre-configured to commit data stored thereon in the event of a failure, users of the auto-commit memory may view these memory semantic operations as being instantly committed. Since operations to commit the data are taken out of the write-commit path, the performance of applications that are write-commit bound may be significantly improved. | 06-14-2012 |
20120159039 | Generalized Control Registers - Methods, systems, and computer readable media generalize control registers in the context of memory address translations for I/O devices. A method includes maintaining a table including a plurality of concurrently available control register base pointers each associated with a corresponding input/output (I/O) device, associating each control register base pointer with a first translation from a guest virtual address (GVA) to a guest physical address (GPA) and a second translation from the GPA to a system physical address (SPA), and operating the first and second translations concurrently for the plurality of I/O devices. | 06-21-2012 |
20120166705 | MANAGING VIRTUAL MACHINES - Virtual machines are managed by obtaining software hierarchy information of a current virtual machine to be installed. Then logical memory assigned to the current virtual machine is divided into a private part and a shared part based at least in part upon existing software hierarchy information of at least one virtual machine already installed and the software hierarchy information of the current virtual machine. Then, the shared part of the logical memory is mapped to shared segments of a physical memory, wherein the shared segments are used by at least one installed virtual machine. | 06-28-2012 |
20120179855 | Mechanism for Memory Change Tracking During Migration of Virtual Machine (VM) with VM-Controlled Assigned Peripherals - A mechanism for memory change tracking during migration of a virtual machine (VM) with VM-controlled assigned peripherals is disclosed. A method of the invention includes informing a write tracking module of an interest by a hypervisor of a host machine in a specific memory location associated with a peripheral device that is controlled by a VM managed by the hypervisor, receiving notification from the write tracking module that the identified specific memory location has been modified by the peripheral device, and marking a memory page of the specific identified memory location as dirty in order for the migration of the memory page to be repeated as part of a migration process of the VM to a destination host machine. | 07-12-2012 |
20120191896 | CIRCUITRY TO SELECT, AT LEAST IN PART, AT LEAST ONE MEMORY - An embodiment may include circuitry to select, at least in part, from a plurality of memories, at least one memory to store data. The memories may be associated with respective processor cores. The circuitry may select, at least in part, the at least one memory based at least in part upon whether the data is included in at least one page that spans multiple memory lines that is to be processed by at least one of the processor cores. If the data is included in the at least one page, the circuitry may select, at least in part, the at least one memory, such that the at least one memory is proximate to the at least one of the processor cores. Many alternatives, variations, and modifications are possible. | 07-26-2012 |
20120210042 | REMOTE MEMORY FOR VIRTUAL MACHINES - Remote memory can be used for a number idle pages located on a virtual machine. A number of idle pages can be sent to the remote memory according to a placement policy, where the placement policy can include a number of weighting factors. A hypervisor on a computing device can record a local size and a remote page fault frequency of the number of virtual machines. The hypervisor can scan local memory to determine the number of idle pages and a number of idle virtual machines. The number of idle pages, including a page map and a remote address destination for each idle page, can be sent to the remote memory by the hypervisor. The number of virtual machines can be analyzed to determine a per-virtual machine local memory allocation. | 08-16-2012 |
20120210043 | Systems and Methods for Managing Data Input/Output Operations - Systems and methods for managing data input/output operations are described. In one aspect, a device driver identifies a data read operation generated by a virtual machine in a virtual environment. The device driver is located in the virtual machine and the data read operation identifies a physical cache address associated with the data requested in the data read operation. A determination is made regarding whether data associated with the data read operation is available in a cache associated with the virtual machine. | 08-16-2012 |
20120210044 | PARTITION ADJUNCT FOR DATA PROCESSING SYSTEM - A partition adjunct is provided for a logical partition running above a hypervisor of a data processing system. The partition adjunct, which is a separate dispatchable partition from an instantiating logical partition, provides one or more services to the logical partition. A service request received from the logical partition is processed by the partition adjunct utilizing virtual address space donated to the partition adjunct from the logical partition. The partition adjunct and the logical partition share a common virtual address to real address page table, and context switching the current state machine from the logical partition to the partition adjunct occurs without invalidating or modifying state data of selected memory management and address translation hardware of the data processing system. In a hardware multithreaded system, the partition adjunct is dispatched on a single thread, while another thread continues to run in the logical partition initiating the service request. | 08-16-2012 |
20120221765 | MANAGEMENT OF MEMORY POOL IN VIRTUALIZATION ENVIRONMENT - A virtualization apparatus is provided. The virtualization apparatus includes a plurality of virtual machines configured to have priority levels, a memory pool configured to be shared between the plurality of virtual machines and store part of data stored in a system memory of each of the plurality of virtual machines, and a memory pool manager configured to process a memory allocation request or a data storage request regarding the memory pool in consideration of the priority levels of the plurality of virtual machines, a guaranteed memory size for each of the plurality of virtual machines, and a size of memory that can be allocated to each of the plurality of virtual machines. | 08-30-2012 |
20120226849 | VIRTUAL COMPUTER SYSTEM, AREA MANAGEMENT METHOD, AND PROGRAM - A virtual computer system having a plurality of virtual computers, the virtual computer system including: an area assignment unit operable to, when a virtual computer attempts to perform writing to a basic area which is assigned to and shared by the plurality of virtual computers, change an assignment to the virtual computer from the basic area to a copy area to which the basic area is copied and the writing is performed; and an area freeing unit operable to, when a content of the basic area matches a content of at least one copy area, change area assignment to one or more virtual computers, to which have been assigned one or more other areas than one area among the areas whose contents match each other, to the one area, and free the one or more other areas. | 09-06-2012 |
20120233378 | PROTECTING GUEST VIRTUAL MACHINE MEMORY - A hypervisor runs on a host computer system and defines at least one virtual machine. An address space of the virtual machine resides on physical memory of the host computer system under control of the hypervisor. A guest operating system runs in the virtual machine. At least one of a host operating system and the hypervisor sets parts of the address space of the host computer system corresponding to parts of the address space of the virtual machine to a locked state in which those parts can be read but not written to. | 09-13-2012 |
20120239850 | METHOD FOR CREATING VIRTUAL MACHINE, A VIRTUAL MACHINE MONITOR, AND A VIRTUAL MACHINE SYSTEM - A method for creating virtual machine, a virtual machine monitor and a virtual machine system are provided in the embodiments of this application. The method comprises: mapping guest frame number (GFN) corresponding to a pseudo-physical memory of a virtual machine to a shared zero page, the shared zero page being a page having content of all zeros in physical memory; when the GFN is written by the virtual machine and if a page exception occurs, allocating a physical memory page to relieve the mapping relation between the guest frame number (GFN) and the shared zero page, and establishing a mapping relation between the guest frame number (GFN) and a machine frame number (MFN) of the physical memory page. The method can reduce the amount of memory used in virtual machine startup, improve virtual machine density, and support the concurrent startup of a memory overcommitted number of virtual machine. | 09-20-2012 |
20120246381 | Input Output Memory Management Unit (IOMMU) Two-Layer Addressing - Embodiments of the present invention provide methods, systems, and computer readable media for input output memory management unit (IOMMU) two-layer addressing in the context of memory address translations for I/O devices. According to an embodiment, a method includes translating a guest virtual address (GVA) to a corresponding guest physical address (GPA) using a guest address translation table according to a process address space identifier associated with an address translation transaction associated with an I/O device, and translating the GPA to a corresponding system physical address (SPA) using a system address translation table according to a device identifier associated with the address translation transaction. | 09-27-2012 |
20120246382 | METADATA STORAGE IN UNUSED PORTIONS OF A VIRTUAL DISK FILE - Embodiments disclosed herein provide systems and method for storing metadata to unused portions of a virtual disk file. In a particular embodiment, a method provides selecting a virtual disk file stored on a data storage volume and identifying unused portions of the virtual disk file. The method further provides writing metadata for the virtual disk file in the unused portions of the virtual disk file. | 09-27-2012 |
20120254497 | METHOD AND APPARATUS TO FACILITATE SHARED POINTERS IN A HETEROGENEOUS PLATFORM - A method and apparatus to facilitate shared pointers in a heterogeneous platform. In one embodiment of the invention, the heterogeneous or non-homogeneous platform includes, but is not limited to, a central processing core or unit, a graphics processing core or unit, a digital signal processor, an interface module, and any other form of processing cores. The heterogeneous platform has logic to facilitate sharing of pointers to a location of a memory shared by the CPU and the GPU. By sharing pointers in the heterogeneous platform, the data or information sharing between different cores in the heterogeneous platform can be simplified. | 10-04-2012 |
20120260019 | ELASTIC PROVISIONING OF RESOURCES VIA DISTRIBUTED VIRTUALIZATION - A multi-layer architecture is provided for elastic provisioning of virtualized computing resources. The multi-layer architecture comprises a physical hardware layer comprising a plurality of physical computing machines, a distributed operating system layer that aggregates and virtualizes the computing resources, and a virtual machine layer that comprises virtual machines provisioned, by the distributed operating system layer, with virtualized computing resources. Elastic provisioning of virtualized computing resources comprising receiving computing resource information of a plurality of physical computing machines, producing virtualized computing resources by aggregating the received computing resource information of the plurality of physical computing machines, and provisioning the virtualized computing resources among a plurality of virtual machines. | 10-11-2012 |
20120265920 | STORAGE BLOCK DEALLOCATION IN VIRTUAL ENVIRONMENTS - A system and method deallocates data blocks in virtual environments with high efficiency. A computer system hosting a virtual machine includes an I/O device driver in the guest operating system of the virtual machine. The I/O device driver intercepts an operation performed by the guest operating system that causes a data block to be deallocated in the virtual machine. The I/O device driver informs a hypervisor of the computer system that the data block is to be deallocated. The hypervisor then instructs the data storage to deallocate the data block for reuse. | 10-18-2012 |
20120271981 | DIRECT MEMORY ACCESS-LIKE DATA TRANSFER BETWEEN GUEST OPERATING SYSTEMS - A computer system with a memory containing a first guest operating system, including a first portion of the memory and a second guest operating system, including a second portion of the memory. The memory further contains an address exchange module for exchanging memory address handles, a data mover for moving data between the first and second portions of the memory, and an emulated input output memory management unit for controlling the data mover. Instructions in the memory cause the processor to: register accessible memory with the emulated input output memory management unit, write address handles to the address exchange module, read the address handles from the address exchange module, and move the data into the second portion of the memory. | 10-25-2012 |
20120278525 | INCREASING GRANULARITY OF DIRTY BIT INFORMATION - One or more unused bits of a virtual address range are allocated for aliasing so that multiple virtually addressed sub-pages can be mapped to a common memory page. When one bit is allocated for aliasing, dirty bit information can be provided at a granularity that is one-half of a memory page. When M bits are allocated for aliasing, dirty bit information can be provided at a granularity that is 1/(2 | 11-01-2012 |
20120290765 | RECLAIMING MEMORY PAGES IN A COMPUTING SYSTEM HOSTING A SET OF VIRTUAL MACHINES - A technique reclaims memory pages in a virtualization platform. The technique involves receiving, by a virtual machine of the virtualization platform, an inflate command which directs a balloon driver of the virtual machine to inflate. The technique further involves issuing, by the virtual machine and in response to the inflate command, a sweep request to a hypervisor. The sweep request directs the hypervisor to (i) perform a scan of memory pages allocated to the virtual machine for a predetermined pattern of characters, (ii) de-allocate memory pages having the predetermined pattern of characters from the virtual machine (e.g., zeroed pages), the de-allocated memory pages including super pages and regular pages, and (iii) update a list of memory page mappings to reflect the de-allocated memory pages. The technique further involves completing balloon driver inflation after the list of memory page mappings is updated. | 11-15-2012 |
20120290766 | Direct Memory Access Filter for Virtualized Operating Systems - Described techniques increase runtime performance of workloads executing on a hypervisor by executing virtualization-aware code in an otherwise non virtualization-aware guest operating system. In one implementation, the virtualization-aware code allows workloads direct access to physical hardware devices, while allowing the system memory allocated to the workloads to be overcommitted. In one implementation, a DMA filter driver is inserted into an I/O driver stack to ensure that the target virtual memory of a DMA transfer is resident before the transfer begins. The DMA filter driver may utilize a cache to track which pages of memory are resident. The cache may also indicate which pages of memory are in use by one or more transfers, enabling the hypervisor to avoid appropriating pages of memory during a transfer. | 11-15-2012 |
20120303858 | ADJUSTING AVAILABLE PERSISTENT STORAGE DURING EXECUTION IN A VIRTUAL COMPUTER SYSTEM - The amount of virtual disk space that is available for use by software executing within a virtual machine (VM) may be dynamically adjusted while the VM is running in a virtual computer system. A method for reservation of disk space from a virtual machine is provided. A request is received at a first VM relating to reserving a portion of a virtual disk used by the first VM. In response, the first VM allocates additional storage in the virtual disk to a guest file stored in the virtual disk, wherein the guest file is not used to store meaningful data and then communicates sectors of the virtual disk corresponding to the additional storage for the guest file to the virtualization layer. The virtualization layer provides to a second VM access to sectors of the physical storage space that correspond to the sectors of the virtual disk that were allocated as additional storage to the guest file. | 11-29-2012 |
20120317331 | USING COOPERATIVE GREEDY BALLOONING TO REDUCE SECOND LEVEL PAGING ACTIVITY - In one embodiment, a virtual machine manager may use dynamic memory balancing and greedy ballooning to improve guest memory performance. A memory | 12-13-2012 |
20120324144 | Relocating Page Tables And Data Amongst Memory Modules In A Virtualized Environment - Relocating data in a virtualized environment maintained by a hypervisor administering access to memory with a Cache Page Table (‘CPT’) and a Physical Page Table (‘PPT’), the CPT and PPT including virtual to physical mappings. Relocating data includes converting the virtual to physical mappings of the CPT to virtual to logical mappings; establishing a Logical Memory Block (‘LMB’) relocation tracker that includes logical addresses of an LMB, source physical addresses of the LMB, target physical addresses of the LMB, a translation block indicator for each relocation granule, and a pin count associated with each relocation granule; establishing a PPT entry tracker including PPT entries corresponding to the LMB to be relocated; relocating the LMB in a number of relocation granules including blocking translations to the relocation granules during relocation; and removing the logical addresses from the LMB relocation tracker. | 12-20-2012 |
20130007338 | WRITING TO ASYMMETRIC MEMORY - A memory controller writes to a virtual address associated with data residing within an asymmetric memory component of main memory that is within a computer system and that has a symmetric memory component, while preserving proximate other data residing within the asymmetric memory component. The symmetric memory component within the main memory of the computer system is configured to enable random access write operations in which an address within a block of the symmetric memory component is written without affecting the availability of other addresses within the block of the symmetric memory component during the writing of that address. The asymmetric memory component is configured to enable block write operations in which writing to an address within a region of the asymmetric memory component affects the availability of other addresses within the region of the asymmetric memory component during the block write operations involving the address. | 01-03-2013 |
20130013844 | INTELLIGENT CONTENT AWARE CACHING OF VIRTUAL MACHINE DATA BY RELEVANCE TO THE NTFS FILE SYSTEM - Methods and systems to intelligently cache content in a virtualization environment using virtualization software such as VMWare ESX or Citrix XenServer or Microsoft HyperV or Redhat KVM or their variants are disclosed. Storage IO operations (reads from and writes to disk) are analyzed (or characterized) for their overall value and pinned to cache if their value exceeds a certain defined threshold based on criteria specific to the New Technology File System (NTFS) file-system. Analysis/characterization of NTFS file systems for intelligent dynamic caching include analyzing storage block data associated with a Virtual Machine of interest in accordance with a pre-determined data model to determine the value of the block under analysis for long term or short term caching. Integer values assigned to different types of NTFS objects in a white list data structure called a catalog that can be used to analyze the storage block data. | 01-10-2013 |
20130024598 | INCREASING GRANULARITY OF DIRTY BIT INFORMATION IN HARDWARE ASSISTED MEMORY MANAGEMENT SYSTEMS - In a computer system having virtual machines, one or more unused bits of a guest physical address range are allocated for aliasing so that multiple virtually addressed sub-pages can be mapped to a common memory page. When one bit is allocated for aliasing, dirty bit information can be provided at a granularity that is one-half of a memory page. When M bits are allocated for aliasing, dirty bit information can be provided at a granularity that is 1/(2 | 01-24-2013 |
20130031291 | SYSTEM AND METHOD FOR VIRTUAL PARTITION MONITORING - A method is provided in one example embodiment that includes rebasing a module in a virtual partition to load at a fixed address and storing a hash of a page of memory associated with the fixed address. An external handler may receive a notification associated with an event affecting the page. An internal agent within the virtual partition can execute a task and return results based on the task to the external handler, and a policy action may be taken based on the results returned by the internal agent. In some embodiments, a code portion and a data portion of the page can be identified and only a hash of the code portion is stored. | 01-31-2013 |
20130031292 | SYSTEM AND METHOD FOR MANAGING MEMORY PAGES BASED ON FREE PAGE HINTS - A host selects a memory page that has been allocated to a guest for eviction. The host may be a host machine that hosts a plurality of virtual machines. The host accesses a bitmap maintained by the guest to determine a state of a bit in the bitmap associated with the memory page. The host determines whether content of the memory page is to be preserved based on the state of the bit. In response to determining that the content of the memory page is not to be preserved, the host discards the content of the memory page. | 01-31-2013 |
20130031293 | SYSTEM AND METHOD FOR FREE PAGE HINTING - A processing device executing an operating system such as a guest operating system generates a bitmap wherein bits of the bitmap represent statuses of memory pages that are available to the operating system. The processing device frees a memory page. The processing device then sets a bit in the bitmap to indicate that the memory page is unused after the memory page is freed. | 01-31-2013 |
20130031294 | NETWORK FILTERING IN A VIRTUALIZED ENVIRONMENT - A physical host executes a hypervisor or virtual machine monitor (VMM) that instantiates at least one virtual machine (VM) and a virtual input/output server (VIOS). The VIOS determines by reference to a policy data structure a disposition of a packet of network communication with the VM, where the disposition includes one of dropping the packet and forwarding the packet. Thereafter, the determined disposition is applied to a subsequent packet in a same packet flow as the packet. | 01-31-2013 |
20130036249 | PREEMPTIVE GUEST MERGING FOR VIRTUALIZATION HYPERVISORS - Aspects of the present invention provide a solution for managing memory in a shared virtual computing environment. A page that is to be stored in the memory of the host in the virtual computing environment is obtained from a guest. The page is analyzed to compute an identifier for the page. This identifier is compared with other identifiers of other pages that are currently stored in the memory to determine whether the identical page is already stored in the memory. If the identical page is currently stored in the memory, a link to that page is stored in the portion of the memory that is allocated to the guest. | 02-07-2013 |
20130054868 | IMAGE STORAGE OPTIMIZATION IN VIRTUAL ENVIRONMENTS - Method, system and computer program product for monitoring and managing virtual machine image storage in a virtualized computing environment, where the method for managing storage utilized by a virtual machine can include identifying one or more unused disk blocks in a guest virtual machine image, and removing the unused disk blocks from the guest virtual machine image. | 02-28-2013 |
20130060988 | METHOD FOR SYMMETRIC LIVE MIGRATION OF VIRTUAL MACHINES - A method is provided for symmetric live migration of virtual machines. According to the method, a first least recently used map is generated for a set of memory pages of a first virtual machine. The first least recently used map includes metadata including memory page physical address location information. A first memory page of the first virtual machine and the metadata for the first memory page is sent from the first virtual machine to a second virtual machine while the first virtual machine is executing. A first memory page and meta data associated therewith of the second virtual machine is received from the second virtual machine. The memory pages of the first virtual machine are ordered from a first location of the first least recently used map to a last location of the first least recently used map based on how recently each of the memory pages of the first virtual machine has been used. | 03-07-2013 |
20130067135 | SYSTEM AND METHOD FOR IMPROVING MEMORY LOCALITY OF VIRTUAL MACHINES - A system and related method of operation for migrating the memory of a virtual machine from one NUMA node to another. Once the VM is migrated to a new node, migration of memory pages is performed while giving priority to the most utilized pages, so that access to these pages becomes local as soon as possible. Various heuristics are described to enable different implementations for different situations or scenarios. | 03-14-2013 |
20130073778 | Mirroring Virtual Machines from a Primary Host to a Secondary Host - A system and computer program product for mirroring virtual machines from a primary host to a secondary host. The system includes a processor tracking changes for each of a plurality of memory pages and processor states for one or more primary host virtual machines. Responsive to an occurrence of a checkpoint, the primary host virtual machines are stopped. A determination is made if each of the memory pages is frequently changed. In response to the memory page being frequently changed, the frequently changed memory page is marked as being writeable and copied to a buffer. In response to the memory page being infrequently changed, the infrequently changed memory page is marked as being read only. The one or more primary host virtual machines are resumed. A copy of the memory pages, the buffer and changes to the processor states are transmitted to the secondary host. | 03-21-2013 |
20130073779 | DYNAMIC MEMORY RECONFIGURATION TO DELAY PERFORMANCE OVERHEAD - Embodiments of the present invention provide a method, system and computer program product for dynamic main memory reconfiguration in virtual memory management. In an embodiment of the invention, a method for dynamic main memory reconfiguration in virtual memory management can include receiving a memory access directive in a host computer, determining a low free space condition in a memory allocation to satisfy the memory access directive, augmenting the memory allocation with a mapping to additional memory in the host computer in lieu of page swapping in response to the low free space condition, and satisfying the memory access directive. Additionally, the method can include determining an excess free space condition in the memory allocation and removing from the memory allocation a selection of allocated memory in the host computer. | 03-21-2013 |
20130073780 | VOLUME SHARING METHOD AND STORAGE SYSTEM USING THE SAME - Since only one golden image (GI) of a snapshot can exist and is shared among a plurality of storage apparatuses, there was a problem that migration or copy thereof deteriorates the capacity efficiency and increases the cost for managing consistency. The present invention solves the above-mentioned problem by either (1) a direct sharing method of generating a parent-child relationship of snapshots among different storage apparatuses at the time of creating differential LUs from the GI or (2) a virtual sharing method of creating virtual LUs of the GI in the respective storage apparatuses and creating differential LUs of the snapshots from the created virtual LUs, using a storage virtualization function among a plurality of storage apparatuses. | 03-21-2013 |
20130086298 | Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion - An approach is provided in which a migration agent receives a message to migrate a virtual machine from a first system to a second system. The first system extracts hardware state data stored in a native format from a memory area located on first system's network adapter. The hardware state data is utilized by the first system's network adapter to process data packets generated by the virtual machine. Next, the virtual machine is migrated to the second system, which includes copying the extracted hardware state data from the first system to the second system. In turn, the second system configures a corresponding second network adapter by writing the copied hardware state data to a memory located on the second network adapter. | 04-04-2013 |
20130086299 | Security in virtualized computer programs - In an embodiment, a data processing method comprises implementing a memory event interface to a hypercall interface of a hypervisor or virtual machine operating system to intercept page faults associated with writing pages of memory that contain a computer program; receiving a page fault resulting from a guest domain attempting to write a memory page that is marked as not executable in a memory page permissions system; determining a first set of memory page permissions for the memory page that are maintained by the hypervisor or virtual machine operating system; determining a second set of memory page permissions for the memory page that are maintained independent of the hypervisor or virtual machine operating system; determining a particular memory page permission for the memory page based on the first set and the second set; processing the page fault based on the particular memory page permission, including performing at least one security function associated with regulating access of the guest domain to the memory page. | 04-04-2013 |
20130091318 | SYSTEM AND METHOD FOR CRITICAL ADDRESS SPACE PROTECTION IN A HYPERVISOR ENVIRONMENT - A system and method in one embodiment includes modules for detecting an access attempt to a critical address space (CAS) of a guest operating system (OS) that has implemented address space layout randomization in a hypervisor environment, identifying a process attempting the access, and taking an action if the process is not permitted to access the CAS. The action can be selected from: reporting the access to a management console of the hypervisor, providing a recommendation to the guest OS, and automatically taking an action within the guest OS. Other embodiments include identifying a machine address corresponding to the CAS by forcing a page fault in the guest OS, resolving a guest physical address from a guest virtual address corresponding to the CAS, and mapping the machine address to the guest physical address. | 04-11-2013 |
20130097354 | PROTECTING MEMORY OF A VIRTUAL GUEST - The method for protecting memory of a virtual guest includes initializing a virtual guest on a host computing system. The host computing system includes a virtual machine manager that manages operation of the virtual guest. The virtual guest includes a distinct operating environment executing in a virtual operation platform provided by the virtual machine manager. The method includes receiving an allocation of run-time memory for the virtual guest, the allocation of run-time memory comprising a portion of run-time memory of the host computing system. The method includes setting, by the virtual guest, at least a portion of the allocation of run-time memory to be inaccessible by the virtual machine manager. | 04-18-2013 |
20130097355 | SYSTEM AND METHOD FOR KERNEL ROOTKIT PROTECTION IN A HYPERVISOR ENVIRONMENT - A system and method in one embodiment includes modules for creating a soft whitelist having entries corresponding to each guest kernel page in a guest operating system in a hypervisor environment, generating a page fault when an access attempt is made to a guest kernel page, fixing the page fault to allow access and execution if the guest kernel page corresponds to one of the entries in the soft whitelist, and denying execution if the guest kernel page does not correspond to any of the entries in the soft whitelist. If the page fault is an instruction page fault, and the guest kernel page corresponds to one of the entries in the soft whitelist, the method includes marking the guest kernel page as read-only and executable. The soft whitelist includes a hash of machine page frame numbers corresponding to virtual addresses of each guest kernel page. | 04-18-2013 |
20130097356 | SYSTEM AND METHOD FOR KERNEL ROOTKIT PROTECTION IN A HYPERVISOR ENVIRONMENT - A system and method for rootkit protection in a hypervisor environment includes modules for creating a soft whitelist having entries corresponding to each guest kernel page of a guest operating system in a hypervisor environment, wherein each entry is a duplicate page of the corresponding guest kernel page, generating a page fault when a process attempts to access a guest kernel page, and redirecting the process to the corresponding duplicate page. If the page fault is a data page fault, the method includes fixing the page fault, and marking a page table entry corresponding to the guest kernel page as non-executable and writeable. If the page fault is an instruction page fault, the method includes marking a page table entry corresponding to the guest kernel page as read-only. Redirecting changing a machine page frame number in a shadow page table of the hypervisor to point to the corresponding duplicate page. | 04-18-2013 |
20130097357 | METHOD FOR IDENTIFYING MEMORY OF VIRTUAL MACHINE AND COMPUTER SYSTEM THEREOF - A method for identifying memories of virtual machines is provided. The method is adapted to a computer system executing at least one virtual machine, and an operating system is executed on the virtual machine. The method includes the following steps. A kernel file of the operating system is obtained, and the kernel file includes version information of the operation system. A source code and a configuration file of the operating system are obtained according to the version information, and the versions of the source code and the configuration file are complied with the version of the operating system. An object file is generated by compiling a fixed interface function with the source code according to the configuration file. Memory pages of the virtual machine are identified according to the object file. Furthermore, a computer system using the foregoing method is also provided. | 04-18-2013 |
20130097358 | METHOD FOR SHARING MEMORY OF VIRTUAL MACHINE AND COMPUTER SYSTEM USING THE SAME - A method for sharing memories of virtual machines is provided. The method is applied for a computer system configured to execute at least one virtual machine. The method includes the following steps. A memory map corresponding to the virtual machines is obtained, wherein usage states of memory pages of the virtual machine are stored in the corresponding memory map. Unused memory pages of the virtual machines are marked as free pages according to the corresponding memory map. The free pages of the virtual machines are shared. Therefore, the unused memory pages in the virtual machine can be shared. A computer system using the foregoing method is also provided. | 04-18-2013 |
20130097359 | SYSTEM AND METHOD TO ENHANCE MEMORY PROTECTION FOR PROGRAMS IN A VIRTUAL MACHINE ENVIRONMENT - In a computer system supporting execution of virtualization software and at least one instance of virtual system hardware, an interface is provided into the virtualization software to allow a program to directly define the access characteristics of its program data stored in physical memory. The technique includes providing data identifying memory pages and their access characteristics to the virtualization software which then derives the memory access characteristics from the specified data. Optionally, the program may also specify a pre-defined function to be performed upon the occurrence of a fault associated with access to an identified memory page. In this manner, programs operating both internal and external to the virtualization software can protect his memory pages, without intermediation by the operating system software. | 04-18-2013 |
20130097360 | MAINTAINING PROCESSOR RESOURCES DURING ARCHITECTURAL EVENTS - In one embodiment of the present invention, a method includes switching between a first address space and a second address space, determining if the second address space exists in a list of address spaces; and maintaining entries of the first address space in a translation buffer after the switching. In such manner, overhead associated with such a context switch may be reduced. | 04-18-2013 |
20130103882 | METHOD AND SYSTEM FOR PROVIDING HARDWARE SUPPORT FOR MEMORY PROTECTION AND VIRTUAL MEMORY ADDRESS TRANSLATION FOR A VIRTUAL MACHINE - A method for providing hardware support for memory protection and virtual memory address translation for a virtual machine. The method includes executing a host machine application within a host machine context and executing a virtual machine application within a virtual machine context. A plurality of TLB (translation look aside buffer) entries for the virtual machine context and the host machine context are stored within a TLB. Memory protection bits for the plurality of TLB entries are logically combined to enforce memory protection on the virtual machine application. | 04-25-2013 |
20130117494 | OPTIMIZING AVAILABLE COMPUTING RESOURCES WITHIN A VIRTUAL ENVIRONMENT - Methods and systems for the optimization of available computing resources within a virtual environment are disclosed. An exemplary method comprises determining the sizes of the computing resources available to the virtual machine and determining optimal data structures for the virtual machine based on the sizes of the computing resources. The optimal data structures may include an indexing data structure and a historic data. The method may further comprise allocating a Random Access Memory (RAM) and disk storage to the optimal data structures and configuring the optimal data structures within the RAM and the disk storage. The optimization of data structures involves balancing requirements of the indexing data structure and the historic data. | 05-09-2013 |
20130132637 | Kernel Memory Locking For Systems that Allow Over-Commitment Memory - Provided are techniques for allocating logical memory corresponding to a logical partition in a computing system; generating a S/W PFT data structure corresponding to a first page of the logical memory, wherein the S/W PFT data structure comprises a field indicating that the corresponding first page of logical memory is a klock page; transmitting a request for a page of physical memory and the corresponding S/W PFT data structure to a hypervisor; allocating physical memory corresponding to the request; and, in response to a pageout request, paging out available logical memory corresponding to the logical partition that does not indicate that the corresponding page is a klock page prior to paging out the first page. | 05-23-2013 |
20130138863 | MECHANISM FOR ON-DEMAND HYPERVISOR MEMORY MAPPING - A mechanism for on-demand hypervisor memory mapping is disclosed. A method of the invention includes trapping an access instruction to a memory location from a virtual machine (VM) managed by a hypervisor of a host machine, determining whether a number of accesses to the memory location by the VM exceeds a threshold, if the number of accesses to the memory location by the VM does not exceed the threshold, then emulating the access instruction to the memory location on behalf of the VM, and if the number of accesses to the memory location by the VM exceeds the threshold, then allocating guest physical memory for the VM associated with the memory location. | 05-30-2013 |
20130138864 | SYSTEM AND METHOD TO REDUCE TRACE FAULTS IN SOFTWARE MMU VIRTUALIZATION - A system for identifying an exiting process and removing traces and shadow page table pages corresponding to the process' page table pages. An accessed minimum virtual address is maintained corresponding to an address space. In one embodiment, whenever a page table entry corresponding to the accessed minimum virtual address changes from present to not present, the process is determined to be exiting and removal of corresponding trace and shadow page table pages is begun. In a second embodiment, consecutive present to not-present PTE transitions are tracked for guest page tables on a per address space basis. When at least two guest page tables each has at least four consecutive present to not-present PTE transitions, a next present to not-present PTE transition event in the address space leads to the corresponding guest page table trace being dropped and the shadow page table page being removed. | 05-30-2013 |
20130145073 | MEMORY DEFRAGMENTATION IN A HOSTED HYPERVISOR - Machine memory fragmentation in a computer system having a host operating system and virtual machine running on a hypervisor hosted by the host operating system is reduced by having the hypervisor identify and release those machine memory pages that are more likely than others to reduce the fragmented state of the host machine memory. | 06-06-2013 |
20130159596 | TECHNIQUES FOR MEMORY DE-DUPLICATION IN A VIRTUAL SYSTEM - Techniques for memory de-duplication in a virtual system are described. An apparatus may comprise a first processor circuit coupled to a second processor circuit. A memory unit may be coupled to the first processor circuit and the second processor circuit, the memory unit to store private memory pages and shared memory pages for multiple virtual machines. A memory management application may be operative on the first processor circuit and the second processor circuit in a shared manner to perform memory de-duplication operations on the private memory pages stored in the memory unit to form shared memory pages. The memory management application may perform sequential memory de-duplication operations on the first processor circuit, and parallel memory de-duplication operations on the second processor circuit. Other embodiments are described and claimed. | 06-20-2013 |
20130185474 | TECHNIQUES USED BY A VIRTUAL MACHINE IN COMMUNICATION WITH AN EXTERNAL MACHINE AND RELATED VIRTUAL MACHINE SYSTEM - A method used by a virtual machine in communication with an external machine includes providing a single sharing page that is shared between a plurality of virtual machines and a particular virtual machine, wherein the particular virtual machine and the plurality of virtual machines run on a same physical machine; writing into the single sharing page a data packet to be sent by the virtual machine to the external machine; scheduling a page swap between the single sharing page and a blank memory page of the particular virtual machine; and sending, to the external machine, the data packet in the memory page of the particular virtual machine subsequent to the page swap. | 07-18-2013 |
20130191577 | INCREASING VIRTUAL-MEMORY EFFICIENCIES - Embodiments of techniques and systems for increasing efficiencies in computing systems using virtual memory are described. In embodiments, instructions which are located in two memory pages in a virtual memory system, such that one of the pages does not permit execution of the instructions located therein, are identified and then executed under temporary permissions that permit execution of the identified instructions. In various embodiments, the temporary permissions may come from modified virtual memory page tables, temporary virtual memory page tables which allow for execution, and/or emulators which have root access. In embodiments, per-core virtual memory page tables may be provided to allow two cores of a computer processor to operate in accordance with different memory access permissions. in embodiments, a physical page permission table may be utilized to provide for maintenance and tracking of per-physical-page memory access permissions. Other embodiments may be described and claimed. | 07-25-2013 |
20130205062 | SYSTEM AND METHOD TO PRIORITIZE LARGE MEMORY PAGE ALLOCATION IN VIRTUALIZED SYSTEMS - The prioritization of large memory page mapping is a function of the access bits in the L1 page table. In a first phase of operation, the number of set access bits in each of the L1 page tables is counted periodically and a current count value is calculated therefrom. During the first phase, no pages are mapped large even if identified as such. After the first phase, the current count value is used to prioritize among potential large memory pages to determine which pages to map large. The system continues to calculate the current count value even after the first phase ends. When using hardware assist, the access bits in the nested page tables are used and when using software MMU, the access bits in the shadow page tables are used for large page prioritization. | 08-08-2013 |
20130212313 | INVALIDATING TRANSLATION LOOKASIDE BUFFER ENTRIES IN A VIRTUAL MACHINE SYSTEM - One embodiment of the present invention is a technique to invalidate entries in a translation lookaside buffer (TLB). A TLB in a processor has a plurality of TLB entries. Each TLB entry is associated with a virtual machine extension (VMX) tag word indicating if the associated TLB entry is invalidated according to a processor mode when an invalidation operation is performed. The processor mode is one of execution in a virtual machine (VM) and execution not in a virtual machine. The invalidation operation belongs to a non-empty set of invalidation operations composed of a union of (1) a possibly empty set of operations that invalidate a variable number of TLB entries, (2) a possibly empty set of operations that invalidate exactly one TLB entry, (3) a possibly empty set of operations that invalidate the plurality of TLB entries, (4) a possibly empty set of operations that enable and disable use of virtual memory, and (5) a possibly empty set of operations that configure physical address size, page size or other virtual memory system behavior in a manner that changes the manner in which a physical machine interprets the TLB entries. | 08-15-2013 |
20130212314 | MAINTAINING PROCESSOR RESOURCES DURING ARCHITECTURAL EVENTS - In one embodiment of the present invention, a method includes switching between a first address space and a second address space, determining if the second address space exists in a list of address spaces; and maintaining entries of the first address space in a translation buffer after the switching. In such manner, overhead associated with such a context switch may be reduced. | 08-15-2013 |
20130246685 | SYSTEM AND METHOD FOR PASSIVE THREAT DETECTION USING VIRTUAL MEMORY INSPECTION - A method in one example implementation includes synchronizing a first memory page set with a second memory page set of a virtual guest machine, inspecting the first memory page set off-line, and detecting a threat in the first memory page set. The method further includes taking an action based on the threat. In more specific embodiments, the method includes updating the first memory page set with a subset of the second memory page set at an expiration of a synchronization interval, where the subset of the second memory page set was modified during the synchronization interval. In other more specific embodiments, the second memory page set of the virtual guest machine represents non-persistent memory of the virtual guest machine. In yet other specific embodiments, the action includes at least one of shutting down the virtual guest machine and alerting an administrator. | 09-19-2013 |
20130290595 | DYNAMIC DATABASE MEMORY MANAGEMENT ACCORDING TO SWAP RATES - Memory of a database management system (DBMS) that is running in a virtual or physical machine is managed using techniques that that reduce the effect of memory swaps on the performance of the physical or virtual machine. One such technique includes the steps of determining a swap rate while the database application is in an executing state, and decreasing the size of memory space available to the database application if the swap rate is above a threshold. | 10-31-2013 |
20130290596 | HYBRID IN-HEAP OUT-OF-HEAP BALLOONING FOR JAVA VIRTUAL MACHINES - A mechanism is provided for managing memory of a runtime environment executing on a virtual machine. A balloon agent that is part of a runtime environment is configured to coordinate inflations of a memory balloon within a heap of” the runtime environment and an out-of-heap overflow balloon, particularly in situations where a hypervisor needs to reclaim more memory from the runtime environment than the runtime environment is able to give up. The balloon agent may slowly free out-of-heap balloon memory, which may cause an increase of a target size for the balloon agent, which in turn inflates the memory balloon inside the heap of the runtime environment. | 10-31-2013 |
20130297849 | METHODS AND APPARATUSES FOR MONITORING ACTIVITIES OF VIRTUAL MACHINES - Embodiments of a method and apparatus for monitoring activity on a virtual machine are generally described herein. The activity may be monitored by a first hypervisor and the virtual machine may be controlled by a second hypervisor. In some embodiments, the method includes setting a breakpoint in a kernel function of the virtual machine. The method may further include generating a page fault, responsive to the virtual machine halting execution at the breakpoint, to cause the second hypervisor to page in contents of a memory location accessed by the kernel function. The method may further include inspecting the contents of the memory location to detect activity in the virtual machine. | 11-07-2013 |
20130326109 | DYNAMIC OPTIMIZATION OF OPERATING SYSTEM AND VIRTUAL MACHINE MONITOR MEMORY MANAGEMENT - A method and system for dynamically managing memory in a computing environment using a control monitor. The control monitor (e.g., a virtual machine monitor or operating system kernel) includes a nomination module configured to collect memory statistics associated with at least one memory node. Based on the memory statistics, the control monitor detects one or more first pages accessed from a remote memory node at or above an access threshold. The nomination module nominates, via a communication to at least one of a scheduler module and a memory manager of the control monitor, the one or more first pages for migration to the remote memory node. | 12-05-2013 |
20130326110 | HYPERVISOR-DRIVEN PROTECTION OF DATA FROM VIRTUAL MACHINE CLONES - A system and method for protecting secure data from virtual machine clones are disclosed. In accordance with one embodiment, a hypervisor transmits a message to a guest operating system hosted by a first virtual machine, where the message identifies a memory location for a secure datum. After the transmission of the message, when the hypervisor receives a direct-copy command to clone the first virtual machine, the hypervisor creates a second virtual machine via direct copy, where the second virtual machine is not provided access to the secure memory location during its creation. | 12-05-2013 |
20130339568 | PROACTIVE MEMORY RECLAMATION FOR JAVA VIRTUAL MACHINES - A mechanism is provided for managing memory of a virtual machine having a runtime environment executing therein. The runtime environment includes a balloon agent that allocates memory objects within heap memory of the runtime environment and hints to a hypervisor that machine memory pages backing the memory objects may be candidates for page sharing. At launch of the runtime environment, the balloon agent allocates memory objects in response to detecting a state of high machine memory consumption by the virtual machine. Further, while the runtime environment is running, the balloon agent allocates memory objects within heap memory when the runtime environment becomes idle. | 12-19-2013 |
20140040529 | TRANSLATION TABLE CONTROL - Memory address translation circuitry 14 performs a top down page table walk operation to translate a virtual memory address VA to a physical memory address PA using translation data stored in a hierarchy of translation tables | 02-06-2014 |
20140068137 | Virtual Input/Output Memory Management Unit Within a Guest Virtual Machine - A virtual input/output memory management unit (IOMMU) is configured to provide a firewall around memory requests associated with an input/output (I/O) device. The virtual IOMMU uses data structures including a guest page table, a host page table and a general control register (i.e., GCR3) table. The guest page table is implemented in hardware to support the speed requirements of the virtual IOMMU. The GCR3 table is indexed using a virtual DeviceID parameter stored in a device table. | 03-06-2014 |
20140068138 | Embedded Processor with Virtualized Security Controls Using Guest Identifications, a Common Kernel Address Space and Operational Permissions - A method includes assigning unique guest identifications to different guests, specifying an address region and permissions for the different guests and controlling a guest jump from one physical memory segment to a second physical memory segment through operational permissions defined in a root memory management unit that supports guest isolation and protection. | 03-06-2014 |
20140082253 | EXECUTION USING MULTIPLE PAGE TABLES - Embodiments of techniques and systems for execution of code with multiple page tables are described. In embodiments, a heterogenous system utilizing multiple processors may use multiple page tables to selectively execute appropriate ones of different versions of executable code. The system may be configured to support use of function pointers to virtual memory addresses. In embodiments, a virtual memory address may be mapped, such as during a code fetch. In embodiments, when a processor seeks to perform a code fetch using the function pointer, a page table associated with the processor may be used to translate the virtual memory address to a physical memory address where code executable by the processor may be found. Usage of multiple page tables may allow the system to support function pointers while utilizing only one virtual memory address for each function that is pointed to. Other embodiments may be described and claimed. | 03-20-2014 |
20140089557 | IMAGE STORAGE OPTIMIZATION IN VIRTUAL ENVIRONMENTS - A method for monitoring and managing virtual machine image storage in a virtualized computing environment is proposed, where the method for managing storage utilized by a virtual machine can include identifying one or more unused disk blocks in a guest virtual machine image, and removing the unused disk blocks from the guest virtual machine image. | 03-27-2014 |
20140101359 | ASYMMETRIC CO-EXISTENT ADDRESS TRANSLATION STRUCTURE FORMATS - An address translation capability is provided in which translation structures of different types are used to translate memory addresses from one format to another format. Multiple translation structure formats (e.g., multiple page table formats, such as hash page tables and hierarchical page tables) are concurrently supported in a system configuration. This facilitates provision of guest access in virtualized operating systems, and/or the mixing of translation formats to better match the data access patterns being translated. | 04-10-2014 |
20140101360 | ADJUNCT COMPONENT TO PROVIDE FULL VIRTUALIZATION USING PARAVIRTUALIZED HYPERVISORS - A system configuration is provided with a paravirtualizing hypervisor that supports different types of guests, including those that use a single level of translation and those that use a nested level of translation. When an address translation fault occurs during a nested level of translation, an indication of the fault is received by an adjunct component. The adjunct component addresses the address translation fault, at least in part, on behalf of the guest. | 04-10-2014 |
20140101361 | SYSTEM SUPPORTING MULTIPLE PARTITIONS WITH DIFFERING TRANSLATION FORMATS - A system configuration is provided with multiple partitions that supports different types of address translation structure formats. The configuration may include partitions that use a single level of translation and those that use a nested level of translation. Further, differing types of translation structures may be used. The different partitions are supported by a single hypervisor. | 04-10-2014 |
20140101362 | SUPPORTING MULTIPLE TYPES OF GUESTS BY A HYPERVISOR - A system configuration is provided that includes multiple partitions that have differing translation mechanisms associated therewith. For instance, one partition has associated therewith a single level translation mechanism for translating guest virtual addresses to host physical addresses, and another partition has a nested level translation mechanism for translating guest virtual addresses to host physical addresses. The different translation mechanisms and partitions are supported by a single hypervisor. Although the hypervisor is a paravirtualized hypervisor, it provides full virtualization for those partitions using nested level translations. | 04-10-2014 |
20140101363 | SELECTABLE ADDRESS TRANSLATION MECHANISMS WITHIN A PARTITION - An address translation capability is provided in which translation structures of different types are used to translate memory addresses from one format to another format. Multiple translation structure formats (e.g., multiple page table formats, such as hash page tables and hierarchical page tables) are concurrently supported in a system configuration. For a system configuration that includes partitions, the translation mechanism to be used for a partition or a portion thereof is selectable and may be different for different partitions or even portions within a partition. | 04-10-2014 |
20140101364 | SELECTABLE ADDRESS TRANSLATION MECHANISMS WITHIN A PARTITION - An address translation capability is provided in which translation structures of different types are used to translate memory addresses from one format to another format. Multiple translation structure formats (e.g., multiple page table formats, such as hash page tables and hierarchical page tables) are concurrently supported in a system configuration. For a system configuration that includes partitions, the translation mechanism to be used for a partition or a portion thereof is selectable and may be different for different partitions or even portions within a partition. | 04-10-2014 |
20140101365 | SUPPORTING MULTIPLE TYPES OF GUESTS BY A HYPERVISOR - A system configuration is provided that includes multiple partitions that have differing translation mechanisms associated therewith. For instance, one partition has associated therewith a single level translation mechanism for translating guest virtual addresses to host physical addresses, and another partition has a nested level translation mechanism for translating guest virtual addresses to host physical addresses. The different translation mechanisms and partitions are supported by a single hypervisor. Although the hypervisor is a paravirtualized hypervisor, it provides full virtualization for those partitions using nested level translations. | 04-10-2014 |
20140108700 | METHOD AND COMPUTER SYSTEM FOR MEMORY MANAGEMENT ON VIRTUAL MACHINE - A method and a computer system for memory management on a virtual machine system are provided. The memory management method includes the following steps. A least recently used (LRU) list is maintained by at least one processor according to a last access time, wherein the LRU list includes a plurality of memory pages. A first portion of the memory pages are stored in a virtual memory, a second portion of the memory pages are stored in a zram driver, and a third portion of the memory pages are stored in at least one swap disk. A space in the zram driver is set by the at least one processor. The space in the zram driver is adjusted by the processor according to a plurality of access probabilities of the memory pages in the zram driver, an overhead of a pseudo page fault, and an overhead of a true page fault. | 04-17-2014 |
20140108701 | MEMORY PROTECTION UNIT IN A VIRTUAL PROCESSING ENVIRONMENT - Some implementations may include a memory management system in a virtualized environment that includes a virtual address, a virtual machine exposed by a virtual machine monitor, a translation lookaside buffer to store virtual address to physical address translations, and a memory protection unit to verify whether a physical address obtained from the virtual address is within boundaries of one or more physical system memory regions assigned to a virtual machine. | 04-17-2014 |
20140122772 | Kernal Memory Locking for Systems that Allow Over-Commitment Memory - Provided are techniques for allocating logical memory corresponding to a logical partition in a computing system; generating, a S/W PET data structure corresponding to a first page of the logical memory, wherein the S/W PFT data structure comprises a field indicating that the corresponding first page of logical memory is a klock page; transmitting a request for a page of physical memory and the corresponding S/W PET data structure to hypervisor, allocating physical memory corresponding to the request; and, in response to a pageout request, paging out available logical memory corresponding to the logical partition that does not indicate that the corresponding page is a klock page prior to paging out the first page. | 05-01-2014 |
20140149633 | DELIVERY OF EVENTS FROM A VIRTUAL MACHINE TO A THREAD EXECUTABLE BY MULTIPLE HOST CPUS USING MEMORY MONITORING INSTRUCTIONS - A method and system for managing a virtual computing system including a hypervisor managing a virtual machine (VM) configured to communicate with a thread executable by multiple host central processing units (CPUs), using memory monitoring instructions. The hypervisor provides the virtual machine with a first notification identifying a first designated memory range writeable by a virtual central processing unit (VCPU) associated with the virtual machine and a first instruction to write to the first designated memory range to communicate with the thread running on a first host CPU. The hypervisor further identifies movement of the thread from the first host CPU to a second host CPU and provides to the virtual machine a second notification identifying a second designated memory range and a second instruction to write to the second designated memory range to communicate with the thread running on the second host CPU. | 05-29-2014 |
20140149634 | DETECTION OF GUEST DISK CACHE - A virtual machine disk page detector running on a computing device detects guest disk cache usage. The detector detects a request from a virtual operating system to read an object into a virtual memory page from a virtual disk, maintains a record of a page identifier and a corresponding virtual disk address in a guest cache data structure, and modifies a protection identifier of the virtual memory page to indicate that the virtual memory page is protected. | 05-29-2014 |
20140149635 | WORKLOAD MIGRATION BETWEEN VIRTUALIZATION SOFTWARES - A virtual machine (VM) migration from a source virtual machine monitor (VMM) to a destination VMM on a computer system. Each of the VMMs includes virtualization software, and one or more VMs are executed in each of the VMMs. The virtualization software allocates hardware resources in a form of virtual resources for the concurrent execution of one or more VMs and the virtualization software. A portion of a memory of the hardware resources includes hardware memory segments. A first portion of the memory segments is assigned to a source logical partition and a second portion is assigned to a destination logical partition. The source VMM operates in the source logical partition and the destination VMM operates in the destination logical partition. The first portion of the memory segments is mapped into a source VMM memory, and the second portion of the memory segments is mapped into a destination VMM memory. | 05-29-2014 |
20140156908 | STALE POINTER DETECTION WITH OVERLAPPING VERSIONED MEMORY - In general, in one aspect, the invention relates to a method for managing virtual memory (VM). The method includes receiving, from an application, a first access request comprising a first VM address identifying a VM location, obtaining a current VM location version value for the VM location, obtaining a first submitted VM location version value from the first VM address, and in response to a determination that the current VM location version value and the first submitted VM location version value match: servicing the first access request using the first VM address. | 06-05-2014 |
20140173169 | CONTROLLING ACCESS TO GROUPS OF MEMORY PAGES IN A VIRTUALIZED ENVIRONMENT - Embodiments of an invention for controlling access to groups of memory pages in a virtualized environment are disclosed. In one embodiment, a processor includes a virtualization unit and a memory management unit. The virtualization unit is to transfer control of the processor to a virtual machine. The memory management unit is to perform, in response to an attempt to execute on the virtual machine an instruction stored on a first page, a page walk through a paging structure to find a second page and to allow access to the second page without exiting the virtual machine based at least in part on a bit being set in a leaf level entry corresponding to the second page in the paging structure and a corresponding bit being set in each entry corresponding to the first page in each level of the paging structure. | 06-19-2014 |
20140181359 | INFORMATION PROCESSING APPARATUS AND METHOD OF COLLECTING MEMORY DUMP - An information processing apparatus running multiple virtual machines includes a correspondence information storage section configured to store correspondence information between a virtual address and a physical address, the correspondence information being used by a second virtual machine when executing a procedure relevant to a first virtual machine; a correspondence information processing section configured to invalidate the correspondence information in response to an occurrence of a panic in the first virtual machine; and a preservation section configured to preserve content of a memory area allocated to the second virtual machine into a storage device. | 06-26-2014 |
20140181360 | Creating A Dynamic Address Translation With Translation Exception Qualifier - An enhanced dynamic address translation facility product is created such that, in one embodiment, a virtual address to be translated and an initial origin address of a translation table of the hierarchy of translation tables are obtained. Dynamic address translation of the virtual address proceeds. In response to a translation interruption having occurred during dynamic address translation, bits are stored in a translation exception qualifier (TXQ) field to indicate that the exception was either a host DAT exception having occurred while running a host program or a host DAT exception having occurred while running a guest program. The TXQ is further capable of indicating that the exception was associated with a host virtual address derived from a guest page frame real address or a guest segment frame absolute address. The TXQ is further capable of indicating that a larger or smaller host frame size is preferred to back a guest frame. | 06-26-2014 |
20140189194 | LOW OVERHEAD PAGED MEMORY RUNTIME PROTECTION - Methods and apparatus relating to low overhead paged memory runtime protection are described. In an embodiment, permission information for guest physical mapping are received prior to utilization of paged memory by an Operating System (OS) based on the guest physical mapping. The permission information is provided through an Extended Page Table (EPT). Other embodiments are also described. | 07-03-2014 |
20140189195 | PROVIDING MEMORY CONDITION INFORMATION TO GUEST APPLICATIONS - Virtualization software can improve the effectiveness of a guest application running inside a virtual machine (VM) by providing information to the guest application indicative of a memory condition of the VM. The memory condition is indicative of an availability of memory resources to the guest application. When guest physical memory can be reserved by a balloon application running in the (VM), providing memory condition data indicative of the memory condition provides more accurate information regarding the availability of memory resources to the guest application than could be provided by the guest operating system of the VM. | 07-03-2014 |
20140201421 | INDEXED PAGE ADDRESS TRANSLATION TO REDUCE MEMORY FOOTPRINT IN VIRTUALIZED ENVIRONMENTS - Embodiments of systems, apparatuses, and methods for performing guest logical memory address to host physical memory address translation are described. In some embodiments, a system receives the guest logical memory address and determines an index page reference from the guest logical memory address. The system further retrieves a page index corresponding to the virtual machine. In addition, the system retrieves a first part of the host physical memory address from index page using the page index and a second part of the host physical memory address from the guest logical memory address. The system generates the host physical memory address from the first and second parts of the host physical memory address. | 07-17-2014 |
20140237158 | Managing the Translation Look-Aside Buffer (TLB) of an Emulated Machine - A mechanism is provided for managing the translation look-aside buffer (TLB) of an emulated computer, in which an extension to the TLB is provided so as to improve virtual address translation capacity for the emulated central processing unit (CPU). | 08-21-2014 |
20140244891 | Providing Dynamic Topology Information in Virtualized Computing Environments - Systems and methods for providing dynamic topology information to virtual machines hosted by a multi-processor computer system supporting non-uniform memory access (NUMA). An example method may comprise assigning, by a hypervisor executing on a computer system, unique identifiers to a plurality of memory blocks residing on a plurality of physical nodes; determining that a memory block has been moved from a first physical node to a second physical node; determining memory access latency values to the second physical node by a plurality of virtual processors of the computer system; and updating, using a unique identifier of the memory block, a data structure storing memory access latency information, with the memory access latency values for the memory block. | 08-28-2014 |
20140258586 | METHODS AND SYSTEMS FOR REDUCING THE AMOUNT OF TIME AND COMPUTING RESOURCES THAT ARE REQUIRED TO PERFORM A HARDWARE TABLE WALK (HWTW) - A computer system and a method are provided that reduce the amount of time and computing resources that are required to perform a hardware table walk (HWTW) in the event that a translation lookaside buffer (TLB) miss occurs. If a TLB miss occurs when performing a stage 2 (S2) HWTW to find the PA at which a stage 1 (S1) page table is stored, the MMU uses the IPA to predict the corresponding PA, thereby avoiding the need to perform any of the S2 table lookups. This greatly reduces the number of lookups that need to be performed when performing these types of HWTW read transactions, which greatly reduces processing overhead and performance penalties associated with performing these types of transactions. | 09-11-2014 |
20140281117 | Memory Page De-Duplication In A Computer System That Includes A Plurality Of Virtual Machines - Memory page de-duplication in a computer system that includes a plurality of virtual machine partitions managed by a hypervisor, where each virtual machine is assigned a different dedicated memory partition, may include: identifying, by the hypervisor, a plurality of identical memory pages in memory of one or more dedicated memory partitions; assigning, by the hypervisor, one of the identical memory pages as a master page; mapping, for each virtual machine having an identical memory page, each of the identical memory pages to the master page; and directing, by the hypervisor, reads of the memory page to the master page. | 09-18-2014 |
20140281118 | Memory Page De-Duplication In A Computer System That Includes A Plurality Of Virtual Machines - Memory page de-duplication in a computer system that includes a plurality of virtual machine partitions managed by a hypervisor, where each virtual machine is assigned a different dedicated memory partition, may include: identifying, by the hypervisor, a plurality of identical memory pages in memory of one or more dedicated memory partitions; assigning, by the hypervisor, one of the identical memory pages as a master page; mapping, for each virtual machine having an identical memory page, each of the identical memory pages to the master page; and directing, by the hypervisor, reads of the memory page to the master page. | 09-18-2014 |
20140379955 | MEMORY MIRRORING AND REDUNDANCY GENERATION FOR HIGH AVAILABILITY - A virtualization based system comprises a host and a plurality of virtual machines that may each comprises a guest memory. A virtual machine monitor has access to underlying platform hardware in the system and may control physical resources in the platform. The platform hardware comprises a processor and a memory coupled to the processor. Further, the VMM may manage guest software including guest operating systems running on the virtual machines. A binary translation logic may replace guest memory writing instructions corresponding to a hot spot in guest application with translated codes to generate a mirrored content for the guest memory. The binary translation logic may combine one or more of the guest memory writing instructions in a region and keep the region atomic. The processor may execute the translated codes in an atomic region together to write a content in the guest memory and a mirrored content in a mirroring memory. The VMM may allocate a memory region in the host memory for the mirroring memory. The guest memory comprises one or more guest memory pages and the mirroring memory may comprise one or more mirroring memory pages. The VMM may add an offset to a virtual address of a guest memory page to obtain a virtual address of a mirroring memory page. The VMM may manage or emulate a guest page table comprising a mapping between virtual address to guest physical addresses for the guest memory. The VMM may synchronize a shadow page table with the mapping in the guest page table. The shadow page table comprises a mapping of virtual addresses to host physical addresses for the guest memory and a mapping of virtual addresses to host physical addresses for the mirroring page. Upon a memory failure in the guest memory page, the VMM may restore the content of the corrupted guest memory page from the mirroring memory page. | 12-25-2014 |
20140379956 | MANAGING A TRANSLATION LOOKASIDE BUFFER - Method and apparatus for managing a translation lookaside buffer (TLB) at hardware in a virtualization enabled system. According to embodiments of the present invention, a series of operations caused by TLB miss would not need intervening from the hypervisor. On the contrary, when a TLB miss occurs, the hardware directly issues an interrupt to a virtual machine. In this way, the TLB can be efficiently managed by means of a hardware-level auxiliary translation table. Therefore, system overheads can be greatly reduced and system performance can be improved. Methods and apparatuses associated with hardware, hypervisor, and virtual machine in a virtualization enabled system are disclosed, respectively. | 12-25-2014 |
20150032935 | VIRTUALIZATION SYSTEM USING HARDWARE ASSISTANCE FOR PAGE TABLE COHERENCE - One embodiment of the present invention includes a method for maintaining a shadow page table in at least partial correspondence with guest page mappings of a guest computation. The method marking with a traced write indication at least those entries of the shadow page table that map physical memory locations which themselves encode the guest page mappings, the marking identifying, for a hardware facility, a subset of memory access targets for which updates are to be recorded in a guest write buffer accessible to the virtualization system. Responsive to a coherency-inducing operation of the guest computation, the method reads from the guest write buffer and introduces corresponding updates into the shadow page table. | 01-29-2015 |
20150052287 | NUMA Scheduling Using Inter-vCPU Memory Access Estimation - In a system having non-uniform memory access architecture, with a plurality of nodes, memory access by entities such as virtual CPUs is estimated by invalidating a selected sub-set of memory units, and then detecting and compiling access statistics, for example by counting the page faults that arise when any virtual CPU accesses an invalidated memory unit. The entities, or pairs of entities, may then be migrated or otherwise co-located on the node for which they have greatest memory locality. | 02-19-2015 |
20150058519 | DETECTION OF HOT PAGES FOR PARTITION HIBERNATION - Embodiments described herein identify hot pages associated with a virtual machine that is selected for hibernation or for migration from one computing system to another. For example, before hibernating a virtual machine, a hypervisor monitors the entries in a page table (i.e., a virtual translation table) to see what data pages have corresponding entries in the page table. If a data page has a corresponding entry in the page table, the hypervisor may designate that page as hot. In one embodiment, the hypervisor may update a page map that lists the data pages associated with the virtual machine and whether those data pages are designated as hot. The page map may then be stored during the hibernation process. Before the hibernated virtual machine is resumed, the hypervisor may use the page map to load the hot pages into memory and begin executing the virtual machine. | 02-26-2015 |
20150058520 | DETECTION OF HOT PAGES FOR PARTITION MIGRATION - Embodiments described herein identify hot pages associated with a virtual machine that is selected for hibernation or for migration from one computing system to another. For example, before migrating a virtual machine, a hypervisor monitors the entries in a page table (e.g., a virtual translation table) to see what data pages have corresponding entries in the page table. If a data page has a corresponding entry in the page table, the hypervisor may designate that page as hot. A source computing system may transmit the hot data pages to a target computing system which loads the pages into memory. After loading the hot pages into memory, the source computing system may cease executing the virtual machine while the target computing system begins to execute the virtual machine. The rest of the data pages associated with the virtual machine may be transmitted to the target computing system subsequently. | 02-26-2015 |
20150058521 | DETECTION OF HOT PAGES FOR PARTITION HIBERNATION - Embodiments described herein identify hot pages associated with a virtual machine that is selected for hibernation or for migration from one computing system to another. For example, before hibernating a virtual machine, a hypervisor monitors the entries in a page table (i.e., a virtual translation table) to see what data pages have corresponding entries in the page table. If a data page has a corresponding entry in the page table, the hypervisor may designate that page as hot. In one embodiment, the hypervisor may update a page map that lists the data pages associated with the virtual machine and whether those data pages are designated as hot. The page map may then be stored during the hibernation process. Before the hibernated virtual machine is resumed, the hypervisor may use the page map to load the hot pages into memory and begin executing the virtual machine. | 02-26-2015 |
20150058522 | DETECTION OF HOT PAGES FOR PARTITION MIGRATION - Embodiments described herein identify hot pages associated with a virtual machine that is selected for hibernation or for migration from one computing system to another. For example, before migrating a virtual machine, a hypervisor monitors the entries in a page table (e.g., a virtual translation table) to see what data pages have corresponding entries in the page table. If a data page has a corresponding entry in the page table, the hypervisor may designate that page as hot. A source computing system may transmit the hot data pages to a target computing system which loads the pages into memory. After loading the hot pages into memory, the source computing system may cease executing the virtual machine while the target computing system begins to execute the virtual machine. The rest of the data pages associated with the virtual machine may be transmitted to the target computing system subsequently. | 02-26-2015 |
20150058523 | SYSTEM SOFTWARE INTERFACES FOR SPACE-OPTIMIZED BLOCK DEVICES - Interfaces to storage devices that employ storage space optimization technologies, such as thin provisioning, are configured to enable the benefits gained from such technologies to be sustained. Such an interface may be provided in a hypervisor of a virtualized computer system to enable the hypervisor to discover features of a logical unit number (LUN), such as whether or not the LUN is thinly provisioned, and also in a virtual machine (VM) of the virtualized computer system to enable the VM to discover features of a virtual disk, such as whether or not the virtual disk is thinly provisioned. The discovery of these features enables the hypervisor or the VM to instruct the underlying storage device to carry out certain operations such as an operation to deallocate blocks previously allocated to a logical block device, so that the storage device can continue to benefit from storage space optimization technologies implemented therein. | 02-26-2015 |
20150089116 | Merged TLB Structure For Multiple Sequential Address Translations - A computer system that supports virtualization may maintain multiple address spaces. Each guest operating system employs guest virtual addresses (GVAs), which are translated to guest physical addresses (GPAs). A hypervisor, which manages one or more guest operating systems, translates GPAs to root physical addresses (RPAs). A merged translation lookaside buffer (MTLB) caches translations between the multiple addressing domains, enabling faster address translation and memory access. The MTLB can be logically addressable as multiple different caches, and can be reconfigured to allot different spaces to each logical cache. | 03-26-2015 |
20150095548 | HANDLING MEMORY-MAPPED INPUT-OUTPUT (MMIO) BASED INSTRUCTIONS USING FAST ACCESS ADDRESSES - When a guest of a virtual machine attempts to accesses an address that causes an exit from the guest to the hypervisor of a host, the hypervisor receives an indication of an exit by a guest to the hypervisor. The received address is associated with a memory-mapped input-output (MMIO) instruction. The hypervisor determines, based on the received indication, that the exit is associated with the memory-mapped input-output (MMIO) instruction. The hypervisor identifies the address that caused the exit as a fast access address. The hypervisor identifies one or more memory locations associated with the fast access address, where the one or more memory locations store information associated with the MMIO instruction. The hypervisor identifies the MMIO instruction based on the stored information. The hypervisor executes the MMIO instruction on behalf of the guest. | 04-02-2015 |
20150100717 | VIRTUALIZING PHYSICAL MEMORY IN A VIRTUAL MACHINE SYSTEM - A processor including a virtualization system of the processor with a memory virtualization support system to map a reference to guest-physical memory made by guest software executable on a virtual machine which in turn is executable on a host machine in which the processor is operable to a reference to host-physical memory of the host machine. | 04-09-2015 |
20150100718 | PARALLEL MAPPING OF CLIENT PARTITION MEMORY TO MULTIPLE PHYSICAL ADAPTERS - Techniques are disclosed for performing input/output (I/O) requests to two or more physical adapters in parallel. One method for performing an input/output (I/O) request includes mapping an address for at least a first page associated with a virtual I/O request to an entry in a virtual TCE table and identifying a plurality of physical adapters required to service the virtual I/O request. For each of the identified physical adapters, the entry in the virtual TCE table is mapped to an entry in a physical TCE table corresponding to the physical adapter. This method may also include, in parallel, issuing physical I/O requests to the physical adapters. | 04-09-2015 |
20150113202 | COOPERATIVE MEMORY RESOURCE MANAGEMENT VIA APPLICATION-LEVEL BALLOON - Methods, systems, and computer programs for managing memory in a host where virtual machines (VMs) execute are presented. In one example, a method includes an operation for determining which amount of heap memory has been reserved in a Java virtual machine (JVM) that is in excess of the heap memory needed by the JVM. If there is excess heap memory, a Java balloon agent reserves a Java object in the heap memory. Typically, the Java object will be the size of one or more memory pages in the host. Further, the Java balloon agent loads the Java object with a certain value, for example, by zeroing out the page of memory. When a virtual machine monitor (VMM) in the host detects that a machine physical memory page associated with the Java object has the first value, then the VMM frees the machine physical memory page to make the memory available to other VMs or to other processes executing in the host. | 04-23-2015 |
20150120985 | MECHANISMS FOR ELIMINATING A RACE CONDITION BETWEEN A HYPERVISOR-PERFORMED EMULATION PROCESS REQUIRING A TRANSLATION OPERATION AND A CONCURRENT TRANSLATION TABLE ENTRY INVALIDATION - Disclosed are computers and methods employing a mechanism for eliminating a race condition between a hypervisor-performed emulation process and a concurrent translation table entry invalidation. Specifically, on a host machine, a hypervisor controls any guest operating systems. In doing so, the hypervisor emulates an instruction by performing a translation operation to acquire a physical address from a virtual address and, if applicable, further from an effective address using translation table(s) (e.g., page tables and, if applicable, segment tables); accesses the physical address; and completes the instruction. During emulation, flagged address table(s) are used to eliminate the race condition. For example, upon receiving an invalidate translation instruction associated with a virtual address, a determination is made as to whether or not the virtual address appears in a flagged virtual address table and, if so, additional action is taken to prevent an error in the translation. | 04-30-2015 |
20150149687 | ORDERED MEMORY PAGES TRANSMISSION IN VIRTUAL MACHINE LIVE MIGRATION - Systems and methods for virtual machine live migration. An example method may comprise: identifying, by a first computer system executing a virtual machine undergoing live migration to a second computer system, a plurality of stable memory pages comprised by an execution state of the virtual machine, wherein the plurality of stable memory pages comprises memory pages that have not been modified within a defined period of time; transmitting the plurality of stable memory pages to the second computer system; determining that an amount of memory comprised by a plurality of unstable memory pages is below a threshold value, wherein the plurality of unstable memory pages comprises memory pages that have been modified within the defined period of time; and transmitting the plurality of unstable memory pages to the second computer system. | 05-28-2015 |
20150301946 | Page Compressibility Checker - Techniques for checking the compressibility of a memory page that is allocated to a virtual machine (VM) running on a host system are provided. In one embodiment, the host system can determine a compression ratio for the memory page by compressing the memory page using a first compression algorithm. The host system can then compare the compression ratio to a threshold. If the compression ratio does not exceed the threshold, the host system can predict that the memory page is compressible by a second compression algorithm that is distinct from the first compression algorithm. On average, the second compression algorithm can be slower, but achieve a lower compression ratio, than the first compression algorithm. | 10-22-2015 |
20150301947 | CONTROLLING ACCESS TO GROUPS OF MEMORY PAGES IN A VIRTUALIZED ENVIRONMENT - Embodiments of an invention for controlling access to groups of memory pages in a virtualized environment are disclosed. In one embodiment, a processor includes a virtualization unit and a memory management unit. The virtualization unit is to transfer control of the processor to a virtual machine. The memory management unit is to perform, in response to an attempt to execute on the virtual machine an instruction stored on a first page, a page walk through a paging structure to find a second page and to allow access to the second page without exiting the virtual machine based at least in part on a bit being set in a leaf level entry corresponding to the second page in the paging structure and a corresponding bit being set in each entry corresponding to the first page in each level of the paging structure. | 10-22-2015 |
20150324285 | VIRTUALIZED PHYSICAL ADDRESSES FOR RECONFIGURABLE MEMORY SYSTEMS - Systems and methods define a memory system using an abstracted memory protocol that enables virtual to physical mapping of memory address requests at an abstracted memory module. A memory abstraction unit abstracts timing and naming of memory requests from one or more clients to timing and naming at one or more memory devices. The memory abstraction unit includes abstracted memory protocol logic for interpreting the memory requests from the clients. The memory abstraction unit also includes mapping logic for translating the naming defined by a memory access request by a requesting client to a virtual physical address at a selected protection zone in at least one of the memory devices and memory control logic for accessing the memory devices at the virtual physical address. | 11-12-2015 |
20150324297 | EXPORTING GUEST SPATIAL LOCALITY TO HYPERVISORS - When a request is made to retrieve a guest physical page from memory and a page fault occurs, a guest virtual page address that corresponds to the guest physical page is identified along with addresses for guest virtual pages that are near the guest virtual page in the virtual address space. Each identified guest virtual page address is translated into a corresponding guest physical page address and the corresponding guest physical pages are loaded into memory. | 11-12-2015 |
20150347018 | CUSTOMIZABLE VIRTUAL DISK ALLOCATION FOR BIG DATA WORKLOAD - An example method to allocate a virtual disk for a virtual machine in a virtualized computing system includes allocating a plurality of virtual machine disk file (VMDK) candidates in a virtual machine file system (VMFS) volume, selecting a subset of VMDK candidates from the plurality of VMDK candidates for having performance scores indicative of higher I/O throughputs associated with the one or more physical hard disks than rest of the plurality of VMDK candidates, and configuring the virtual disk based on the subset of the VMDK candidates. The VMFS volume is supported by one or more physical hard disks in a storage system in the virtualized computing system. | 12-03-2015 |
20150347168 | Enabling Virtualization Of A Processor Resource - In one embodiment, a processor includes an access logic to determine whether an access request from a virtual machine is to a device access page associated with a device of the processor and if so, to re-map the access request to a virtual device page in a system memory associated with the VM, based at least in part on information stored in a control register of the processor. Other embodiments are described and claimed. | 12-03-2015 |
20150356003 | METHOD FOR SHARING REFERENCE DATA AMONG APPLICATION PROGRAMS EXECUTED BY A PLURALITY OF VIRTUAL MACHINES AND REFERENCE DATA MANAGEMENT APPARATUS AND SYSTEM THEREOF - Apparatus, method and systems for managing reference data, which can prevent duplicated data loading of reference data and eliminate redundancy of I/O operations for loading of the same reference data required by different virtual machines present in the same physical node to reduce use memory and I/O through sharing virtual machine leveled memories, are provided. | 12-10-2015 |
20150378931 | SHARED REFERENCE COUNTERS AMONG A PLURALITY OF VIRTUAL STORAGE DEVICES - A system, method, and computer program product are provided for implementing shared reference counters among a plurality of virtual storage devices. The method includes the steps of allocating a first portion of a real storage device to store data, wherein the first portion is divided into a plurality of blocks of memory and allocating a second portion of the real storage device to store a plurality of reference counters that correspond to the plurality of blocks of memory. The reference counters may be updated by two or more virtual storage devices hosted in one or more nodes to manage the allocation of the blocks of memory in the real storage device. | 12-31-2015 |
20160062703 | FACILITATING PROCESSING WITHIN COMPUTING ENVIRONMENTS SUPPORTING PAGEABLE GUESTS - Processing within a computing environment that supports pageable guests is facilitated. Processing is facilitated in many ways, including, but not limited to, associating guest and host state information with guest blocks of storage; maintaining the state information in control blocks in host memory; enabling the changing of states; and using the state information in management decisions. In one particular example, the guest state includes an indication of usefulness and importance of memory contents to the guest, and the host state reflects the ease of access to memory contents. The host and guest state information is used in managing memory of the host and/or guests. | 03-03-2016 |
20160103769 | PROCESSING DEVICE AND METHOD THEREOF - A processing device comprises inter alia a monolithic memory accumulator unit, which exposes a virtual memory space to an interconnect bus and comprises a conversion table with translation information to translate requests with virtual addresses into requests with physical addresses. The MMA is configured to receive a transaction request; to translate the address of the received request into physical address(es); and to pass on transaction request(s) to storage locations of an integrated peripheral. | 04-14-2016 |
20160110291 | COORDINATION BETWEEN MEMORY-SAVING MECHANISMS IN COMPUTERS THAT RUN VIRTUAL MACHINES - A method includes running in a computer a hypervisor that allocates physical memory pages of the computer to a Virtual Machine (VM). A guest Operating System (OS), a virtual memory and a virtual storage device run in the VM. The guest OS maps the allocated physical memory pages to respective virtual memory pages, retains virtual memory pages that are frequently-accessed by the VM in the virtual memory, and swaps-out virtual memory pages that are rarely-accessed by the VM to the virtual storage. In the hypervisor, one or more of the physical memory pages allocated to the VM are selected, and the corresponding virtual memory pages preventing from being swapped-out by the guest OS, by marking the corresponding virtual memory pages in the guest OS as accessed thus causing the guest OS to regard the corresponding virtual memory pages as frequently-accessed. | 04-21-2016 |
20160124675 | SYSTEM SUPPORTING MULTIPLE PARTITIONS WITH DIFFERING TRANSLATION FORMATS - A system configuration is provided with multiple partitions that supports different types of address translation structure formats. The configuration may include partitions that use a single level of translation and those that use a nested level of translation. Further, differing types of translation structures may be used. The different partitions are supported by a single hypervisor. | 05-05-2016 |
20160124863 | Efficient MAC Address Storage For Virtual Machine Applications - Examples of efficient MAC address storage are described, including methods and an apparatus. A method may involve obtaining a plurality of identifications associated with one or more applications executed on a computing apparatus, with each identification of the plurality of identifications different from one another. The method may also involve storing an identification entry representative of the plurality of identifications associated with the one or more applications. The identification entry may require an amount of memory space for storage less than an amount of memory space required to store the plurality of identifications associated with the one or more applications. The plurality of identifications may be a plurality of MAC addresses. The one or more applications may be one or more virtual machines. | 05-05-2016 |
20160132436 | SYSTEM SUPPORTING MULTIPLE PARTITIONS WITH DIFFERING TRANSLATION FORMATS - A system configuration is provided with multiple partitions that supports different types of address translation structure formats. The configuration may include partitions that use a single level of translation and those that use a nested level of translation. Further, differing types of translation structures may be used. The different partitions are supported by a single hypervisor. | 05-12-2016 |
20160188452 | EFFICIENT AND SECURE DIRECT STORAGE DEVICE SHARING IN VIRTUALIZED ENVIRONMENTS - A method, system and computer program product are disclosed for direct storage device sharing in a virtualized environment. In an embodiment, the method comprises assigning each of a plurality of virtual functions an associated memory area of a physical memory, and executing the virtual functions in a single root-input/output virtualization environment to provide each of a plurality of guests with direct access to the physical memory. In one embodiment, each of the guests is associated with a respective one of the virtual functions; and the assigning each of the plurality of virtual functions an associated memory area includes maintaining a per-virtual function mapping table identifying a respective one mapping function for each of the virtual functions, and each of the mapping functions mapping one of the memory areas of the physical area to an associated virtual memory. | 06-30-2016 |
20160188465 | EFFICIENT AND SECURE DIRECT STORAGE DEVICE SHARING IN VIRTUALIZED ENVIRONMENTS - A method, system and computer program product are disclosed for direct storage device sharing in a virtualized environment. In an embodiment, the method comprises assigning each of a plurality of virtual functions an associated memory area of a physical memory, and executing the virtual functions in a single root-input/output virtualization environment to provide each of a plurality of guests with direct access to the physical memory. In one embodiment, each of the guests is associated with a respective one of the virtual functions; and the assigning each of the plurality of virtual functions an associated memory area includes maintaining a per-virtual function mapping table identifying a respective one mapping function for each of the virtual functions, and each of the mapping functions mapping one of the memory areas of the physical area to an associated virtual memory. | 06-30-2016 |
20160188492 | Memory Protection with Non-Readable Pages - A method includes, in various implementations, regulating a memory region for execute-only access, storing a set of instructions in the memory region, executing an early instruction among the set of instructions, and executing a set of subsequent instructions among the instructions. The early instruction loads a secret value into a volatile register. A correct execution of the subsequent instructions depends on the secret value being loaded into the volatile register. | 06-30-2016 |
20160203088 | POSITION DEPENDENT CODE IN VIRTUAL MACHINE FUNCTIONS | 07-14-2016 |
20160378681 | PAGE COMPRESSION STRATEGY FOR IMPROVED PAGE OUT PROCESS - A page compression strategy classifies uncompressed pages selected for compression. Similarly classified pages are compressed and bound into a single logical page. For logical pages having pages with more than one classification, a weighting factor is determined for the logical page. | 12-29-2016 |
20190146915 | EXECUTION USING MULTIPLE PAGE TABLES | 05-16-2019 |