IP Library › Granted Patent US 7,979,507
Granted Patent B2
US 7,979,507 · App. 11/964,786 · Granted Jul 12, 2011

Transmit scaling using multiple queues

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 7,979,507
App. No.
11/964,786
Granted
Jul 12, 2011
Kind
B2
Abstract

According to some embodiments, it may be determined, at a first processing element of a device with a plurality of processing elements, that first data is to be transmitted in association with a first network connection. A first entry associated with the first data may then be stored into a first of a plurality of transmit queues. It may subsequently be determined, at a second processing element of the device, that second data is to be transmitted in association with the first network connection. A second entry associated with the second data may then be stored into a second of the plurality of transmit queues.

Claims (20)

1. A method, comprising:

receiving an indication that data is to be transmitted for a first application thread executing on a first of a plurality of processing elements in a device;

creating, at a network stack portion, payload and header information associated with the data to be transmitted;

providing, from the network stack portion to an interface device driver: (i) a sequence identifier associated with a prior transmit operation for the first application thread, and (ii) synchronization information received from the interface device driver via an opaque data structure;

identifying, at the interface device driver, the first processing element and a first of a plurality of transmit queues;

creating, at the interface device driver, a first descriptor, including the information received from the network stack portion;

calculating at the interface device driver a next available index in the first transmit queue where the first descriptor is to be inserted; and

providing, from the interface device driver to the network stack portion via the opaque data structure, an indication of the next available index;

providing, from the interface device driver to an interface device, a transmit initiation indication including an identifier of the first transmit queue;

pulling, at the interface device, data from the first transmit queue identified by the transmit initiation indication;

comparing the transmit queue of the last operation with the first transmit queue; and

if the transmit queue of the last operation is the same as the first transmit queue, proceeding to process transmit operations for the first transmit queue;

if the transmit queue of the last operation is not the same as the first transmit queue:

determining whether an index in the transmit queue of the last operation points to a prior descriptor that has been processed, and

if the index in the transmit queue of the last operation points to a prior descriptor that has not yet been processed, processing the prior descriptor, and

if the index in the transmit queue of the last operation points to a prior descriptor that has been processed, processing the current descriptor.

2. The method of claim 1 , wherein the data to be transmitted is associated with at least one of: (i) a stream oriented protocol, or (ii) transport control protocol information.

3. The method of claim 1 , wherein the opaque data structure is associated with at least one of: (i) an application specific communication context, (ii) a socket structure, or (iii) a transport control block structure.

4. The method of claim 1 , wherein the interface device is associated with a network interface card.

5. The method of claim 1 , wherein the transmit initiation is associated with at least one of: (i) a doorbell ringing operation, or (ii) a memory-mapped input output write to a device register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2010
From: VASUDEVAN, ANIL; SEN, SUJOY; SARANGAM, PARTHA
To: INTEL CORPORATION
Reel/Frame 023940/0766 →
Continuity (1)
Related Publication 20090172178A1 · Jul 2, 2009