Virtual machine memory migration by storage

    公开(公告)号:US11494213B2

    公开(公告)日:2022-11-08

    申请号:US16362158

    申请日:2019-03-22

    发明人: Michael Tsirkin

    IPC分类号: G06F9/455

    摘要: Systems and methods for virtual machine memory migration by storage are provided. A method includes receiving a request to migrate a virtual machine from a source host to a destination host. The method further includes mapping, by the source host, a memory of the virtual machine to a storage device accessible over a network by the source host and by the destination host. The method further includes caching, by the source host, a portion of a state of the virtual machine. The method further includes issuing a synchronization command to synchronize the portion of the state of the virtual machine with the storage device. Responsive to determining that a time period to complete the synchronization command is below a threshold time period, the method further includes stopping the virtual machine on the source host. The method further includes starting the virtual machine on the destination host.

    Memory deduplication based on guest page hints

    公开(公告)号:US11429416B2

    公开(公告)日:2022-08-30

    申请号:US16383899

    申请日:2019-04-15

    IPC分类号: G06F9/455 G06F11/14 H03M7/30

    摘要: Methods, systems, and computer program products are included for de-duplicating one or more memory pages. A method includes receiving, by a hypervisor, a list of read-only memory page hints from a guest running on a virtual machine. The list of read-only memory page hints specifies a first memory page marked as writeable. The method also includes determining whether the first memory page matches a second memory page. In response to a determination that the first memory page matches the second memory page, the hypervisor may deduplicate the first and second memory pages.

    Hypervisor translation bypass
    4.
    发明授权

    公开(公告)号:US11150928B2

    公开(公告)日:2021-10-19

    申请号:US15223695

    申请日:2016-07-29

    摘要: A system and method of translation bypass includes a hypervisor reserving a range of host virtual addresses. The hypervisor detects that a guest address is unmapped. The hypervisor determines a host virtual address. Determining the host virtual address includes adding the guest address to a host virtual address base offset. The host virtual address is within the range of host virtual addresses. The hypervisor maps the guest address to the host virtual address.

    Efficient userspace driver isolation by shallow virtual machines

    公开(公告)号:US11099874B2

    公开(公告)日:2021-08-24

    申请号:US16258924

    申请日:2019-01-28

    摘要: Technology for configuring and executing a shallow virtual machine to enhance memory protection between different portions of user space memory of a particular computing process. An example method may involve: associating a computing process with a virtual machine data structure, wherein the computing process initiates an update to the virtual machine data structure to cause a processor to switch between a page table structures; loading first and second executable code into user space memory of the computing process, wherein a first page table structure comprises mapping data for the first and second executable code and wherein the second executable code comprises driver code of a device; updating the second page table structure to disable execution of the first executable code and to map a portion of the user space memory to the device; and restricting the first executable code from accessing the memory mapped device.

    Migration notification and response messages for virtual machines

    公开(公告)号:US11070629B2

    公开(公告)日:2021-07-20

    申请号:US15691605

    申请日:2017-08-30

    摘要: An indication that a virtual machine has been migrated may be received. In response to receiving the indication, one or more network addresses associated with the virtual machine may be identified. A notification message corresponding to the one or more network addresses may be generated. The notification message may be transmitted on networks for the one or more network addresses. The virtual machine may determine whether a response message has been received for each of the one or more network addresses. The virtual machine may transmit a subsequent notification message in view of determining that at least one response message has not been received for at least one of the one or more network addresses.

    Managing network interface controller-generated interrupts

    公开(公告)号:US11061840B2

    公开(公告)日:2021-07-13

    申请号:US14034866

    申请日:2013-09-24

    发明人: Michael Tsirkin

    IPC分类号: G06F13/24

    摘要: Systems and methods for managing interrupts generated by network interface controllers. An example method may comprise: responsive to determining that a memory pressure metric in a computer system does not exceed a threshold value, disabling interrupts that signal completion of a packet transmission by a network interface controller; transmitting a plurality of data packets by the network interface controller; and responsive to detecting that the memory pressure metric exceeds the threshold value, releasing a memory buffer allocated to a data packet of the plurality of data packets.

    Asynchronous mapping of hot-plugged device associated with virtual machine

    公开(公告)号:US11036666B2

    公开(公告)日:2021-06-15

    申请号:US16653222

    申请日:2019-10-15

    IPC分类号: G06F13/00 G06F13/40 G06F9/455

    摘要: Systems and methods for asynchronous mapping of a hot-plugged I/O device associated with a virtual machine. An example method comprises: executing, by a host computer system, a virtual machine managed by a hypervisor, wherein the virtual machine is associated with a hot-pluggable input/output (I/O) device; responsive to detecting removal of the I/O device, unpin a memory buffer associated with the I/O device; and responsive to receiving a signal indicating completion of unpinning the memory buffer, release the I/O device from the hypervisor.

    Methods for managing virtualized remote direct memory access devices

    公开(公告)号:US10956189B2

    公开(公告)日:2021-03-23

    申请号:US14621445

    申请日:2015-02-13

    IPC分类号: G06F9/46 G06F9/455

    摘要: A method performed by a physical computing system includes, with a hypervisor, presenting a virtualized Remote Direct Memory Access (RDMA) device to a guest, with the hypervisor, allocating a portion of total guest memory to the guest, with the hypervisor, determining a memory threshold for the guest, the memory threshold being based on a number of virtual machines managed by the hypervisor and a size of total guest memory, with the hypervisor, receiving from the guest, a first request to register a first size sub-portion of the portion of total guest memory to the virtualized RDMA device, and with the hypervisor, in response to determining that the first size sub-portion exceeds the memory threshold, returning a notification to the guest, the notification indicating that the first request failed. The first size sub-portion is less than the portion of total guest memory.

    Dirty memory tracking with assigned devices by exitless paravirtualization

    公开(公告)号:US10810031B2

    公开(公告)日:2020-10-20

    申请号:US14867528

    申请日:2015-09-28

    发明人: Michael Tsirkin

    IPC分类号: G06F9/48 G06F9/455

    摘要: An example method of tracking memory modified by an assigned device includes allocating, by a hypervisor running a virtual machine, guest memory to a guest running on the virtual machine, where a device is assigned to the virtual machine. The method also includes reading, while the virtual machine is running on the hypervisor, a first input/output (I/O) state that indicates whether the device is currently processing one or more I/O requests, where the first I/O state is writable by the guest. The method further includes determining whether the first I/O state indicates that the device is currently processing one or more I/O requests. The method also includes determining to not transmit a memory page to a destination in response to determining that the first I/O state indicates that the device is currently processing one or more I/O requests. The memory page corresponds to the first I/O state.