Patents by Inventor Andrea Arcangeli
Andrea Arcangeli 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).
-
Publication number: 20210124602Abstract: A hypervisor on a destination host receives a request to migrate a virtual machine (VM) from a source host to the destination host and determines a total amount of memory associated with the VM on the source host. The hypervisor on the destination host allocates one or more memory pages in a page table on the destination host to satisfy the total amount of memory associated with the VM on the source host, where the one or more memory pages are to be associated with the VM on the destination host. Responsive to determining that the one or more memory pages have been allocated on the destination host, the hypervisor on the destination host initiates migration of the VM from the source host to the destination host.Type: ApplicationFiled: October 24, 2019Publication date: April 29, 2021Inventors: Michael Tsirkin, Andrea Arcangeli
-
Patent number: 10983926Abstract: A driver associated with a host peripheral component interconnect (PCI) device may be initiated, the host PCI device to be accessed by an application executed by a guest operating system (OS) of a guest using user space memory of the guest. A host page table switching instruction may be executed using the driver to cause a switch from a first host page table structure to a second host page table structure. The host PCI device may be accessed using the driver via a PCI alias address that is mapped to a host PCI address in the second host page table structure. Application code associated with the application may be prevented from accessing a host memory address in the second host page table structure.Type: GrantFiled: August 29, 2018Date of Patent: April 20, 2021Assignee: Red Hat, Inc.Inventors: Michael Tsirkin, Andrea Arcangeli
-
Publication number: 20210096856Abstract: A system includes a memory, at least one physical processor in communication with the memory, and a plurality of hardware threads executing on the at least one physical processor. A first thread of the plurality of hardware threads is configured to execute a plurality of instructions that includes a restartable sequence. Responsive to a different second thread in communication with the first thread being pre-empted while the first thread is executing the restartable sequence, the first thread is configured to restart the restartable sequence prior to reaching a memory barrier.Type: ApplicationFiled: September 27, 2019Publication date: April 1, 2021Inventors: Michael Tsirkin, Andrea Arcangeli
-
Publication number: 20210055948Abstract: Systems and methods for thread execution transition are disclosed. An example system includes a memory and a processor with first and second registers. An application and a supervisor are configured to execute on the processor, which suspends execution of a first thread executing the supervisor. One execution state of the first thread is stored in the first register. The application stores a request in a first shared memory location. The application executes on a second thread and another execution state of the second thread is stored in the second register. The processor suspends execution of the second thread and resumes execution of the first thread. The supervisor retrieves data for the request from the first shared memory location, and processes the data, including storing a result to a second shared memory location. The processor suspends execution of the first thread and resumes execution of the second thread.Type: ApplicationFiled: August 23, 2019Publication date: February 25, 2021Inventors: Michael Tsirkin, Andrea Arcangeli
-
Publication number: 20200327071Abstract: A system includes a memory, a processor in communication with the memory, an application, and a supervisor. The supervisor is configured to allocate an identifier corresponding to a virtual memory area and expose a data structure that is readable by the application. Responsive to a fault trigger associated with an address, the supervisor is configured to record fault information in the data structure. The application is configured to predict at least a portion of subsequent fault information based on fault information recorded in the data structure.Type: ApplicationFiled: April 9, 2019Publication date: October 15, 2020Inventors: Andrea Arcangeli, Michael Tsirkin
-
Patent number: 10789174Abstract: A method for a virtual machine executed by a hypervisor includes identifying, for the virtual machine, mappings between a range of guest virtual addresses (GVAs) and a range of guest physical addresses (GPAs) that remain the same in an initial guest page table for a threshold period of time, creating an intermediate guest page table including one or more page table entries that map the range of the GVAs to a range of guest intermediate addresses (GIAs), and causing the GVA to be translated to a GIA using the intermediate guest page table in view of the one or more page table entries, where the translation is triggered responsive to a guest application of the virtual machine attempting to access a GVA in the range of the GVAs.Type: GrantFiled: February 28, 2018Date of Patent: September 29, 2020Assignee: Red Hat, Inc.Inventors: Michael Tsirkin, Andrea Arcangeli
-
Publication number: 20200233813Abstract: Aspects of the disclosure provide for implementing host address space identifiers for non-uniform memory access (NUMA) locality in virtual machines. A method of the disclosure includes determining, by a virtual machine (VM) executed by a processing device and managed by a hypervisor, that a memory page of the guest is to be moved from a first virtual non-uniform memory access (NUMA) node of the VM to a second virtual NUMA node of the VM. The method further includes updating, by the VM in a guest page table, upper bits of a guest physical address (GPA) of the memory page to include a host address space identifier (HASID) of the second virtual NUMA node, and causing an execution control to be transferred from the VM to the hypervisor due to a page fault resulting from attempting to access the updated GPA.Type: ApplicationFiled: April 6, 2020Publication date: July 23, 2020Inventors: Andrea Arcangeli, Michael Tsirkin
-
Patent number: 10691365Abstract: A method of migrating memory includes protecting, by a hypervisor, a first memory page from write operations, the first memory page being used for direct memory access (DMA) by a device and stored at a guest memory address that maps to a first host-physical address. A second memory page is stored at the first host-physical address, and the device is allowed DMA in an input/output memory management unit (IOMMU). The method also includes allocating a third memory page at a second host-physical address and copying data stored at the second memory page to the third memory page. The method further includes updating a mapping including the guest memory address to reference the second host-physical address and detecting that the first memory page is protected from write operations by the device. The method further includes pinning the second memory page to main memory of the host machine and storing the mapping.Type: GrantFiled: January 30, 2019Date of Patent: June 23, 2020Assignee: Red Hat, Inc.Inventors: Michael Tsirkin, Andrea Arcangeli
-
Patent number: 10613990Abstract: Aspects of the disclosure provide for host address space identifiers for non-uniform memory access (NUMA) locality in virtual machines. A method of the disclosure includes receiving, by a hypervisor executed by a processing device of a host machine, execution control from a guest managed by the hypervisor, wherein a page fault corresponding to a guest physical address (GPA) triggered an exit to the hypervisor from the guest, identifying a host address space identifier (HASID) from the GPA, determining, in view of the HASID, whether to migrate a memory page associated with the GPA to a destination host non-uniform memory access (NUMA) node corresponding to the HASID, and creating a new page table entry for the GPA in a host page table of the hypervisor.Type: GrantFiled: December 5, 2017Date of Patent: April 7, 2020Assignee: Red Hat, Inc.Inventors: Andrea Arcangeli, Michael Tsirkin
-
Publication number: 20200073829Abstract: A driver associated with a host peripheral component interconnect (PCI) device may be initiated, the host PCI device to be accessed by an application executed by a guest operating system (OS) of a guest using user space memory of the guest. A host page table switching instruction may be executed using the driver to cause a switch from a first host page table structure to a second host page table structure. The host PCI device may be accessed using the driver via a PCI alias address that is mapped to a host PCI address in the second host page table structure. Application code associated with the application may be prevented from accessing a host memory address in the second host page table structure.Type: ApplicationFiled: August 29, 2018Publication date: March 5, 2020Inventors: Michael Tsirkin, Andrea Arcangeli
-
Patent number: 10579410Abstract: A method for a virtual machine executed by a hypervisor including receiving a first request to execute a first guest application in the virtual machine, and locating, in view of a first memory context tag associated with the first guest application, an intermediate guest page table including a first mapping of a first range of guest virtual addresses (GVAs) to a first range of guest intermediate addresses (GIAs). The first range of GIAs is allocated for the first guest application in a guest physical address space separate from other addresses in the guest physical address space mapped to random access memory (RAM) for the virtual machine. The method also includes executing the first guest application using the first mapping of the first range of GVAs to the first range of GIAs allocated for the first guest application.Type: GrantFiled: February 28, 2018Date of Patent: March 3, 2020Assignee: Red Hat, Inc.Inventors: Michael Tsirkin, Andrea Arcangeli
-
Patent number: 10545670Abstract: A system and method of de-duplication includes receiving a first page, scanning a first structure, identifying a first match, determining a quantity of mappings to the first match is less than a threshold, and adding a first mapping to the first match. The method includes receiving a second page, scanning the first structure, identifying the first match, determining the quantity of mappings to the first match meets the threshold, and storing the second page in a second structure. The method includes receiving a third page, scanning the first structure, identifying the first match, determining the quantity of mappings to the first match meets the threshold, scanning the second structure, identifying the second page as the match, and creating a third structure that replaces the first match and includes an identifier node, the first match, and a second match with the second and third mapping identifying the second and third pages.Type: GrantFiled: February 26, 2016Date of Patent: January 28, 2020Assignee: Red Hat Israel, Ltd.Inventors: Andrea Arcangeli, Michael Tsirkin
-
Patent number: 10423478Abstract: Systems and methods that enable user space processing threads to handle hardware events (e.g., page faults) for another processing thread in a security-enhanced manner. An example method may comprise: associating, by a processing device executing a kernel, a first processing thread with a storage unit of a second processing thread; detecting, by a processing device, a hardware event corresponding to an address of the storage unit; determining a storage object comprising data of the storage unit; translating the address of the storage unit to an offset of the storage object; and transmitting, by the kernel, a notification of the hardware event to the first processing thread, wherein the notification comprises the offset.Type: GrantFiled: August 29, 2017Date of Patent: September 24, 2019Assignee: Red Hat, Inc.Inventors: Michael Tsirkin, Andrea Arcangeli, David Alan Gilbert
-
Publication number: 20190266000Abstract: A method for a virtual machine executed by a hypervisor including receiving a first request to execute a first guest application in the virtual machine, and locating, in view of a first memory context tag associated with the first guest application, an intermediate guest page table including a first mapping of a first range of guest virtual addresses (GVAs) to a first range of guest intermediate addresses (GIAs). The first range of GIAs is allocated for the first guest application in a guest physical address space separate from other addresses in the guest physical address space mapped to random access memory (RAM) for the virtual machine. The method also includes executing the first guest application using the first mapping of the first range of GVAs to the first range of GIAs allocated for the first guest application.Type: ApplicationFiled: February 28, 2018Publication date: August 29, 2019Inventors: Michael Tsirkin, Andrea Arcangeli
-
Publication number: 20190266099Abstract: A method for a virtual machine executed by a hypervisor includes identifying, for the virtual machine, mappings between a range of guest virtual addresses (GVAs) and a range of guest physical addresses (GPAs) that remain the same in an initial guest page table for a threshold period of time, creating an intermediate guest page table including one or more page table entries that map the range of the GVAs to a range of guest intermediate addresses (GIAs), and causing the GVA to be translated to a GIA using the intermediate guest page table in view of the one or more page table entries, where the translation is triggered responsive to a guest application of the virtual machine attempting to access a GVA in the range of the GVAs.Type: ApplicationFiled: February 28, 2018Publication date: August 29, 2019Inventors: Michael Tsirkin, Andrea Arcangeli
-
Publication number: 20190171577Abstract: Aspects of the disclosure provide for host address space identifiers for non-uniform memory access (NUMA) locality in virtual machines. A method of the disclosure includes receiving, by a hypervisor executed by a processing device of a host machine, execution control from a guest managed by the hypervisor, wherein a page fault corresponding to a guest physical address (GPA) triggered an exit to the hypervisor from the guest, identifying a host address space identifier (HASID) from the GPA, determining, in view of the HASID, whether to migrate a memory page associated with the GPA to a destination host non-uniform memory access (NUMA) node corresponding to the HASID, and creating a new page table entry for the GPA in a host page table of the hypervisor.Type: ApplicationFiled: December 5, 2017Publication date: June 6, 2019Inventors: Andrea Arcangeli, Michael Tsirkin
-
Publication number: 20190065301Abstract: Systems and methods that enable user space processing threads to handle hardware events (e.g., page faults) for another processing thread in a security-enhanced manner. An example method may comprise: associating, by a processing device executing a kernel, a first processing thread with a storage unit of a second processing thread; detecting, by a processing device, a hardware event corresponding to an address of the storage unit; determining a storage object comprising data of the storage unit; translating the address of the storage unit to an offset of the storage object; and transmitting, by the kernel, a notification of the hardware event to the first processing thread, wherein the notification comprises the offset.Type: ApplicationFiled: August 29, 2017Publication date: February 28, 2019Inventors: Michael Tsirkin, Andrea Arcangeli, David Alan Gilbert
-
Patent number: 10193299Abstract: A system and method for an active Q-switched fiber laser cavity may include a pump source for emitting a laser beam at a wavelength along an optical path including an active optical medium. A modulation device may be configured to introduce tunable losses into the optical path. The tunable losses may be achieved through modulation of the transmissivity of an optical element within the optical path, the modulation of said optical element being performed over (i) a first period of time in which a cavity Q curve increases from a first percentage value to a second percentage value of a maximum Q value and (ii) a second period of time in which the cavity Q curve increases from a third percentage value to a fourth percentage value of the maximum Q value. The cavity Q curve may non-linearly and smoothly transition between (i) the first and second percentage values and (ii) the third and fourth percentage values.Type: GrantFiled: March 30, 2017Date of Patent: January 29, 2019Assignee: Datalogic IP Tech S.R.L.Inventors: Andrea Arcangeli, Mihamed Hammouda
-
Patent number: 10120709Abstract: A guest OS detects a DMA write request for a device assigned to the guest OS to perform a DMA write to a shared page of memory that has a write protection attribute to cause a protection page fault upon an attempt to write to the shared page of memory. The guest OS reads a portion of the shared page of memory from a location of that page, determines the value of the portion, and executes an atomic instruction that writes the value back to the location of the shared page of memory to trigger the page protection fault. Upon executing the atomic instruction, the guest OS sends the DMA write request to the device to cause the device to write to a writeable copy of the shared page of memory.Type: GrantFiled: February 29, 2016Date of Patent: November 6, 2018Assignee: Red Hat Israel, Ltd.Inventors: Michael Tsirkin, Andrea Arcangeli
-
Patent number: 10114662Abstract: Systems and methods for providing dynamic processor topology information to a virtual machine hosted by a multi-processor computer system supporting non-uniform memory access (NUMA). An example method may comprise assigning a unique identifier to a virtual processor, determining that the virtual processor has been moved from a first physical processor to a second physical processor, determining a memory access latency value for the second physical processor, and updating an element of a data structure storing memory access latency information with the memory access latency value of the second physical processor, the element identified by the unique identifier of the virtual processor.Type: GrantFiled: February 26, 2013Date of Patent: October 30, 2018Assignee: Red Hat Israel, Ltd.Inventors: Michael Tsirkin, Andrea Arcangeli