IP Library Granted Patent US 8,595,741
Granted Patent B2
US 8,595,741 · App. 13/420,641 · Granted Nov 26, 2013

System and method for accelerating input/output access operation on a virtual machine

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,595,741
App. No.
13/420,641
Granted
Nov 26, 2013
Kind
B2
Abstract

A system and method for accelerating input/output (IO) access operation on a virtual machine, The method comprises providing a smart IO device that includes an unrestricted command queue (CQ) and a plurality of restricted CQs and allowing a guest domain to directly configure and control IO resources through a respective restricted CQ, the IO resources allocated to the guest domain. In preferred embodiments, the allocation of IO resources to each guest domain is performed by a privileged virtual switching element. In some embodiments, the smart IO device is a HCA and the privileged virtual switching element is a Hypervisor.

Claims (25)

1. A method for accelerating input/output (IO) access operation on a virtual machine running on a host computer that has IO resources, comprising the steps of:

a. providing a smart IO device that includes an unrestricted command queue, a plurality of restricted command queues, each restricted command queue for configuring and controlling only a respective portion of the IO resources of the host computer, and a corresponding plurality of data queues separate from the restricted command queues;

b. by a hypervisor, allocating the respective portion of the IO resources of one of the restricted command queues to a guest domain through the unrestricted command queue, and

c. allowing the guest domain to directly configure and control the respective portion of the IO resources of the one restricted command queue through the one restricted command queue;

wherein said respective portion of said IO resources of only said one of the restricted command queues is allocated to said guest domain.

2. The method of claim 1 , wherein the step of allowing each guest domain to directly configure and control IO resources includes using a privileged virtual switching element to perform the allocation of IO resources through the unrestricted command queue and to export each restricted command queue to a respective guest domain.

3. The method of claim 2 , wherein the exporting is performed during an event selected from the group consisting of booting the guest domain and hot plugging while the guest domain is running.

4. The method of claim 2 , wherein the using a privileged virtual switching element to perform the allocation of IO resources includes using the privileged virtual switching element to allocate a particular address space to the respective guest domain, the address space being one of many supported by the smart IO device.

5. The method of claim 2 , wherein the using a privileged virtual switching element includes using a hypervisor.

6. The method of claim 1 , wherein, for each said restricted command queue, said respective portion of the IO resources of the host computer includes both input resources and output resources.

7. A method for accelerating input/output (I/O) access operation on a virtual machine running on a host computer that has IO resources, comprising the steps of:

a. in a smart IO device, providing a plurality of restricted command queues, each restricted command queue for configuring and controlling only a respective portion of the IO resources of the host computer, each restricted command queue associated with a respective guest domain and a separate respective data queue; and

b. using a hypervisor, allocating IO resources to each restricted command queue, whereby each guest domain may directly configure and control the respectively allocated IO resources of its associated restricted command queue while being isolated and protected from other guest domains;

wherein each said guest domain is associated with a single said restricted command queue.

8. The method of claim 7 , wherein the providing a plurality of restricted command queues, each associated with a respective guest domain is performed by the hypervisor.

9. The method of claim 7 , wherein the step of allocating partial IO resources to each restricted command queue includes, for each guest domain, configuring a respective translation table located in the smart IO device through its respective restricted command queue.

10. The method of claim 9 , wherein the configuring a respective translation table includes configuring a table that translates a guest domain physical address into a hardware (HW) physical address, thereby enabling to enforce allocation of physical memory for IO accesses.

11. The method of claim 7 , wherein, for each said restricted command queue, said respective portion of the IO resources of the host computer includes both input resources and output resources.

12. A system for accelerating input/output (IO) access operation on a virtual machine running on a host computer that has IO resources comprising:

a. a smart IO device that includes an unrestricted command queue, a plurality of restricted command queues and a corresponding plurality of data queues separate from the restricted command queues, each restricted command queue for configuring and controlling only a respective portion of the IO resources of the host computer, each restricted command queue operative to be associated with a respective guest domain; and

b. a configuring function operative to allocate only the respective portion of the IO resources of one of the restricted command queues to each guest domain; whereby the system enables each guest domain to directly configure and control only its respective IO resources, while being isolated and protected from all other guest domains accessing the virtual machine through the smart IO device; wherein the system is implemented in hardware;

wherein each said guest domain is associated with a single said restricted command queue.

13. The system of claim 12 , wherein the configuring function includes a hypervisor.

14. The system of claim 12 , wherein the smart IO device further includes a plurality of translation tables, each associated with a respective guest domain and operative to translate a guest domain virtual physical address to a hardware physical address.

15. The system of claim 12 , wherein, for each said restricted command queue, said respective portion of the IO resources of the host computer includes both input resources and output resources.

Assignments (2)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →