IP Library › Granted Patent US 10,970,099
Granted Patent B2
US 10,970,099 · App. 15/942,152 · Granted Apr 6, 2021

Adaptive virtual function drivers for electronic devices

Inventors: Anjali Singhai Jain (Portland, OR); Mitu Aggarwal (Portland, OR); Parthasarathy Sarangam (Portland, OR); Donald Wood (Austin, TX); Jesse Brandeburg (Portland, OR); Mitchell A. Williams (Hillsboro, OR)
Assignee: INTEL CORPORATION
G06F9/45537G06F8/63G06F13/102G06F9/45558
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 10,970,099
App. No.
15/942,152
Granted
Apr 6, 2021
Kind
B2
Abstract

Techniques for providing adaptive virtual function (VF) drivers capable of operating with physical devices having a plurality of different hardware configurations are described. In one embodiment, for example, an apparatus may include logic to implement a virtual machine (VM), the logic to initialize an adaptive virtual function (VF) driver to facilitate communication between the VM and a physical device to be virtualized, establish communication between the adaptive VF driver and a physical function (PF) driver of the hypervisor for the physical device, activate a standard feature set for the adaptive VF driver to execute on a PF of the physical device, and negotiate activation of an advanced feature set for the adaptive VF driver to execute on the PF, the adaptive VF driver to provide the advanced feature set to the PF, the PF activate each feature of the advanced feature set supported by the PF.

Claims (40)

1. An apparatus, comprising:

at least one memory;

at least one processor; and

logic to implement a virtual machine (VM), at least a portion of the logic comprised in hardware coupled to the at least one memory and the at least one processor, the logic to:

initialize an adaptive virtual function (VF) driver to facilitate communication between the VM and a physical device to be virtualized by a hypervisor operating on the apparatus;

establish communication between the adaptive VF driver and a physical function (PF) driver of the hypervisor for the physical device;

activate a standard feature set for the adaptive VF driver to execute on a PF of the physical device; and

negotiate activation of an advanced feature set for the adaptive VF driver to execute on the PF, the adaptive VF driver to provide the advanced feature set to the PF, the PF to activate each feature of the advanced feature set supported by the PF.

2. The apparatus of claim 1 , the standard feature set comprising a minimum set of features required for operation of the adaptive VF driver.

3. The apparatus of claim 1 , the standard feature set comprising at least one of checksum offload, transmission control protocol (TCP) segmentation offload, multi-queue device interface, or receive side scaling.

4. The apparatus of claim 1 , the PF driver operative as a proxy for the adaptive VF driver to configure the physical device.

5. The apparatus of claim 1 , the PF driver to provide control plane functionality for the physical device to the adaptive VF driver.

6. The apparatus of claim 5 , comprising a control plane comprising a software protocol between the adaptive VF driver and the PF driver.

7. The apparatus of claim 5 , the control plane comprising a software control path managed by a virtual switch.

8. The apparatus of claim 1 , the logic to disable each feature of the advanced feature set not supported by the PF.

9. The apparatus of claim 1 , the logic to provide communication between the physical device and the PF via a hardware mailbox process.

10. The apparatus of claim 1 , the logic to provide data communication between the adaptive VF driver and the physical device via at least one of direct memory access (DMA) or fast path registers.

11. A method to implement a virtual machine (VM), the method comprising:

initializing an adaptive virtual function (VF) driver to facilitate communication between the VM and a physical device to be virtualized by a hypervisor;

establishing communication between the adaptive VF driver and a physical function (PF) driver of the hypervisor for the physical device;

activating a standard feature set for the adaptive VF driver to execute on a PF of the physical device; and

negotiating activation of an advanced feature set for the adaptive VF driver to execute on the PF, the adaptive VF driver to provide the advanced feature set to the PF, the PF to activate each feature of the advanced feature set supported by the PF.

12. The method of claim 11 , the standard feature set comprising a minimum set of features required for operation of the adaptive VF driver.

13. The method of claim 11 , the standard feature set comprising at least one of checksum offload, transmission control protocol (TCP) segmentation offload, multi-queue device interface, or receive side scaling.

14. The method of claim 11 , the PF driver operative as a proxy for the adaptive VF driver to configure the physical device.

15. The method of claim 11 , the PF driver to provide control plane functionality for the physical device to the adaptive VF driver.

16. The method of claim 15 , comprising a control plane comprising a software protocol between the adaptive VF driver and the PF driver.

17. The method of claim 15 , the control plane comprising a software control path managed by a virtual switch.

18. The method of claim 11 , comprising disabling each feature of the advanced feature set not supported by the PF.

19. The method of claim 11 , comprising providing communication between the physical device and the PF via a hardware mailbox process.

20. The method of claim 11 , comprising providing data communication between the adaptive VF driver and the physical device via at least one of direct memory access (DMA) or fast path registers.

21. A non-transitory computer-readable storage medium that stores computer-executable instructions for execution by processing circuitry of a computing device, the computer-executable instructions, when executed, to cause the computing device to:

initialize an adaptive virtual function (VF) driver to facilitate communication between a virtual machine (VM) and a physical device to be virtualized by a hypervisor operating on the computing device;

establish communication between the adaptive VF driver and a physical function (PF) driver of the hypervisor for the physical device;

activate a standard feature set for the adaptive VF driver to execute on a PF of the physical device; and

negotiate activation of an advanced feature set for the adaptive VF driver to execute on the PF, the adaptive VF driver to provide the advanced feature set to the PF, the PF to activate each feature of the advanced feature set supported by the PF.

22. The non-transitory computer-readable storage medium of claim 21 , the standard feature set comprising a minimum set of features required for operation of the adaptive VF driver.

23. The non-transitory computer-readable storage medium of claim 21 , the standard feature set comprising at least one of checksum offload, transmission control protocol (TCP) segmentation offload, multi-queue device interface, or receive side scaling.

24. The non-transitory computer-readable storage medium of claim 21 , the PF driver operative as a proxy for the adaptive VF driver to configure the physical device.

25. The non-transitory computer-readable storage medium of claim 21 , the PF driver to provide control plane functionality for the physical device to the adaptive VF driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2018
From: SINGHAI JAIN, ANJALI; AGGARWAL, MITU; SARANGAM, PARTHASARATHY; WOOD, DONALD; BRANDEBURG, JESSE; WILLIAMS, MITCHELL A.
To: INTEL CORPORATION
Reel/Frame 045782/0480 →
Continuity (2)
Provisional Application 62513625 · Jun 1, 2017
Related Publication 20180349161A1 · Dec 6, 2018