Patents by Inventor Avi Kivity

Avi Kivity 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: 8924965
    Abstract: 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 interacting with a VM executed by a hypervisor of a origin host machine in order to cause the VM to prevent a state of a peripheral device controlled by the VM from changing, receiving the state of the peripheral device from at least one of the VM, a memory of the VM, or the peripheral device, and transferring the obtained state of the peripheral device to a destination host machine as part of a migration process of the VM.
    Type: Grant
    Filed: January 7, 2011
    Date of Patent: December 30, 2014
    Assignee: Red Hat Israel, Ltd.
    Inventors: Michael S. Tsirkin, Dor Laor, Avi Kivity
  • Patent number: 8880764
    Abstract: A computing apparatus identifies that a first physical processor of a host has forwarded information regarding a device interrupt for a device to a second physical processor executing at least one of a virtual processor that controls the device or an application thread that controls the device. After identifying that the first physical processor has forwarded the information regarding the device interrupt to the second physical processor and in response to determining that one or more update criteria have been satisfied, the computing apparatus updates at least one of the device or an interrupt controller to cause at least one of the device or the interrupt controller to send future device interrupts for the device to the second physical processor.
    Type: Grant
    Filed: August 30, 2011
    Date of Patent: November 4, 2014
    Assignee: Red Hat Israel, Ltd.
    Inventors: Michael S. Tsirkin, Avi Kivity
  • Patent number: 8850443
    Abstract: A mechanism for asynchronous input/output (I/O) using second stack switching in kernel space is disclosed. A method of the invention includes receiving, by a kernel executing in a computing device, an input/output (I/O) request from an application thread executing using a first stack, allocating a second stack in kernel space of the computing device, switching execution of the thread to the second stack, and processing the I/O request synchronously using the second stack.
    Type: Grant
    Filed: November 22, 2011
    Date of Patent: September 30, 2014
    Assignee: Red Hat Israel, Ltd.
    Inventors: Avi Kivity, Gleb Natapov
  • Publication number: 20140229647
    Abstract: A method and system for permitting a guest to program a message-signaled interrupt-based device is disclosed. A hypervisor of a host detects a request by a guest to map an address range of memory of the guest to a message signaled-interrupt capability table associated with a device. The hypervisor maps the message signaled-interrupt capability table from a message signaled-interrupt capability register of a programmable interrupt controller associated with the host to the address range of memory of the guest. The hypervisor detects an attempt by the guest to program the device with the message-signaled interrupt configuration located in the address range of memory of the guest. The hypervisor programs the device with the message-signaled interrupt configuration specified by the guest in the address range of memory of the guest.
    Type: Application
    Filed: February 14, 2013
    Publication date: August 14, 2014
    Applicant: RED HAT ISRAEL, LTD.
    Inventors: Michael Tsirkin, Avi Kivity, Dor Laor
  • Publication number: 20140223060
    Abstract: Systems and methods for injecting interrupts in a virtualized computer system. An example method may comprise providing a data structure associating message destination addresses and virtual processor identifiers for a plurality of interrupt destination modes, receiving an interrupt message including a message destination address, looking up the message destination address in the data structure, and forwarding the interrupt message to a virtual processor associated by the data structure with the message destination address.
    Type: Application
    Filed: February 7, 2013
    Publication date: August 7, 2014
    Applicant: RED HAT ISRAEL, LTD.
    Inventors: Michael Tsirkin, Avi Kivity
  • Publication number: 20140156894
    Abstract: A method and system for managing message-signaled interrupt-based events sent from an event source to a host or a guest is disclosed. A central processing unit instructs an event source to write a message-signaled interrupt to a designated address of a random access memory of the host. The host or a guest of the central processing unit executes a memory monitoring instruction to the designated address. The host or the guest enters a wait state. The host or the guest detects a write of the message-signaled interrupt by the event source to the designated address, the message-signaled interrupt comprising data items pertaining to an event to be performed. The host or the guest exits from the wait state. The host or the guest performs an atomic operation with respect to the event based on the data items in the message-signaled interrupt.
    Type: Application
    Filed: November 30, 2012
    Publication date: June 5, 2014
    Applicant: RED HAT ISRAEL, LTD.
    Inventors: Michael Tsirkin, Avi Kivity, Dor Laor
  • Publication number: 20140149979
    Abstract: A method and system for managing a virtual computing system including an event source configured to send an event to a destination virtual machine (VM) executing a memory monitoring instruction on a designated address range of a host memory. A hypervisor instructs a destination virtual central processing unit (VCPU) associated with the destination VM to execute the memory monitoring instruction to the designated address range of a memory. A physical CPU associated with the designated address range is configured not to perform an exit to the hypervisor in response to execution of the memory monitoring instruction by the destination VCPU. The hypervisor instructs an event source to write data to the designated address range to send an event for performance by the destination VM, wherein the destination VM wakes up and performs the identified event in response to the event source writing to the identified address range.
    Type: Application
    Filed: November 27, 2012
    Publication date: May 29, 2014
    Applicant: RED HAT ISRAEL, LTD.
    Inventors: Michael Tsirkin, Avi Kivity, Dor Laor
  • Publication number: 20140149634
    Abstract: 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.
    Type: Application
    Filed: November 29, 2012
    Publication date: May 29, 2014
    Applicant: Red Hat, Inc.
    Inventors: Marcelo Tosatti, Avi Kivity, Henri Han Van Riel
  • Publication number: 20140149633
    Abstract: 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.
    Type: Application
    Filed: November 27, 2012
    Publication date: May 29, 2014
    Applicant: Red Hat Israel, Ltd.
    Inventors: Michael Tsirkin, Avi Kivity, Dor Laor
  • Publication number: 20140143452
    Abstract: A system and methods for sending data from one process to another process (i.e., interprocess communication) are disclosed. In accordance with one embodiment, an operating system recognizes a request by a sending process to perform an asynchronous write to a pipe, and a request by a receiving process to perform an asynchronous read from the pipe, occurring in either order. The operating system then selects one of a plurality of mechanisms for providing the data to the receiving process.
    Type: Application
    Filed: November 21, 2012
    Publication date: May 22, 2014
    Applicant: Red Hat Israel, Ltd.
    Inventor: Avi Kivity
  • Publication number: 20140143771
    Abstract: A method and system for managing a virtual computing system including a virtual machine (VM) configured to send an event to a host CPU executing a memory monitoring instruction. The virtual machine is configured to receive from a hypervisor a notification identifying an address range writeable by a virtual central processing unit (VCPU) associated with the virtual machine to send an event to a host central processing unit (CPU). The virtual machine is further configured to receive an instruction to write to the identified address range for sending an event to the host CPU. The VCPU of the virtual machine may then write data identifying an event for execution by the host CPU to the identified address range, without causing an exit to the hypervisor.
    Type: Application
    Filed: November 20, 2012
    Publication date: May 22, 2014
    Applicant: RED HAT ISRAEL, LTD.
    Inventors: Michael Tsirkin, Avi Kivity, Dor Laor
  • Publication number: 20130326504
    Abstract: Methods and systems for managing requests for access to devices managed by a hypervisor in virtualized computing environment. A hypervisor receives a request for access to a device from a guest. The hypervisor provides an address hint associated with the device to the guest and an association between the address hint and the device is stored in a reference table. Upon receipt of a subsequent request from the guest including the address hint, the hypervisor performs a look-up in the reference table based on the address hint to identify the device and establishes access to the device by the guest.
    Type: Application
    Filed: May 30, 2012
    Publication date: December 5, 2013
    Inventors: Michael Tsirkin, Avi Kivity
  • Publication number: 20130326109
    Abstract: 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.
    Type: Application
    Filed: May 30, 2012
    Publication date: December 5, 2013
    Inventor: Avi Kivity
  • Patent number: 8560758
    Abstract: In one embodiment, a mechanism for out-of-synch virtual machine memory management optimization is disclosed. In one embodiment, a method for out-of-synch virtual machine memory management optimization includes receiving a memory management unit (MMU) synchronization event issued from a VM virtualized by a VM monitor (VMM) of a host server device, and synchronizing one or more unsynchronized page tables (PTs) of a shadow PT hierarchy maintained by the VMM with one or more corresponding guest PTs of a guest PT hierarchy maintained by the VM, wherein the one or more unsynchronized PTs include an unlimited number of unsynchronized PTs in a visible address space of the shadow PT hierarchy that is determined by a current CR3 register address of the shadow PT hierarchy.
    Type: Grant
    Filed: August 24, 2009
    Date of Patent: October 15, 2013
    Assignee: Red Hat Israel, Ltd.
    Inventors: Avi Kivity, Marcelo Tosatti
  • Publication number: 20130138863
    Abstract: 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.
    Type: Application
    Filed: November 29, 2011
    Publication date: May 30, 2013
    Inventors: Michael Tsirkin, Avi Kivity
  • Publication number: 20130132968
    Abstract: A mechanism for asynchronous input/output (I/O) using second stack switching in kernel space is disclosed. A method of the invention includes receiving, by a kernel executing in a computing device, an input/output (I/O) request from an application thread executing using a first stack, allocating a second stack in kernel space of the computing device, switching execution of the thread to the second stack, and processing the I/O request synchronously using the second stack.
    Type: Application
    Filed: November 22, 2011
    Publication date: May 23, 2013
    Inventors: Avi Kivity, Gleb Natapov
  • Publication number: 20130125115
    Abstract: Methods and systems for executing a request between a virtual machine and a paravirtualized machine are provided. The request is received from the virtual machine at a first shared memory of a hypervisor. The first shared memory is accessible to the virtual machine but not the paravirtualized machine. The request is transferred by the hypervisor from the first shared memory to a second shared memory of the hypervisor. The second shared memory is accessible to the paravirtualized machine but not the virtual machine. The request is intended for execution by the paravirtualized machine.
    Type: Application
    Filed: November 15, 2011
    Publication date: May 16, 2013
    Inventors: Michael S. Tsirkin, Avi Kivity
  • Publication number: 20130054860
    Abstract: A computing apparatus determines that a virtual processor of a guest has been moved from a first physical processor of a host to a second physical processor of the host. The computing apparatus identifies a device that is controlled by the virtual processor, wherein device interrupts for the device are forwarded to the virtual processor. The computing apparatus updates at least one of the device or an interrupt controller to cause at least one of the device or the interrupt controller to send the device interrupts to the second physical processor of the host, wherein the second physical processor of the host forwards the device interrupts to the virtual processor running on the second physical processor without generating an inter-processor interrupt.
    Type: Application
    Filed: August 30, 2011
    Publication date: February 28, 2013
    Inventors: Michael S. Tsirkin, Avi Kivity
  • Publication number: 20130054861
    Abstract: A computing apparatus identifies that a first physical processor of a host has forwarded information regarding a device interrupt for a device to a second physical processor executing at least one of a virtual processor that controls the device or an application thread that controls the device. After identifying that the first physical processor has forwarded the information regarding the device interrupt to the second physical processor and in response to determining that one or more update criteria have been satisfied, the computing apparatus updates at least one of the device or an interrupt controller to cause at least one of the device or the interrupt controller to send future device interrupts for the device to the second physical processor.
    Type: Application
    Filed: August 30, 2011
    Publication date: February 28, 2013
    Inventors: Michael S. Tsirkin, Avi Kivity
  • Patent number: 8356120
    Abstract: 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 receiving a state of a VM-controlled peripheral device running on a destination host machine from an origin host machine, wherein the VM is executed by a hypervisor of the destination host machine, providing the received state of the peripheral device to at least one of the VM, a memory of the VM, or the peripheral device in order to cause the peripheral device to be restored to that state on the destination host machine, and interacting with the VM in order to cause the VM to start the peripheral device in the restored state.
    Type: Grant
    Filed: January 7, 2011
    Date of Patent: January 15, 2013
    Assignee: Red Hat Israel, Ltd.
    Inventors: Michael S. Tsirkin, Dor Laor, Avi Kivity