Patents by Inventor Ole Agesen

Ole Agesen 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: 10545744
    Abstract: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the return address after any IL call to a subroutine at a target entry address P, the corresponding OL return address is stored in an array at a location determined by an index calculated as a function of P. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the OL return address was previously stored. A confirm instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site, and a back-up routine is included to handle the cases of incorrect call sites.
    Type: Grant
    Filed: November 7, 2017
    Date of Patent: January 28, 2020
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Publication number: 20180189041
    Abstract: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the return address after any IL call to a subroutine at a target entry address P, the corresponding OL return address is stored in an array at a location determined by an index calculated as a function of P. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the OL return address was previously stored. A confirm instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site, and a back-up routine is included to handle the cases of incorrect call sites.
    Type: Application
    Filed: November 7, 2017
    Publication date: July 5, 2018
    Inventor: Ole AGESEN
  • Patent number: 9965399
    Abstract: A computer system that is programmed with virtual memory accesses to physical memory employs multi-bit counters associated with its page table entries. When a page walker visits a page table entry, the multi-bit counter associated with that page table entry is incremented by one. The computer operating system uses the counts in the multi-bit counters of different page table entries to determine where large pages can be deployed effectively. In a virtualized computer system having a nested paging system, multi-bit counters associated with both its primary page table entries and its nested page table entries are used. These multi-bit counters are incremented during nested page walks. Subsequently, the guest operating systems and the virtual machine monitors use the counts in the appropriate multi-bit counters to determine where large pages can be deployed effectively.
    Type: Grant
    Filed: April 10, 2017
    Date of Patent: May 8, 2018
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 9836292
    Abstract: A sequence of input language (IL) instructions of a guest system is converted, for example by binary translation, into a corresponding sequence of output language (OL) instructions of a host system, which executes the OL instructions. In order to determine the return address after any IL call to a subroutine at a target entry address P, the corresponding OL return address is stored in an array at a location determined by an index calculated as a function of P. After completion of execution of the OL translation of the IL subroutine, execution is transferred to the address stored in the array at the location where the OL return address was previously stored. A confirm instruction block is included in each OL call site to determine whether the transfer was to the correct or incorrect call site, and a back-up routine is included to handle the cases of incorrect call sites.
    Type: Grant
    Filed: June 16, 2009
    Date of Patent: December 5, 2017
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 9785506
    Abstract: A system and method for reducing the likelihood of concurrency errors by identifying vulnerable segments of computer code and stalling other virtual machine threads of execution. According to one embodiment of the present invention, the vulnerable segment is identified at runtime, for example in a dynamic translator. According to another embodiment of the present invention, the vulnerable segment is identified ahead of time, for example in a static translator. According to yet another embodiment of the present invention, the vulnerable segment is identified in the binary translator of a virtual machine monitor.
    Type: Grant
    Filed: October 9, 2013
    Date of Patent: October 10, 2017
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Michael Cohen, Jeffrey W. Sheldon
  • Publication number: 20170212843
    Abstract: A computer system that is programmed with virtual memory accesses to physical memory employs multi-bit counters associated with its page table entries. When a page walker visits a page table entry, the multi-bit counter associated with that page table entry is incremented by one. The computer operating system uses the counts in the multi-bit counters of different page table entries to determine where large pages can be deployed effectively. In a virtualized computer system having a nested paging system, multi-bit counters associated with both its primary page table entries and its nested page table entries are used. These multi-bit counters are incremented during nested page walks. Subsequently, the guest operating systems and the virtual machine monitors use the counts in the appropriate multi-bit counters to determine where large pages can be deployed effectively.
    Type: Application
    Filed: April 10, 2017
    Publication date: July 27, 2017
    Inventor: Ole AGESEN
  • Patent number: 9619399
    Abstract: A computer system that is programmed with virtual memory accesses to physical memory employs multi-bit counters associated with its page table entries. When a page walker visits a page table entry, the multi-bit counter associated with that page table entry is incremented by one. The computer operating system uses the counts in the multi-bit counters of different page table entries to determine where large pages can be deployed effectively. In a virtualized computer system having a nested paging system, multi-bit counters associated with both its primary page table entries and its nested page table entries are used. These multi-bit counters are incremented during nested page walks. Subsequently, the guest operating systems and the virtual machine monitors use the counts in the appropriate multi-bit counters to determine where large pages can be deployed effectively.
    Type: Grant
    Filed: June 21, 2012
    Date of Patent: April 11, 2017
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 9532103
    Abstract: Systems and techniques are described for multi-user support on set top boxes and game consoles. A described technique includes executing a hypervisor that monitors a plurality of virtual machines that execute a set top box operating system or a game console operating system, providing a selection menu to a first display device, receiving a first selection of a first virtual machine, executing the first virtual machine, providing a first stream of content for a first user interface of the first virtual machine to the first display device, providing the selection menu to a second display device, receiving a second selection of a second virtual machine, executing the second virtual machine, and providing a second stream of content for a second user interface of the second virtual machine to the second display device while providing the first stream to the first display device.
    Type: Grant
    Filed: December 16, 2013
    Date of Patent: December 27, 2016
    Assignee: VMware, Inc.
    Inventors: Salim AbiEzzi, Ole Agesen
  • Publication number: 20150172760
    Abstract: Systems and techniques are described for multi-user support on set top boxes and game consoles. A described technique includes executing a hypervisor that monitors a plurality of virtual machines that execute a set top box operating system or a game console operating system, providing a selection menu to a first display device, receiving a first selection of a first virtual machine, executing the first virtual machine, providing a first stream of content for a first user interface of the first virtual machine to the first display device, providing the selection menu to a second display device, receiving a second selection of a second virtual machine, executing the second virtual machine, and providing a second stream of content for a second user interface of the second virtual machine to the second display device while providing the first stream to the first display device.
    Type: Application
    Filed: December 16, 2013
    Publication date: June 18, 2015
    Applicant: VMware, Inc.
    Inventors: Salim AbiEzzi, Ole Agesen
  • Patent number: 8898518
    Abstract: A checkpointing fault tolerance network architecture enables a backup computer system to be remotely located from a primary computer system. An intermediary computer system is situated between the primary computer system and the backup computer system to manage the transmission of checkpoint information to the backup VM in an efficient manner. The intermediary computer system is networked to the primary VM through a first connection and is networked to the backup VM through a second connection. The intermediary computer system identifies updated data corresponding to memory pages that have been least recently modified by the primary VM and transmits such updated data to the backup VM through the first connection. In such manner, the intermediary computer system holds back updated data corresponding to more recently modified memory pages, since such memory pages may be more likely to be updated again in the future.
    Type: Grant
    Filed: April 18, 2012
    Date of Patent: November 25, 2014
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Raviprasad Mummidi, Pratap Subrahmanyam
  • Patent number: 8875162
    Abstract: Completion interrupts corresponding to I/O requests issued by a virtual machine guest, which runs on a host platform, are virtualized in such a way that I/O completion interrupts to the requesting guest are delivered no faster than it can stably handle them, but, when possible, faster than the nominal speed of a virtual device to which a virtual machine addresses the I/O request. In general, completion events received from the host platform in response to guest I/O requests are examined with respect to time. If enough time has passed that the virtual device would normally have completed the I/O request, then the completion interrupt is delivered to the guest. If the nominal time has not elapsed, however, the invention enqueues and time-stamps the event and delivers it at the earliest of a) the normal maturity time, or b) at a safepoint.
    Type: Grant
    Filed: August 9, 2013
    Date of Patent: October 28, 2014
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Boris Weissman, Keith Adams, Jennifer-Ann M. Anderson, Maxime Austruy
  • Patent number: 8719545
    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: Grant
    Filed: November 6, 2012
    Date of Patent: May 6, 2014
    Assignee: VMware, Inc.
    Inventors: Vivek Pandey, Ole Agesen, Alexander Thomas Garthwaite, Carl A. Waldspurger, Rajesh Venkatasubramanian
  • Patent number: 8719513
    Abstract: In a virtualized system using memory page sharing, a method is provided for maintaining sharing when Guest code attempts to write to the shared memory. In one embodiment, virtualization logic uses a pattern matcher to recognize and intercept page zeroing code in the Guest OS. When the page zeroing code is about to run against a page that is already zeroed, i.e., contains all zeros, and is being shared, the memory writes in the page zeroing code have no effect. The virtualization logic skips over the writes, providing an appearance that the Guest OS page zeroing code has run to completion but without performing any of the writes that would have caused a loss of page sharing. The pattern matcher can be part of a binary translator that inspects code before it executes.
    Type: Grant
    Filed: February 15, 2013
    Date of Patent: May 6, 2014
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Publication number: 20140108860
    Abstract: A system and method for reducing the likelihood of concurrency errors by identifying vulnerable segments of computer code and stalling other virtual machine threads of execution. According to one embodiment of the present invention, the vulnerable segment is identified at runtime, for example in a dynamic translator. According to another embodiment of the present invention, the vulnerable segment is identified ahead of time, for example in a static translator. According to yet another embodiment of the present invention, the vulnerable segment is identified in the binary translator of a virtual machine monitor.
    Type: Application
    Filed: October 9, 2013
    Publication date: April 17, 2014
    Applicant: VMware, Inc.
    Inventors: Ole AGESEN, Michael COHEN, Jeffrey W. SHELDON
  • Publication number: 20130326518
    Abstract: Completion interrupts corresponding to I/O requests issued by a virtual machine guest, which runs on a host platform, are virtualized in such a way that I/O completion interrupts to the requesting guest are delivered no faster than it can stably handle them, but, when possible, faster than the nominal speed of a virtual device to which a virtual machine addresses the I/O request. In general, completion events received from the host platform in response to guest I/O requests are examined with respect to time. If enough time has passed that the virtual device would normally have completed the I/O request, then the completion interrupt is delivered to the guest. If the nominal time has not elapsed, however, the invention enqueues and time-stamps the event and delivers it at the earliest of a) the normal maturity time, or b) at a safepoint.
    Type: Application
    Filed: August 9, 2013
    Publication date: December 5, 2013
    Applicant: VMware, Inc.
    Inventors: Ole AGESEN, Boris WEISSMAN, Keith ADAMS, Jennifer-Ann M. ANDERSON, Maxime AUSTRUY
  • Patent number: 8578380
    Abstract: A condition variable for controlling access to a critical section of computer code by a plurality of concurrently running execution threads comprises a data structure with a head list linking threads in an arrival order and a tail list linking threads in a reverse arrival order. Together, the head and tail lists together indicate which threads are currently blocked on the condition variable. A wait counter indicates how many threads are currently linked in the data structure and a signal counter indicates how many times the condition variable has been signaled for waiting threads that are currently linked in the data structure. The head and tail pointers, as well as the wait and signal counters, may be implemented as fields of a single, atomically updatable data word.
    Type: Grant
    Filed: August 27, 2004
    Date of Patent: November 5, 2013
    Assignee: VMware, Inc.
    Inventors: Keith M. Adams, Ole Agesen
  • Patent number: 8572606
    Abstract: A system and method for reducing the likelihood of concurrency errors by identifying vulnerable segments of computer code and stalling other virtual machine threads of execution. According to one embodiment of the present invention, the vulnerable segment is identified at runtime, for example in a dynamic translator. According to another embodiment of the present invention, the vulnerable segment is identified ahead of time, for example in a static translator. According to yet another embodiment of the present invention, the vulnerable segment is identified in the binary translator of a virtual machine monitor.
    Type: Grant
    Filed: March 1, 2006
    Date of Patent: October 29, 2013
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Michael Cohen, Jeffrey W. Sheldon
  • Patent number: 8533745
    Abstract: Completion interrupts corresponding to I/O requests issued by a virtual machine guest, which runs on a host platform, are virtualized in such a way that I/O completion interrupts to the requesting guest are delivered no faster than it can stably handle them, but, when possible, faster than the nominal speed of a virtual device to which a virtual machine addresses the I/O request. In general, completion events received from the host platform in response to guest I/O requests are examined with respect to time. If enough time has passed that the virtual device would normally have completed the I/O request, then the completion interrupt is delivered to the guest. If the nominal time has not elapsed, however, the invention enqueues and time-stamps the event and delivers it at the earliest of a) the normal maturity time, or b) at a safepoint.
    Type: Grant
    Filed: December 14, 2010
    Date of Patent: September 10, 2013
    Assignee: VMware, Inc.
    Inventors: Ole Agesen, Boris Weissman, Keith Adams, Jennifer-Ann M. Anderson, Maxime Austruy
  • Patent number: 8380939
    Abstract: In a virtualized system using memory page sharing, a method is provided for maintaining sharing when Guest code attempts to write to the shared memory. In one embodiment, virtualization logic uses a pattern matcher to recognize and intercept page zeroing code in the Guest OS. When the page zeroing code is about to run against a page that is already zeroed, i.e., contains all zeros, and is being shared, the memory writes in the page zeroing code have no effect. The virtualization logic skips over the writes, providing an appearance that the Guest OS page zeroing code has run to completion but without performing any of the writes that would have caused a loss of page sharing. The pattern matcher can be part of a binary translator that inspects code before it executes.
    Type: Grant
    Filed: August 19, 2011
    Date of Patent: February 19, 2013
    Assignee: VMware, Inc.
    Inventor: Ole Agesen
  • Patent number: 8352705
    Abstract: A computer system that is programmed with virtual memory accesses to physical memory employs multi-bit counters associated with its page table entries. When a page walker visits a page table entry, the multi-bit counter associated with that page table entry is incremented by one. The computer operating system uses the counts in the multi-bit counters of different page table entries to determine where large pages can be deployed effectively. In a virtualized computer system having a nested paging system, multi-bit counters associated with both its primary page table entries and its nested page table entries are used. These multi-bit counters are incremented during nested page walks. Subsequently, the guest operating systems and the virtual machine monitors use the counts in the appropriate multi-bit counters to determine where large pages can be deployed effectively.
    Type: Grant
    Filed: January 15, 2008
    Date of Patent: January 8, 2013
    Assignee: VMware, Inc.
    Inventor: Ole Agesen