IP Library Granted Patent US 9,600,339
Granted Patent B2
US 9,600,339 · App. 14/839,256 · Granted Mar 21, 2017

Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters

Inventors: Narsimha R. Challa (Hyderabad, IN); Adam T. Stallman (Rochester, MN)
Assignee: International Business Machines Corporation
G06F9/5038G06F9/45558G06F9/5011G06F2009/45579
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 9,600,339
App. No.
14/839,256
Granted
Mar 21, 2017
Kind
B2
Abstract

A method utilizes priority-based bandwidth allocation to reallocate unused bandwidth capacity of a virtualized IO resource such as a self-virtualizing IO resource to one or more virtual functions in an allocation pool based upon priorities assigned to such virtual functions.

Claims (23)

1. A method of allocating shared bandwidth of a virtualized input/output (IO) resource in a logically-partitioned computer, the method comprising:

determining unused bandwidth capacity for an allocation pool that includes a plurality of virtual functions of the virtualized IO resource, wherein each of the plurality of virtual functions includes a priority associated therewith, wherein the virtualized IO resource comprises a self-virtualizing IO resource and includes one or more physical functions and multiple virtual functions contained by and sharing bandwidth resources of the one or more physical functions, and wherein the plurality of virtual functions are from among the multiple virtual functions of the virtualized IO resource; and

using at least one physical processor, reallocating the unused bandwidth capacity to at least one of the plurality of virtual functions in the allocation pool as additional bandwidth capacity based upon the priority associated with the at least one of the plurality of virtual functions.

2. The method of claim 1 , wherein the unused bandwidth capacity includes unallocated bandwidth capacity and allocated but not being actively used bandwidth capacity.

3. The method of claim 2 , wherein determining the unused bandwidth capacity for the allocation pool includes:

monitoring bandwidth capacity allocated and actively being used by virtual functions in the allocation pool;

monitoring bandwidth capacity allocated but not being actively used by virtual functions in the allocation pool; and

monitoring unallocated bandwidth capacity for the allocation pool.

4. The method of claim 3 , wherein monitoring bandwidth capacity allocated but not being actively used by virtual functions in the allocation pool includes determining bandwidth capacity allocated to virtual functions associated with inactive virtual machines.

5. The method of claim 3 , wherein reallocating the unused bandwidth capacity to the least one virtual function includes assigning the unused bandwidth capacity to virtual functions in decreasing order of priority starting with a highest priority virtual function first from the unallocated bandwidth capacity and second from the bandwidth capacity allocated but not being actively used by virtual functions in the allocation pool.

6. The method of claim 1 , wherein the allocation pool is associated with a physical function among the one or more physical functions of the virtualized IO resource, wherein the plurality of virtual functions are contained by the physical function, and wherein reallocating the unused bandwidth capacity includes sharing the unused bandwidth capacity of the physical function between at least two virtual functions contained by the physical function.

7. The method of claim 1 , wherein the allocation pool is associated with the virtualized IO resource, wherein the virtualized IO resource includes a virtual Ethernet bridge (VEB), wherein the plurality of virtual functions are of the virtualized IO resource, and wherein reallocating the unused bandwidth capacity includes sharing the unused bandwidth capacity of the virtualized IO resource between at least two virtual functions of the virtualized IO resource using the VEB.

8. The method of claim 1 , wherein the priority associated with the at least one virtual function is defined by a virtual machine priority attribute for a virtual machine with which the at least one virtual function is associated, the virtual machine priority attribute being user configurable and applicable to all virtual functions for the virtual machine.

9. The method of claim 1 , wherein the priority associated with the at least one virtual function is defined by a priority in physical function attribute, the priority in physical function attribute being user configurable to prioritize the at least one virtual function relative to other virtual functions contained by the same physical function among the one or more physical functions in the virtualized TO resource.

10. The method of claim 1 , wherein the priority associated with the at least one virtual function is defined by a priority in TO resource attribute, the priority in TO resource attribute being user configurable to prioritize the at least one virtual function relative to other virtual functions of the virtualized TO resource.

11. The method of claim 1 , further comprising updating an additional capacity used attribute for the at least one virtual function to track an amount of additional capacity reallocated to the at least one virtual function.

12. The method of claim 1 , further comprising, in response to a request to create a new virtual function when insufficient unallocated bandwidth is available for the virtualized TO resource, reclaiming reallocated unused bandwidth capacity from virtual functions in the allocation pool in increasing order of priority starting with a lowest priority virtual function to which unused bandwidth capacity has been reallocated.

13. The method of claim 1 , wherein reallocating the unused bandwidth capacity to the at least one virtual function includes determining whether an allocate unused bandwidth flag is set for the at least one virtual function or a virtual machine with which the at least one virtual function is associated.

14. The method of claim 1 , wherein reallocating the unused bandwidth capacity to the at least one virtual function is performed in response to creation or deletion of a virtual function in the allocation pool.

15. The method of claim 1 , wherein reallocating the unused bandwidth capacity to the at least one virtual function is performed in response to changing a priority of at least one virtual function in the allocation pool.

16. The method of claim 1 , wherein reallocating the unused bandwidth capacity to the at least one virtual function is performed in response to moving at least one virtual function in the allocation pool between virtual machines.

17. The method of claim 1 , wherein reallocating the unused bandwidth capacity to the at least one virtual function is performed by a hypervisor or an adjunct partition.

18. The method of claim 1 , wherein the virtualized IO resource comprises a single root input output virtualization (SRIOV) adapter.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2015
From: CHALLA, NARSIMHA R.; STALLMAN, ADAM T.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036461/0556 →
Continuity (2)
Continuation 14594258 · Jan 12, 2015
Related Publication 20160203027A1 · Jul 14, 2016