Patents by Inventor Carl A. Waldspurger

Carl A. Waldspurger has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8261265
    Abstract: A virtual-machine-based system provides a control-transfer mechanism to invoke a user-mode application handler from existing virtual hardware directly, without going through an operating system kernel running in the virtual machine. A virtual machine monitor calls directly to the guest user-mode handler and the handler transfers control back to the virtual machine monitor, without involving the guest operating system.
    Type: Grant
    Filed: October 30, 2008
    Date of Patent: September 4, 2012
    Assignee: VMware, Inc.
    Inventors: Xiaoxin Chen, Carl A. Waldspurger, Pratap Subrahmanyam, Tal Garfinkel, Daniel R. K. Ports
  • Publication number: 20120221732
    Abstract: A method and tangible medium embodying code for allocating resource units of an allocatable resource among a plurality of clients in a computer is described. In the method, resource units are initially distributed among the clients by assigning to each of the clients a nominal share of the allocatable resource. For each client, a current allocation of resource units is determined. A metric is evaluated for each client, the metric being a function both of the nominal share and a usage-based factor, the usage-based factor being a function of a measure of resource units that the client is actively using and a measure of resource units that the client is not actively using. A resource unit can be reclaimed from a client when the metric for that client meets a predetermined criterion.
    Type: Application
    Filed: April 30, 2012
    Publication date: August 30, 2012
    Applicant: VMWARE, INC.
    Inventor: Carl A. Waldspurger
  • Patent number: 8250519
    Abstract: A method is provided for executing guest computations in a virtual machine of a virtualization system and forcing execution of registered code into an execution context of the guest. The forcing is performed from the virtualization system based on an execution trigger monitored without reliance on functionality of the guest software.
    Type: Grant
    Filed: August 8, 2008
    Date of Patent: August 21, 2012
    Assignee: VMware, Inc.
    Inventors: Dmitriy Budko, Xiaoxin Chen, Oded Horovitz, Pratap Subrahmanyam, Carl Waldspurger
  • Publication number: 20120117299
    Abstract: 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.
    Type: Application
    Filed: November 9, 2010
    Publication date: May 10, 2012
    Applicant: VMWARE, INC.
    Inventors: Carl A. WALDSPURGER, Rajesh VENKATASUBRAMANIAN, Alexander Thomas GARTHWAITE, Yury BASKAKOV, Puneet ZAROO
  • Patent number: 8176493
    Abstract: Management of contexts that execute on a computer system is described. More specifically, context scheduling in a virtual machine environment is described. A set of coscheduled contexts is monitored. If a skew metric associated with a first context of the coscheduled contexts fails to satisfy a condition, then a subset of the coscheduled contexts is descheduled although the first context remains scheduled.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: May 8, 2012
    Assignee: VMware, Inc.
    Inventors: Carl Waldspurger, John Zedlewski, Andrei Dorofeev
  • Publication number: 20120110577
    Abstract: A method of managing host physical memory using a balloon application executing within a guest virtual machine (GVM) running on a host platform is described. The balloon application receives allocation parameters from an entity outside the GVM, the allocation parameters identifying an amount of memory for the balloon application to allocate. The balloon application adjusts the allocated amount of memory according to the allocated amount. Physical memory backing up the allocated memory can then be assigned by virtualization software for use by another virtual machine running on the host platform.
    Type: Application
    Filed: January 9, 2012
    Publication date: May 3, 2012
    Applicant: VMWARE, INC.
    Inventors: Xiaoxin CHEN, Carl A. WALDSPURGER, Anil RAO
  • Patent number: 8171488
    Abstract: Management of contexts that execute on a computer system is described. More specifically, context scheduling in a virtual machine environment is described. A set of coscheduled contexts, including at least a first context and a second context, are monitored. The first and second contexts are alternately scheduled and descheduled so that both the first context and the second context are not concurrently scheduled.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: May 1, 2012
    Assignee: VMware, Inc.
    Inventors: Carl Waldspurger, John Zedlewski, Andrei Dorofeev
  • Patent number: 8171140
    Abstract: A method and tangible medium embodying code for allocating resource units of an allocatable resource among a plurality of clients in a computer is described. In the method, resource units are initially distributed among the clients by assigning to each of the clients a nominal share of the allocatable resource. For each client, a current allocation of resource units is determined. A metric is evaluated for each client, the metric being a function both of the nominal share and a usage-based factor, the usage-based factor being a function of a measure of resource units that the client is actively using and a measure of resource units that the client is not actively using. A resource unit can be reclaimed from a client when the metric for that client meets a predetermined criterion.
    Type: Grant
    Filed: February 7, 2008
    Date of Patent: May 1, 2012
    Assignee: VMware, Inc.
    Inventor: Carl A. Waldspurger
  • Patent number: 8166253
    Abstract: A memory management sub-system includes code executable by a processor fir performing selecting a plurality of contexts, and selecting a sample of the separately allocable portions of an address space for each of the contexts. For each of the selected allocable portions, a corresponding portion of the host memory to which the selected allocable portion is mapped is determined, and a count corresponding to a number of separately allocable portions of any context that are commonly mapped to the corresponding portion of the host memory. For each context, a metric is computed that is a function of the counts for that context. Host memory is allocated among the contexts at least in part based on their respective metrics.
    Type: Grant
    Filed: August 12, 2011
    Date of Patent: April 24, 2012
    Assignee: VMware, Inc.
    Inventors: Anil Rao, Carl A. Waldspurger, Xiaoxin Chen
  • Patent number: 8145763
    Abstract: At least one guest system, for example, a virtual machine, is connected to a host system, which includes a system resource such as system machine memory. Each guest system includes a guest operating system (OS). A resource requesting mechanism, preferably a driver, is installed within each guest OS and communicates with a resource scheduler included within the host system. If the host system needs any one the guest systems to relinquish some of the system resource it currently is allocated, then the resource scheduler instructs the driver within that guest system's OS to reserve more of the resource, using the guest OS's own, native resource allocation mechanisms. The driver thus frees this resource for use by the host, since the driver does not itself actually need the requested amount of the resource. The driver in each guest OS thus acts as a hollow “balloon” to “inflate” or “deflate,” that is, reserve more or less of the system resource via the corresponding guest OS.
    Type: Grant
    Filed: September 23, 2008
    Date of Patent: March 27, 2012
    Assignee: VMware, Inc.
    Inventor: Carl A. Waldspurger
  • Publication number: 20120054747
    Abstract: I/O operations between a virtual machine (VM) and a device external to the VM are monitored by a virtual machine monitor (VMM). Data passing between the VM and the external device is transformed by the VMM, in some cases only when a predetermined filtering or triggering condition is met. Because the VMM, and thus the transformation operation, is transparent to the VM, the transformation cannot be prevented or undone or even affected by any action by a user of the VM. Examples of the non-defeatable transformation of I/O data include generating display overlays such as banners, masking out portions of a display, encryption, compression and network shaping such as bandwidth limiting.
    Type: Application
    Filed: November 4, 2011
    Publication date: March 1, 2012
    Applicant: VMWARE, INC.
    Inventors: Carl A. WALDSPURGER, Edouard BUGNION
  • Patent number: 8127014
    Abstract: A method and system for providing quality of service to a plurality of hosts accessing a common resource is described. According to one embodiment, a plurality of IO requests is received from clients executing as software entities on one of the hosts. An IO request queue for each client is separately managed, and an issue queue is populated based on contents of the IO request queues. When a host issue queue is not full, a new IO request is entered into the host issue queue and is issued to the common resource. A current average latency observed at the host is calculated, and an adjusted window size is calculated at least in part based on the current average latency. The window size of the issue queue is adjusted according to the calculated window size.
    Type: Grant
    Filed: January 20, 2011
    Date of Patent: February 28, 2012
    Assignee: VMware, Inc.
    Inventors: Ajay Gulati, Irfan Ahmad, Carl A. Waldspurger
  • Patent number: 8127301
    Abstract: Management of contexts that execute on a computer system is described. More specifically, context scheduling in a virtual machine environment is described. A set of coscheduled contexts is monitored. If a skew metric associated with any one of the coscheduled contexts fails to satisfy a condition, then all coscheduled contexts in the set of coscheduled contexts not already descheduled are descheduled. After the contexts are descheduled, a subset of the set of coscheduled contexts is scheduled before the remainder of the set of coscheduled contexts.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: February 28, 2012
    Assignee: VMware, Inc.
    Inventors: Carl Waldspurger, John Zedlewski, Andrei Dorofeev
  • Publication number: 20120030407
    Abstract: 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.
    Type: Application
    Filed: October 11, 2011
    Publication date: February 2, 2012
    Applicant: VMWARE, INC.
    Inventors: Vivek PANDEY, Ole AGESEN, Alex GARTHWAITE, Carl WALDSPURGER, Rajesh VENKATASUBRAMANIAN
  • Publication number: 20120017027
    Abstract: 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.
    Type: Application
    Filed: July 13, 2010
    Publication date: January 19, 2012
    Applicant: VMWARE, INC.
    Inventors: Yury BASKAKOV, Alexander Thomas GARTHWAITE, Jesse POOL, Carl A. WALDSPURGER, Rajesh VENKATASUBRAMANIAN, Ishan BANERJEE
  • Patent number: 8099568
    Abstract: A swap space is provided for a host computer system, where the swap space includes a plurality of swap files with each individual swap file for swapping data only for a single corresponding virtual machine (VM). The per-VM swap space is used solely by the single, corresponding VM, such that only that particular VM's memory is allowed to be swapped out to the swap file.
    Type: Grant
    Filed: October 8, 2009
    Date of Patent: January 17, 2012
    Assignee: VMware, Inc.
    Inventors: Osten Kit Colbert, Carl A. Waldspurger, Xiaoxin Chen, Anil Rao
  • Publication number: 20120011504
    Abstract: Activity level of memory pages is classified in virtual machine environment, so that processes such as live VM migration and checkpointing, among others, can be carried out more efficiently. The method includes the steps of scanning page table entries of hypervisor-managed page tables continuously over repeating scan periods to determine whether memory pages have been accessed or not, and for each memory page, determining an activity level of the memory page based on whether the memory page has been accessed or not since a prior scan and storing the activity level of the memory page. The activity level of the memory page may be represented by one or more bits of its page table entry and may be classified as having at least two states ranging from hot to cold.
    Type: Application
    Filed: July 12, 2010
    Publication date: January 12, 2012
    Applicant: VMWARE, INC.
    Inventors: Irfan AHMAD, Carl A. WALDSPURGER, Alexander Thomas GARTHWAITE, Kiran TATI, Pin LU
  • Patent number: 8095929
    Abstract: A cost-benefit metric for load balancing virtual machines is used to estimate a net gain in resource availability achieved by a proposed virtual machine migration. The cost-benefit metric can be used together with any other known metrics to evaluate candidate migrations. The metric takes into account stability of loads as well as migration cost, hence can protect a system from thrashing, i.e., frequently migrating virtual machines without gaining resource availability.
    Type: Grant
    Filed: April 16, 2007
    Date of Patent: January 10, 2012
    Assignee: VMware, Inc.
    Inventors: Minwen Ji, Carl A. Waldspurger, John Zedlewski
  • Patent number: 8095931
    Abstract: Memory assigned to a virtual machine is reclaimed. A resource reservation application running as a guest application on the virtual machine reserves a location in guest virtual memory. The corresponding physical memory can be reclaimed and allocated to another virtual machine. The resource reservation application allows detection of guest virtual memory page-out by the guest operating system. Measuring guest virtual memory page-out is useful for determining memory conditions inside the guest operating system. Given determined memory conditions, memory allocation and reclaiming can be used control memory conditions. Memory conditions in the virtual machine can be controlled with the objective of achieving some target memory conditions.
    Type: Grant
    Filed: September 21, 2006
    Date of Patent: January 10, 2012
    Assignee: VMware, Inc.
    Inventors: Xiaoxin Chen, Carl Waldspurger, Anil Rao
  • Publication number: 20110302389
    Abstract: A memory management sub-system includes code executable by a processor fir performing selecting a plurality of contexts, and selecting a sample of the separately allocable portions of an address space for each of the contexts. For each of the selected allocable portions, a corresponding portion of the host memory to which the selected allocable portion is mapped is determined, and a count corresponding to a number of separately allocable portions of any context that are commonly mapped to the corresponding portion of the host memory. For each context, a metric is computed that is a function of the counts for that context. Host memory is allocated among the contexts at least in part based on their respective metrics.
    Type: Application
    Filed: August 12, 2011
    Publication date: December 8, 2011
    Applicant: VMWARE, INC.
    Inventors: Anil RAO, Carl A. WALDSPURGER, Xiaoxin CHEN