Patent application number | Description | Published |
20100306381 | MECHANISM FOR MIGRATION OF CLIENT-SIDE VIRTUAL MACHINE SYSTEM RESOURCES - In one embodiment, a mechanism for migration of client-side virtual machine system resources is disclosed. In one embodiment, a method includes receiving notification that a virtual machine (VM) is to be live migrated from a first server to a second server, connecting one or more client resources associated with the VM to the second server during the live migration of the VM while maintaining a simultaneous active VM connection of the one or more client resources to the first server, and disconnecting the active VM connection of the one or more client resources to the first server when the live migration of the VM is complete. | 12-02-2010 |
20110131443 | Mechanism for Automatic Adjustment of Virtual Machine Storage - A mechanism for automatic adjustment of virtual machine (VM) storage is disclosed. A method of embodiments of the invention includes stopping, by a host computing device, a virtual machine (VM) hosted by the host computing device from running upon detecting a write error due to lack of storage on the VM, communicating, by the host computing device, an out-of-storage notification from a hypervisor of the host computing device to a host management agent, and sending, by the host computing device, data associated with the out-of storage notification and the VM to a host controller that manages the host computing device, wherein the host controller causes storage for the VM to be increased. | 06-02-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 |
20110214122 | Mechanism for Optimizing Initial Placement of Virtual Machines to Reduce Memory Consumption Based on Similar Characteristics - A mechanism for optimizing initial placement of virtual machines (VMs) to reduce memory consumption based on similar characteristics is disclosed. A method of embodiments of the invention includes identifying characteristics of a new virtual machine (VM) to be placed by a host controller on one of a plurality of candidate host machines and, for each candidate host machine of the plurality of candidate host machines, communicating with one or more VM agents each associated with a VM of one or more VMs hosted by the candidate host machine to identify characteristics of the one or more VMs. The method further includes identifying the candidate host with the most VMs having similar characteristics to the new VM. | 09-01-2011 |
20110214123 | Mechanism for Optimal Placement of Virtual Machines to Reduce Memory Consumption Based on Shared Images - A mechanism for optimal placement of VMs based on shared images is disclosed. A method of embodiments of the invention includes identifying a virtual machine (VM) image of a new VM to be placed by a host controller on one of a plurality of candidate host machines, for each candidate host machine of the plurality of candidate host machines, identifying a VM image for each VM hosted by the candidate host machine, and determining the candidate host with the most VMs having identical VM images to the new VM. | 09-01-2011 |
20110247000 | Mechanism for Tracking Memory Accesses in a Non-Uniform Memory Access (NUMA) System to Optimize Processor Task Placement - A mechanism for tracking memory accesses in a non-uniform memory access (NUMA) system to optimize processor task placement is disclosed. A method of embodiments of the invention includes creating a page table (PT) hierarchy associated with a thread to be run on a processor of a computing device, collecting access bit information from the PT hierarchy associated with the thread, wherein the access bit information includes any access bits in the PT hierarchy that are set by a memory management unit (MMU) of the processor to identify a page of memory accessed by the thread, determining memory access statistics for the thread, and utilizing the memory access statistics for the thread in a determination of whether to migrate the thread to another processor. | 10-06-2011 |
20120089783 | OPCODE LENGTH CACHING - A computer system caches variable-length instructions in a data structure. The computer system locates a first copy of an instruction in the cached data structure using a current value of the instruction pointer as a key. The computer system determines a predictive length of the instruction, and reads a portion of the instruction from an instruction memory as a second copy. The second copy has the predictive length. Based on the comparison of the first copy with the second copy, the computer system determines whether or not to read the rest of the instruction from the instruction memory, and then interprets the instruction for use by the computer system. | 04-12-2012 |
20120144042 | MECHANISM FOR MIGRATION OF CLIENT-SIDE VIRTUAL MACHINE SYSTEM RESOURCES - A mechanism for migration of client-side virtual machine system resources is described. A method of embodiments includes receiving notification that a virtual machine (VM) is being live migrated from a first server to a second server, connecting client resources associated with the VM to the second server during the live migration of the VM, and maintaining, during the live migration, an active VM connection of the client resources to the first server and an inactive VM connection of the client resources to the second server, the client resources pertaining to a client application and associated with the VM to enable the VM to access the client resources. The method further includes, upon completion of the live migration, disconnecting the active VM connection with the first server and activating the inactive VM connection between the one or more client resources and the second server. | 06-07-2012 |
20140075415 | AUTOMATIC USE CASE GENERATION FROM A PARSED CONFIGURATION FILE - A method and system for automatic use case generation. A computer system receives a configuration file that defines multiple categories and one or more filters. Each of the categories includes one or more options and each of the filters defines a condition for combining the options across the categories. The computer system builds a data hierarchy based on the configuration file. The data hierarchy includes a root and multiple levels. Each of the levels corresponds to one of the categories and includes nodes that represent the options of the corresponding categories. The computer system parses the data hierarchy from the root, while skipping the nodes and their descendants that do not satisfy the filters, to identify combinations of the options across the categories that satisfy the filters. The computer system then generates use cases that use the identified combinations as settings. | 03-13-2014 |
20140115175 | CLIENT LIVE MIGRATION FOR A VIRTUAL MACHINE - A computing device connects a first client device to a session of a virtual machine. The computing device subsequently connects a second client device to the session in response to a request from the second client device to access the virtual machine. The computing device may then disconnect the first device from the virtual machine session or disable one or more functions associated with the first client device. | 04-24-2014 |
20140122659 | Mechanism for Populating a Client Device With Graphical Images Specific to a Machine - A mechanism for populating a client device with graphical images specific to a machine is disclosed. A method includes storing a repository of graphical images associated with virtual machines (VMs), wherein the repository of graphical images is stored at the computing device prior to a connection of the computing device to a virtual machine (VM), connecting with a VM that is hosted by a host machine separate from the computing device and rendered in a graphical user interface (GUI) of the computing device, receiving hints regarding a configuration of the VM, and extracting one or more of the graphical images from the stored repository of graphical images that satisfy the received hints. | 05-01-2014 |
20140130041 | Mechanism for Distributed Multiple Monitor Display Split Using Multiple Client Devices in a Virtualization System - A mechanism for distributed multiple monitor display split using multiple client devices in a virtualization system is disclosed. A method of the invention includes determining, by a remote access protocol server executed by a computing device, that a monitor configuration of a primary client device is not compatible with a multiple monitor configuration of a virtual machine (VM) hosted by a hypervisor of the computing device, establishing a communication session with remote access protocol clients of multiple client devices of a logical client unit comprising the primary client device, wherein each of the multiple client devices comprises at least one monitor, and for each VM monitor of the multiple monitors configured for the VM, mapping, by the remote access protocol server, the VM monitor to a monitor of a client device in the logical client unit. | 05-08-2014 |
20140130042 | Mechanism for Single Virtual Machine Monitor Display Split Using Multiple Client Devices in a Virtualization System - A mechanism for a virtual machine (VM) monitor display split using multiple client devices in a virtualization system is disclosed. A method of the invention includes receiving, by a remote access protocol server, resolution data of a monitor of a virtual machine (VM), receiving resolution data for each monitor of multiple client devices forming a logical client unit, determining, based on the resolution data of the VM monitor and the resolution data of the monitors of the multiple client devices, client devices of the multiple client devices in the logical client unit to display the monitor of the VM, dividing, based on the resolutions of the determined client devices, the monitor of the VM into a number of portions that is equal to a number of the determined client devices, and mapping each of the portions of the monitor of the VM to a monitor of the determined client devices. | 05-08-2014 |
20140146705 | MANAGING A DYNAMICALLY CONFIGURABLE ROUTING SCHEME FOR VIRTUAL APPLIANCES - A computing device determines a routing scheme that identifies a plurality of virtual appliances to route data packets through and an order in which to perform the routing. The computing device receives a data packet from a client. The computing device routes the data packet to the plurality of virtual appliances in accordance with the routing scheme, wherein each of the plurality of virtual appliances performs one or more operations on the data packet. The computing device sends the data packet to the virtual machine after the plurality of virtual appliances have completed the one or more operations on the data packet. | 05-29-2014 |
20140149490 | DYNAMIC ROUTING THROUGH VIRTUAL APPLIANCES - A computing device executes a virtual machine that provides a service to a client. The computing device monitors one or more conditions associated with at least one of the virtual machine or the client. The computing device receives a data packet from the client, wherein the data packet is addressed to the virtual machine. The computing device determines, based on the one or more conditions, whether to route the data packet from the client through a virtual appliance before sending the data packet to the virtual machine. | 05-29-2014 |
20140149981 | SHARING MEMORY BETWEEN VIRTUAL APPLIANCES - A computing device executing a virtual machine and a hypervisor that manages the virtual machine receives a data packet that is addressed to the virtual machine. The computing device writes the data packet to a buffer in a shared memory. The computing device maps the buffer to a memory of a virtual appliance that is hosted by the hypervisor to enable the virtual appliance to operate on the data packet without making a copy of the data packet. The computing device provides the data packet to the virtual machine after the virtual appliance has operated on the data packet. | 05-29-2014 |
20140156778 | MANAGING A DISTRIBUTED CACHE FOR VIRTUAL MACHINES - Clients may display desktop environments to provide users with access to virtual machines (VMs). Graphical objects that displayed in the desktop environments are stored in caches in multiple clients. A host that hosts a VM may track or manage the graphical objects that are in the caches of the multiple clients. The host may instruct a first client to obtain a graphical object from a second client that is near the first client, instead of providing the graphical object to the first client directly. | 06-05-2014 |
20140195590 | MANAGING A LOGICAL CLIENT FOR A VIRTUAL MACHINE - A logical client includes a primary client device and one or more secondary client devices. Each of the secondary client devices may be coupled to one or more peripherals. The primary client in the logical client may use a virtual machine (VM) and/or an application that uses one or more peripheral devices. The primary client device may not be coupled to the one or more peripheral devices used by the application and/or the VM. The primary client device may access the peripheral devices coupled to secondary client devices in order to use the application and/or the VM. | 07-10-2014 |
20140195592 | MANAGING A LOGICAL CLIENT FOR AN APPLICATION - A logical client includes a primary client device and one or more secondary client devices. Each of the secondary client devices may be coupled to one or more peripherals. The primary client in the logical client may use a virtual machine and/or an application that uses one or more peripheral devices. The primary client device may not be coupled to the one or more peripheral devices used by the application and/or the VM. The primary client device may access the peripheral devices coupled to secondary client devices in order to use the application and/or the VM. | 07-10-2014 |
20140223442 | Tracking Memory Accesses to Optimize Processor Task Placement - Implementations provide for tracking memory accesses to optimize processor task placement is disclosed. A method includes creating a page table (PT) hierarchy associated with a thread, wherein the PT hierarchy comprises identifying information of memory pages and access bits corresponding to each of the memory pages, setting the respective access bit of one or more of the memory pages accessed by the thread while the thread is executing, collecting access bit information from the PT hierarchy associated with the thread, wherein the access bit information comprises the set access bits in the PT hierarchy, determining, in view of the collected access bit information, memory access statistics for the thread, and utilizing, during runtime of the thread, the memory access statistics for the thread in a determination of whether to migrate the thread to another processing device during the runtime of the thread. | 08-07-2014 |
20140359608 | Systems and Methods for Timer Based Virtual Processor Scheduling - Systems and methods for timer-based virtual processor scheduling. An example method may comprise: selecting, by a hypervisor executing on a computer system, an active virtual processor among two or more virtual processors; determining a first time period being less than a second time period, the second time period equal to a time remaining till a next scheduled timer interrupt of a timer communicatively coupled to the active virtual processor; and suspending the active virtual processor for at least the first time period. | 12-04-2014 |