IP Library Granted Patent US 7,448,044
Granted Patent B1
US 7,448,044 · App. 11/050,138 · Granted Nov 4, 2008

Systems and methods for efficient queue pair number re-use

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 7,448,044
App. No.
11/050,138
Granted
Nov 4, 2008
Kind
B1
Abstract

Systems and methods are described for providing queue pair numbers for a queue pair to more effectively track and manage the frequency of use and re-use of queue pair numbers on a queue pair context basis in an InfiniBand™ device. The present invention uses a counter for each queue pair context to set the changeable portion of the queue pair number. A reference count for each queue pair context is also used to track the quantity of queue pair numbers currently allocated to a queue pair context. The present invention sets, tracks and manages the values of the counter and the reference count for each queue pair context in conjunction with queue pair operations to provide a systematic queue pair numbering scheme. By tracking and/or setting values of the counter and reference count for a queue pair context, the present invention re-uses queue pair numbers efficiently and in a predictable and repeatable manner.

Claims (50)

1. In an electronic device, a method comprising the steps of:

providing an identifier for a queue pair, the queue pair associated with a context, the identifier comprising a first portion and a second portion;

setting the first portion of the identifier to a value, the value taken from a counter, the counter containing a value to be used for a first portion of an identifier associated with the context; and

setting a value of a reference counter to indicate one or more identifiers are associated with the context.

2. The method of claim 1 , comprising:

detecting that a further identifier is provided, the further identifier associated with the context; and

in response, incrementing the reference counter.

3. The method of claim 1 , comprising:

determining from the reference counter that an identifier is not associated with the context; and

in response, setting the counter to an initial value.

4. The method of claim 3 , wherein determining comprises:

determining that the counter has reached a maximum value.

5. The method of claim 1 , comprising:

detecting that an identifier is no longer associated with the context; and

in response, decrementing the reference counter.

6. The method of claim 5 comprising:

prior to detecting, performing a freeing operation to release the identifier from association with the context.

7. The method of claim 1 , comprising:

detecting that the counter is less than a maximum value; and

in response, assigning the identifier to the queue pair.

8. The method of claim 1 , comprising:

detecting that the counter reaches a maximum value;

determining that the reference counter indicates that an identifier is not associated with the context; and

re-using a current identifier for a second queue pair, the second queue pair associated with the context.

9. The method of claim 1 , wherein the context comprises a queue pair context and the second portion of the identifier provides an index into a portion of a communication interface storing information associated with the queue pair.

10. The method of claim 1 comprising:

incrementing the counter so that value contained in the counter may be used to set a first portion of a subsequently provided identifier.

11. The method of claim 10 comprising:

performing a queue pair allocation operation; and

in response, providing a subsequent identifier, wherein a first portion of the subsequent identifier is set to the value contained in the counter.

12. A network device comprising

a queue pair used by the network device;

a context having information associated with the queue pair;

a mechanism for assigning an identifier to the queue pair associated with the context, the identifier comprising a first portion and a second portion;

a counter containing a value to be used for setting a first portion of an identifier associated with the context; and

a reference counter;

wherein the mechanism:

sets the first portion of the identifier to the value of the counter; and

sets a value to the reference counter to indicate one or more identifiers are allocated to the context.

13. The network device of claim 12 , wherein the mechanism detects that the counter is less than a maximum value and, in response, assigns the identifier to the queue pair.

14. The network device of claim 12 , wherein the mechanism detecting that a further identifier is provided, the further identifier associated with the context, and in response, increments the reference counter.

15. The network device of claim 12 , wherein the mechanism determines from the reference counter that an identifier is not associated with the context, and in response, sets the counter to an initial value.

16. The network device of claim 15 , wherein the mechanism also determines that the counter has reached a maximum value and sets the counter to an initial value.

17. The network device of claim 12 , wherein the mechanism detects that the counter reaches a maximum value, determines that the reference counter indicates that an identifier is not associated with the context, and re-uses the identifier for a second queue pair, the second queue pair associated with the context.

18. The network device of claim 12 , wherein the mechanism detects that an identifier is no longer associated with the context, and in response, decrements the reference counter.

19. The network device of claim 12 , wherein the context comprises a queue pair context and the second portion of the identifier provides an index into a portion of a communication interface storing information associated with the queue pair.

20. A computer program product, stored on computer readable medium comprising:

computer program code for providing an identifier for a queue pair, the queue pair associated with a context, the identifier comprising a first portion and a second portion;

computer program code for setting the first portion of the identifier to a value, the value taken from a counter, the counter containing a value to be used for a first portion of an identifier associated with the context; and

computer program code for setting a value of a reference counter to indicate one or more identifiers are associated with the context.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2005
From: RUST, STEPHEN T.; JAY, STEPHEN A.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016254/0877 →