Abstract: A method for fast evacuation of a cloned disk to a storage device includes a source storage device generating a first write volume, where new written data is stored in the first write volume. A destination storage device generates a second write volume, where the new written data is also stored. The destination storage device generates a delta volume in a cloned disk, which is also located in the destination storage device. Differences between a template volume and a modified template volume are stored to the delta volume. The destination storage device merges the template volume and the delta volume, creating a second modified template volume.
Abstract: Systems and methods for announcing virtual machine migration. An example method may comprise: receiving, by a first hypervisor running on a first computer system, a migration announcement from a virtual machine that is undergoing live migration from the first computer system to a second computer system; and transmitting a message comprising the migration announcement to a second hypervisor running on the second computer system.
Abstract: A migration system includes a memory, a physical processor in communication with the memory, a first device, a second device, a first hypervisor at a source location, a second hypervisor at a destination location, a first virtual machine, and a second virtual machine. The first virtual machine includes a guest OS executing on the first hypervisor and a guest driver and the second virtual machine includes the guest OS executing on the second hypervisor and the guest driver. The first and second hypervisors send a request to save a device state to the guest driver in the guest OS executing on the first hypervisor and send a migration notification to the guest OS executing on the second hypervisor. The guest driver saves a state signature in the memory. The guest driver determines a status of the state signature as one of matching the second device and mismatching the second device.
Abstract: Methods, systems, and computer program products are included for initiating deduplication of memory by virtual machine guests. A method includes providing a virtual machine, by a hypervisor, and running a guest on the virtual machine. The guest sends the hypervisor a scan indicator based on an amount of the virtual machine's memory that has been modified. Responsive to the scan indicator, the hypervisor triggers memory scanning and deduplication of memory pages that are identified by the memory scanning as storing identical content.
Abstract: A method includes determining a first host Non-Uniform Memory Access (NUMA) node of a plurality of host NUMA nodes on a host machine that provides a virtual machine to a guest, the first host NUMA node being associated with a pass-through device, creating a virtual NUMA node on the virtual machine, mapping the virtual NUMA node to the first host NUMA node, adding a virtual expander to a virtual root bus of the virtual machine, and associating the virtual expander with the virtual NUMA node.
Abstract: An event associated with a virtual machine may be identified. Furthermore, a script associated with the event may be identified. A property of a virtual device that is assigned to the virtual machine may be received. A determination may be made to execute the script or not to execute the script for the virtual machine based on the property of the virtual device that is assigned to the virtual machine.
Abstract: A system and method are disclosed for managing idle processors in virtualized systems. In accordance with one embodiment, a hypervisor executing on a host computer receives an anticipated idle time for a processor of the host computer system from a guest operating system of a virtual machine executing on the host computer system. When the anticipated idle time divided by a performance multiplier exceeds an exit time of a first power state of the processor, the processor is caused to be halted.
Abstract: A logical client includes a primary client device and one or more secondary client devices. Each of the secondary client devices may be coupled to one or more peripherals. The primary client in the logical client may use a virtual machine and/or an application that uses one or more peripheral devices. The primary client device may not be coupled to the one or more peripheral devices used by the application and/or the VM. The primary client device may access the peripheral devices coupled to secondary client devices in order to use the application and/or the VM.
Abstract: 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.
Abstract: A system and method for guest netfilter protection using a virtual machine function includes a memory, one or more processors, in communication with the memory, a virtual machine, a hypervisor, and a virtual network interface controller on the virtual machine. The virtual machine and the hypervisor are configured to execute on the one or more processors. The hypervisor is configured to boot a guest operating system on the virtual machine. Then, the guest operating system is configured to send a list of networking filter rules to a virtual machine function executing on the virtual machine. The virtual machine function is configured to store the list of networking filter rules in a virtual machine function memory. The hypervisor is further configured to prevent the guest operating system from directly accessing the virtual network interface controller and allow the virtual machine function to access the virtual network interface controller.
Abstract: Systems and methods for deferring registration for Direct Memory Access (DMA) operations. An example method comprises: receiving a memory region registration request identifying a memory region for a direct memory access (DMA) operation; generating a local key for the memory region; deferring registration of the memory region until receiving a DMA work request referencing the local key; and responsive to receiving the DMA work request, registering the memory region for DMA transfer.
Abstract: A multitenant network scheme system includes a memory, a physical processor in communication with the memory, an isolated guest on a host, a virtual switch, and a network interface controller. The isolated guest includes a virtual network interface controller (vNIC). The virtual switch includes a plurality ports, which include a northbound port, a communication port, and a southbound port. The northbound port is connected to a network having a respective network name. Additionally, the northbound port is associated with a virtual local area network (VLAN). The communication port is connected to the vNIC of the isolated guest and is associated with the VLAN. The network interface controller is connected to the southbound port.
Abstract: Systems and methods are provided for modifying a set of memory pages. An example method includes loading kernel code and patching code of a kernel into a guest memory. The patching code is stored at a first range of memory addresses, which is in an executable mode in a first set of hypervisor page tables. The method also includes detecting a demand to modify a set of memory pages and sending a request to the hypervisor to transfer control to the patching code in response to detecting the demand. The hypervisor may switch from the first set of hypervisor page tables to a second set of hypervisor page tables in response to detecting a request to transfer control to the patching code. The set of memory pages is write-protected in the second set of hypervisor page tables, and is writable in the first set of hypervisor page tables.
Abstract: An example method of assigning a task to a developer includes partitioning, based on a first set of developer attributes, a list of developers into a plurality of developer clusters. The method also includes for a plurality of tasks, identifying a set of developers assigned to the respective task, identifying a developer cluster including a greater number of developers from the respective set of developers than another developer cluster, and classifying the respective task as belonging to the respective developer cluster. The method further includes comparing attributes of classified tasks to a second set of attributes of a new task and selecting a classified task having a greater number of attributes that match the second set of attributes than another classified task, the classified task belonging to a first developer cluster. The method further includes assigning the new task to one or more developers included in the first developer cluster.
Abstract: Methods, systems, and computer program products are included for processing one or more buffers in a networking queue. An example method includes receiving one or more transmit requests or receive requests from a guest running on a virtual machine. The method also includes detecting that a networking backend has stopped processing buffers from a networking queue, each queued buffer corresponding to a transmit request or receive request. The method further includes in response to detecting that the networking backend has stopped processing buffers from the networking queue, flushing one or more buffers stored in the networking queue. A buffer corresponding to a receive request may be flushed by storing a set of dummy packets into the buffer. In contrast, a buffer corresponding to a transmit request may be flushed by discarding the buffer.
Abstract: A system, methods, and apparatus for using hypervisor trapping for protection against interrupts in virtual machine functions are disclosed. A system includes memory, one or more physical processors, a virtual machine executing on the one or more physical processors, and a hypervisor executing on the one or more physical processors. The hypervisor reads an interrupt data structure on the virtual machine. The hypervisor determines whether the interrupt data structure points to an alternate page view. Responsive to determining that the interrupt data structure points to an alternate page view, the hypervisor disables a virtual machine function.
Abstract: A hypervisor generates first and second page views, where a guest physical address points to a first page of the first page view and a second page of the second page view. A first pointer value is written to the first page and a second pointer value is written to the second page. A guest operating system executes a first task and if a determination to switch to the second task is made, the guest operating system reads a current pointer value and determines what the current page view is. If the guest operating system determines that the current page view is the first page view, the guest operating system saves the first pointer value in a first memory of the first task, loads the second pointer value from a second memory of the second task, and executes a virtual machine function to switch to the second page view.
Abstract: A computing device connects a first client device to a session of a virtual machine. The computing device subsequently connects a second client device to the session in response to a request from the second client device to access the virtual machine. The computing device may then disconnect the first device from the virtual machine session or disable one or more functions associated with the first client device.
Abstract: A hypervisor associates a combined register space with a virtual device to be presented to a guest operating system of a virtual machine, the combined register space comprising a default register space and an additional register space. Responsive to detecting an access of the additional register space by the guest operating system of the virtual machine, the hypervisor performs an operation on behalf of the virtual machine, the operation pertaining to the access of the additional register space.
Abstract: Mechanisms for snapshot management are provided. A request that requests that a first storage entity of type volume entity be generated is sent to an external storage service via an external interface. An entity chain associated with a virtual machine is generated. A first entry contains a first identifier (ID) that identifies the first storage entity, an entity type ID that identifies the first storage entity as a volume entity, and an active storage entity indicator. A first snapshot command is received. A request is sent to the external storage service via the external interface that requests that a second storage entity of type snapshot-volume entity be generated. A second entry is added to the entity chain that contains a second ID that identifies the second storage entity, an entity type ID that identifies the second storage entity as a snapshot-volume entity, and a reference to the first entry.