IP Library Granted Patent US 8,346,999
Granted Patent B2
US 8,346,999 · App. 12/638,538 · Granted Jan 1, 2013

Dynamic receive queue balancing with high and low thresholds

Assignee: Intel Corporation
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,346,999
App. No.
12/638,538
Granted
Jan 1, 2013
Kind
B2
Abstract

A method according to one embodiment includes the operations of assigning a network application to at least one first core processing unit, from among a plurality of core processing unit. The method of this embodiment also includes the operations of assigning a first receive queue to said first core processing unit, wherein the first receive queue is configured to receive packet flow associated with the network application; defining a high threshold for the first receive queue; and monitoring the packet flow in the first receive queue and comparing a packet flow level in the first receive queue to the high threshold; wherein if the packet flow level exceeds the threshold based on the comparing, generating a queue status message indicating that the packet flow level in the first queue has exceeded the queue high threshold.

Claims (48)

1. A method, comprising:

assigning a network application to at least one first core processing unit, from among a plurality of core processing units;

assigning a first receive queue to said first core processing unit, wherein the first receive queue is configured to receive packet flow associated with the network application;

defining a high threshold for the first receive queue, said high threshold defining a point above which said first receive queue is at risk of an overload condition;

monitoring the packet flow in the first receive queue and comparing a packet flow level in the first receive queue to the high threshold; wherein if the packet flow level exceeds the threshold based on the comparing, generating a queue status message indicating that the packet flow level in the first queue has exceeded the queue high threshold;

defining a low threshold for at least a second receive queue, the low threshold being a percentage of the overall capacity of the second receive queue and below the high threshold; and

monitoring a packet flow of the second receive queue and comparing a packet flow level of the second receive queue to the low threshold; wherein if the packet flow level in the second receive queue falls below the low threshold, generating the status message that further indicates that the packet flow level in the second queue is below the low threshold;

wherein if the packet flow level in the second queue remains above the low threshold, adjusting the low threshold incrementally upward a predetermined amount or until the low threshold is above the packet flow level in the second queue.

2. The method of claim 1 , further comprising:

generating, in response to the queue status message, a new core assignment to assign the network application to a second core processing unit;

generating a core/application message indicating the new assignment of the network application to the second core; and

assigning, in response to the new core/application assignment message, the packet flow associated with the network application to a second receive queue.

3. The method of claim 2 , further comprising:

moving packet information from the first receive queue to the second receive queue.

4. The method of claim 1 , further comprising:

waiting, before the queue status message is generated, for a predetermined time out period to lapse.

5. A system comprising, one or more non-transitory storage mediums having stored thereon, individually or in combination, instructions that when executed by one or more processors result in the following operations comprising:

assigning a first receive queue, from among a plurality of receive queues, to a packet flow, wherein the packet flow is associated with a network application, and wherein the network application is assigned to a first core processing unit, from among a plurality of core processing units;

defining a high threshold for the first receive queue, said high threshold defining a point above which said first receive queue is at risk of an overload condition;

monitoring the packet flow in the first receive queue and comparing a packet flow level in the first receive queue to the high threshold; wherein if the packet flow level exceeds the threshold based on the comparing, generating a queue status message indicating that the packet flow level in the first queue has exceeded the queue high threshold;

defining a low threshold for at least a second receive queue, the low threshold being a percentage of the overall capacity of the second receive queue and below the high threshold; and

monitoring a packet flow of the second receive queue and comparing a packet flow level of the second receive queue to the low threshold; wherein if the packet flow level in the second receive queue falls below the low threshold, generating the status message that further indicates that the packet flow level in the second queue is below the low threshold;

wherein if the packet flow level in the second queue remains above the low threshold, adjusting the low threshold incrementally upward a predetermined amount or until the low threshold is above the packet flow level in the second queue.

6. The system of claim 5 , wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:

generating, in response to the queue status message, a new core assignment to assign the network application to a second core processing unit;

generating a core/application message indicating the new assignment of the network application to the second core; and

assigning, in response to the new core/application assignment message, the packet flow associated with the network application to a second receive queue.

7. The system of claim 6 , wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:

moving packet information from the first receive queue to the second receive queue.

8. The system of claim 5 , wherein the instructions that when executed by one or more of the processors result in the following additional operations comprising:

waiting, before the queue status message is generated, for a predetermined time out period to lapse.

9. A network adapter, comprising:

media access control (MAC) circuitry and a plurality of receive queues, the MAC circuitry is configured to:

assign a first receive queue, from among a plurality of receive queues, to a packet flow, wherein the packet flow is associated with a network application, and wherein the network application is assigned to a first core processing unit, from among a plurality of core processing units in a host system;

define a high threshold for the first receive queue, said high threshold defining a point above which said first receive queue is at risk of an overload condition;

monitor the packet flow in the first receive queue;

compare a packet flow level in the first receive queue to the high threshold; wherein if the packet flow level exceeds the threshold based on the comparing, the MAC circuitry is further configured to generate a queue status message indicating that the packet flow level in the first queue has exceeded the queue high threshold;

define a low threshold for at least a second receive queue, the low threshold being a percentage of the overall capacity of the second receive queue and below the high threshold; and

monitor a packet flow of the second receive queue and comparing a packet flow level of the second receive queue to the low threshold; wherein if the packet flow level in the second receive queue falls below the low threshold, generating the status message that further indicates that the packet flow level in the second queue is below the low threshold;

wherein if the packet flow level in the second queue remains above the low threshold, said MAC circuitry is further configured to adjust the low threshold incrementally upward a predetermined amount or until the low threshold is above the packet flow level in the second queue.

10. The network adapter of claim 9 , wherein the MAC circuitry is further configured to:

receive from the host system, in response to the queue status message, a new core/application assignment message indicating that the network application is assigned to a second core processing unit; and

assign, in response to the new core/application assignment message, the packet flow associated with the network application to a second receive queue.

11. The network adapter of claim 10 , wherein the MAC circuitry is further configured to:

move packet information from the first receive queue to the second receive queue.

12. The network adapter of claim 9 , wherein the MAC circuitry is further configured to:

wait, before the queue status message is generated, for a predetermined time out period to lapse; and

forward the queue status message to the host system after the time out period has lapsed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2011
From: DUBAL, SCOTT P.; CONNOR, PATRICK; CHILAKALA, MALLIKARJUNA R.
To: INTEL CORPORATION
Reel/Frame 026051/0794 →
Continuity (1)
Related Publication 20110142064A1 · Jun 16, 2011