IP Library › Granted Patent US 11,474,916
Granted Patent B2
US 11,474,916 · App. 16/211,955 · Granted Oct 18, 2022

Failover of virtual devices in a scalable input/output (I/O) virtualization (S-IOV) architecture

Inventors: Mitu Aggarwal (Portland, OR); Nrupal Jani (Hillsboro, OR); Manasi Deval (Portland, OR); Kiran Patil (Portland, OR); Parthasarathy Sarangam (Portland, OR); Rajesh M. Sankaran (Portland, OR); Sanjay K. Kumar (Hillsboro, OR); Utkarsh Y. Kakaiya (Folsom, CA); Philip Lantz (Cornelius, OR); Kun Tian (Shanghai, CN)
Assignee: Intel Corporation
G06F11/2023G06F3/0622G06F3/0631G06F3/0659G06F3/0673G06F9/45558G06F9/4856G06F11/2007G06F13/1668G06F13/4068G06F13/4221G06F13/4282G06F15/17331G06F2009/4557G06F2009/45562G06F2009/45579G06F2009/45583G06F2009/45595G06F2201/805G06F2201/815G06F2213/0026
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 11,474,916
App. No.
16/211,955
Granted
Oct 18, 2022
Kind
B2
Abstract

Examples include a method of performing failover of in an I/O architecture by allocating a first set of resources, associated with a first port of a physical device, to a virtual device, allocating a second set of resources, associated with a second port of the physical device, to the virtual device, assigning the virtual device to a virtual machine, activating the first set of resources, and transferring data between the virtual machine and the first port using the virtual device and the first set of resources. The method further includes detecting an error in the first set of resources, deactivating the first set of resources and activating the second set of resources, and transferring data between the virtual machine and the second port using the virtual device and the second set of resources.

Claims (67)

1. A method comprising:

allocating a first set of resources, associated with a first port of a physical device, to a virtual device;

allocating a second set of resources, associated with a second port of the physical device, to the virtual device;

assigning the virtual device to a virtual machine;

activating the first set of resources, wherein transfer of data between the virtual machine and the first port occurs using the virtual device and the first set of resources;

detecting a condition associated with the first set of resources; and

based on detection of the condition:

deactivating the first set of resources and activating the second set of resources and

causing transfer of data between the virtual machine and the second port using the virtual device and the second set of resources.

2. The method of claim 1 , wherein the first set of resources and the second set of resources comprise queues to store data being transferred between the virtual machine and one or more ports.

3. The method of claim 1 , wherein the virtual device comprises a virtual network interface controller.

4. The method of claim 1 , wherein the virtual device comprises a virtual storage controller.

5. The method of claim 4 , wherein the physical device comprises an input/output (I/O) device.

6. The method of claim 5 , wherein the I/O device comprises a network interface controller (NIC).

7. The method of claim 1 , wherein a virtual device composition module is consistent with Scalable Input/Output (I/O) Virtualization (S-IOV) and performs one or more of:

allocating a first set of resources, associated with a first port of a physical device, to a virtual device;

allocating a second set of resources, associated with a second port of the physical device, to the virtual device;

assigning the virtual device to a virtual machine;

activating the first set of resources;

detecting a condition associated with the first set of resources; or

based on detection of the condition: deactivating the first set of resources and activating the second set of resources and causing transfer of data between the virtual machine and the second port using the virtual device and the second set of resources.

8. The method of claim 1 , wherein the condition comprises an error or failure.

9. At least one tangible non-transitory machine-readable medium comprising a plurality of instructions that in response to being executed by a processor cause the processor to:

allocate a first set of resources, associated with a first port of a physical device, to a virtual device;

allocate a second set of resources, associated with a second port of the physical device, to the virtual device;

assign the virtual device to a virtual machine;

activate the first set of resources, wherein data is transferred between the virtual machine and the first port using the virtual device and the first set of resources;

detect a condition associated with the first set of resources; and

based on detection of the condition:

deactivate the first set of resources and activate the second set of resources and

cause data transfer between the virtual machine and the second port using the virtual device and the second set of resources.

10. The at least one tangible machine-readable medium of claim 9 , wherein the first set of resources and the second set of resources comprise queues to store data being transferred between the virtual machine and one or more ports.

11. The at least one tangible machine-readable medium of claim 9 , wherein the virtual device comprises a virtual network interface controller.

12. The at least one tangible machine-readable medium of claim 9 , wherein the virtual device comprises a virtual storage controller.

13. The at least one tangible machine-readable medium of claim 12 , wherein the physical device comprises an input/output (I/O) device.

14. The at least one tangible machine-readable medium of claim 13 , wherein the I/O device comprises a network interface controller (NIC).

15. The at least one tangible machine-readable medium of claim 9 , wherein a virtual device composition module consistent with Scalable Input/Output (I/O) Virtualization (S-IOV) performs one or more of:

allocate a first set of resources, associated with a first port of a physical device, to a virtual device;

allocate a second set of resources, associated with a second port of the physical device, to the virtual device;

assign the virtual device to a virtual machine;

activate the first set of resources;

detect a condition associated with the first set of resources; or

based on detection of the condition:

deactivate the first set of resources and activate the second set of resources and

cause data transfer between the virtual machine and the second port using the virtual device and the second set of resources.

16. The at least one tangible machine-readable medium of claim 9 , wherein the condition comprises an error or failure.

17. An apparatus comprising:

at least one processor to execute a virtual machine and a virtual device composition module, wherein

the virtual device composition module is coupled to the virtual machine and the virtual device composition module is to:

allocate a first set of resources, associated with a first port of a physical device, to a virtual device;

allocate a second set of resources, associated with a second port of the physical device, to the virtual device;

assign the virtual device to a virtual machine;

activate the first set of resources, wherein data is transferred between the virtual machine and the first port using the virtual device and the first set of resources;

detect a condition associated with the first set of resources;

based on detection of the condition:

deactivate the first set of resources and activate the second set of resources; and

cause data transfer between the virtual machine and the second port using the virtual device and the second set of resources.

18. The apparatus of claim 17 , wherein the first set of resources and the second set of resources comprise queues to store data being transferred between the virtual machine and one or more ports.

19. The apparatus of claim 17 , wherein the virtual device comprises a virtual network interface controller.

20. The apparatus of claim 17 , wherein the virtual device comprises a virtual storage controller.

21. The apparatus of claim 17 , wherein the virtual device comprises a virtual graphics processing unit.

22. The apparatus of claim 17 , wherein the virtual device comprises a virtual reconfigurable field programmable gate array.

23. The apparatus of claim 17 , wherein the virtual device comprises a virtual remote direct memory access capable device.

24. The apparatus of claim 23 , wherein the physical device comprises an input/output (I/O) device.

25. The apparatus of claim 24 , wherein the I/O device comprises a network interface controller (NIC).

26. The apparatus of claim 17 , wherein the condition comprises an error or failure.

27. The apparatus of claim 17 , wherein the virtual device composition module is consistent with Scalable Input/Output (I/O) Virtualization (S-IOV).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2019
From: AGGARWAL, MITU; JANI, NRUPAL; DEVAL, MANASI; PATIL, KIRAN; SARANGAM, PARTHASARATHY; SANKARAN, RAJESH M.; KUMAR, SANJAY K.; KAKAIYA, UTKARSH Y.; LANTZ, PHILIP; TIAN, KUN
To: INTEL CORPORATION
Reel/Frame 048612/0865 →
Continuity (2)
Provisional Application 62721483 · Aug 22, 2018
Related Publication 20190108106A1 · Apr 11, 2019