Patent classifications
G06F9/45554
Using a NIC as a network accelerator to allow VM access to an external storage via a PF module, bus, and VF module
Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (NIC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC that is not only used to access the set of external storages but also for forwarding packets not related to an external storage. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.
EFFICIENT ADDRESS TRANSLATION
An example system includes: interface circuitry; programmable circuitry; and instructions to cause the programmable circuitry to: reserve first memory addresses of a host system, the first memory addresses reserved for emulation of a guest system, the guest system based on a first instruction set architecture that is different from a second instruction set architecture of the host system; reserve second memory addresses of the host system that are contiguous with the first memory addresses, the second memory addresses reserved for a first emulated memory access instruction associated with an overflow in the guest system; reserve third memory addresses of the host system for a second emulated memory access instruction associated with an underflow in the guest system; and set memory access privileges of the second and third memory addresses to prevent at least one of a read, a write, or an execution access for the second and third memory addresses.
Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
In a processor supporting execution of a plurality of functions of an instruction, an instruction blocking value is set for blocking one or more of the plurality of functions, such that an attempt to execute one of the blocked functions, will result in a program exception and the instruction will not execute, however the same instruction will be able to execute any of the functions that are not blocked functions.
Creating virtual machine snapshots without interfering with active user sessions
Systems and methods for creating virtual machine snapshots. An example method comprises: receiving a request to create a snapshot of a virtual machine running on a host computer system; protecting from modification a plurality of virtual memory pages of the virtual machine; responsive to detecting an attempt to modify a virtual memory page of the plurality of memory pages, copying the virtual memory page to a queue residing in a random access memory (RAM) of the host computer system; making the virtual memory page writable; retrieving the virtual memory page from the queue; writing the virtual memory page to a disk of the host computer system; and responsive to exhausting the queue, completing creation of the snapshot of the virtual machine.
Using physical and virtual functions associated with a NIC to access an external storage through network fabric driver
Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (NIC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC that is not only used to access the set of external storages but also for forwarding packets not related to an external storage. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.
FOCUS SYNCHRONIZATION ACROSS INCOMPATIBLE OPERATING SYSTEMS
The techniques disclosed herein synchronize focus between two operating systems that run concurrently. A proxy application running on a primary operating system (OS) presents a guest application running in a secondary OS as if it was native to the primary OS. User interface events received by the proxy application are forwarded to the corresponding guest application. Each OS independently identifies which application currently has focus. When the primary OS is focused on a proxy application, focus is synchronized by setting and maintaining the focus of the secondary OS to the corresponding guest application. When the primary OS is not focused on a proxy application, the focus of the secondary OS is set to a stub placeholder application. Keeping focus synchronized prevents user interface events received by the proxy application from being forwarded to the wrong application on the secondary OS.
Accessing an external storage through a NIC
Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (MC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.
Accessing multiple external storages to present an emulated local storage through a NIC
Some embodiments provide a method of providing distributed storage services to a host computer from a network interface card (NIC) of the host computer. At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC that is not only used to access the set of external storages but also for forwarding packets not related to an external storage. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.
Efficient address translation
One embodiment provides a device. The device includes a processor; a memory; and translator logic. The processor is to execute a host instruction set. The translator logic is to determine whether an offset is a constant and whether the offset is greater than zero and less than a maximum offset in response to receiving a guest memory access instruction that contains a base address plus or minus the offset, the maximum offset related to at least one of a host instruction set architecture (ISA) and a guest ISA.
Simulation method and simulation system
A simulation method and a simulation system are provided. The simulation system may be divided into an execution model and a processor model based on a JIT emulation engine. The execution model can call the JIT emulation engine to execute instructions, and obtain influence of instructions on a processor architectural status. The processor model may simulate an internal process of a target processor and determine whether to start/end a speculation. The execution model and the processor model may interact through a specific protocol. After the speculation is started, the simulation method may store an application running scene when the speculation is started, and redirect influence of speculation instructions on a memory to a memory snapshot. After the speculation is ended, the simulation method may also restore the application running scene to a status before the speculation is started, and cancel influence of the speculation instructions on the memory.