IP Library Granted Patent US 9,569,383
Granted Patent B2
US 9,569,383 · App. 14/489,944 · Granted Feb 14, 2017

Method of handling network traffic through optimization of receive side scaling

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,569,383
App. No.
14/489,944
Granted
Feb 14, 2017
Kind
B2
Abstract

An information handling system includes a plurality of processors that each includes a cache memory, and a receive side scaling (RSS) indirection table with a plurality of pointers that each points to one of the processors. A network data packet received by the information handling system determines a pointer to a first processor. In response to determining the pointer, information associated with the network data packet is transferred to the cache memory of the first processor. The information handling system also includes a process scheduler that moves a process associated with the network data packet from a second processor to the first processor, and an RSS module that directs the process scheduler to move the process and associates the first pointer with the processor in response to directing the process scheduler.

Claims (99)

1. An network interface device comprising:

a receive side scaler that:

provides a first pointer of a plurality of pointers to point to a first processor of a plurality of processors, wherein each pointer identifies a respective processor; and

provides a first interrupt of a plurality of interrupts to be associated with the first processor, wherein each interrupt is associated with a respective processor;

wherein the network interface device:

receives a first data packet;

selects the first pointer in response to receiving the first network data packet;

transfers the first data packet to the first processor in response to selecting the first pointer; and

provides the first interrupt to the first processor in response to transferring the first data packet; and

wherein the receive side scaler further:

directs a process scheduler to move a process associated with the first data packet from the first processor to a second processor of the plurality of processors; and

in response to directing the process scheduler, to:

changes the first pointer to point to a second processor of the plurality of processors; and

changes the association of the first interrupt to be associated with the second processor.

2. The network interface device of claim 1 , wherein the

network interface device further:

receives a second data packet associated with the process;

selects the first pointer in response to receiving the second data packet;

transfers the second network data packet to the second processor in response to selecting the first pointer; and

provides the first interrupt to the second processor in response to transferring the second network data packet.

3. The network interface device of claim 1 , further comprising:

a hash typer that implements a plurality of hash type operations, wherein each hash type operation selects a field of the first data packet;

wherein:

selecting the first pointer is in response to the hash typer implementing a first hash type operation of the plurality of hash type operations; and

the receive side scaler further selects the first hash type operation.

4. The network interface device of claim 1 , further comprising:

a hash function operator that implements a plurality of hash function operations,

wherein each hash function operation selects a hash function to perform on the first network data packet;

wherein:

selecting the first pointer is in response to the hash function operator implementing a first one of the hash function operations; and

the receive side scaler further selects the first hash function operation.

5. The network interface device of claim 4 , wherein the receive side scaler selects the first hash function operation in response to determining a load on the first processor.

6. The network interface device of claim 1 , wherein:

the receive side scaler further:

provides a second pointer of the plurality of pointers to point to a second processor of the plurality of processors; and

provides a second interrupt of the plurality of interrupts to be associated with the second processor;

wherein the network interface device further:

receives a second data packet;

selects the second pointer in response to receiving the second data packet;

transfers the second data packet to the second processor in response to selecting the second pointer; and

provides the second interrupt to the second processor in response to transferring the second network data packet.

7. A method comprising:

providing, by a receive side scaling (RSS) module of a network interface device, a first pointer of a plurality of pointers to point to a first processor of a plurality of processors, wherein each pointer identifies a respective processor;

providing, by the RSS module, a first interrupt of a plurality of interrupts to be associated with the first processor, wherein each interrupt is associated with a respective processor;

receiving, by the network interface device, a first data packet;

selecting, by the network interface device, the first pointer in response to receiving the first data packet;

transferring, by the network interface device, the first data packet to the first processor in response to selecting the first pointer;

providing, by the network interface device, the first interrupt to the first processor in response to transferring the first data packet;

directing, by the RSS module, a process scheduler to move a process associated with the first data packet from the first processor to a second processor of the plurality of processors;

in response to directing the process scheduler:

changing, by the RSS module, the first point to point to a second processor of the plurality of processors; and

changing, by the RSS module, the association of the first interrupt to be associated with the second processor;

receiving, by the network interface device, a second data packet associated with the process;

selecting, by the network interface device, the first pointer in response to receiving the second data packet;

transferring, by the network interface device, the second network data packet to the second processor in response to selecting the first pointer; and

providing, by the network interface device, the first interrupt to the second processor in response to transferring the second network data packet.

8. The method of claim 7 , further comprising:

implementing, by a hash type module, a plurality of hash type operations, each hash type operation being operable to select a field of the first data packet; and

selecting, by the RSS module, a first hash type operation of the plurality of hash type operations;

wherein selecting the first pointer is in response to the hash type module implementing the first hash type operation.

9. The method of claim 7 , further comprising:

implementing, by a hash function module, a plurality of hash function operations, each hash function operation being operable to select a hash function to perform on the first network data packet; and

selecting, by the RSS module, a first hash function operation of the plurality of hash function operations;

wherein selecting the first pointer is in response to the hash function module implementing the first hash function operation.

10. The method of claim 9 , further comprising:

selecting, by the RSS module, the first hash function operation in response to determining a load on the first processor.

11. The method of claim 7 , further comprising:

providing, by the RSS module, a second pointer of the plurality of pointers to point to a second processor of the plurality of processors;

providing, by the RSS module, a second interrupt of the plurality of interrupts to be associated with the second processor;

receiving, by the network interface device, a second data packet;

selecting, by the network interface device, the second pointer in response to receiving the second data packet;

transferring, by the network interface device, the second data packet to the second processor in response to selecting the second pointer; and

providing, by the network interface device, the second interrupt to the second processor in response to transferring the second data packet.

12. A non-transitory computer-readable medium including code for performing a method, the method comprising:

providing, by a receive side scaling (RSS) module of a network interface device, a first pointer of a plurality of pointers to point to a first processor of a plurality of processors, wherein each pointer identifies a respective processor;

providing, by the RSS module, a first interrupt of a plurality of interrupts to be associated with the first processor, wherein each interrupt is associated with a respective processor;

receiving, by the network interface device, a first data packet;

selecting, by the network interface device, the first pointer in response to receiving the first data packet;

transferring, by the network interface device, the first data packet to the first processor in response to selecting the first pointer;

providing, by the network interface device, the first interrupt to the first processor in response to transferring the first data packet;

directing, by the RSS module, a process scheduler to move a process associated with the first data packet from the first processor to a second processor of the plurality of processors; and

in response to directing the process scheduler:

changing, by the RSS module, the first point to point to a second processor of the plurality of processors; and

changing, by the RSS module, the association of the first interrupt to be associated with the second processor.

13. The computer-readable medium of claim 12 , the method further comprising:

receiving, by the network interface device, a second data packet associated with the process;

selecting, by the network interface device, the first pointer in response to receiving the second data packet;

transferring, by the network interface device, the second network data packet to the second processor in response to selecting the first pointer; and

providing, by the network interface device, the first interrupt to the second processor in response to transferring the second network data packet.

14. The computer-readable medium of claim 12 , the method further comprising:

implementing, by a hash type module, a plurality of hash type operations, each hash type operation being operable to select a field of the first data packet; and

selecting, by the RSS module, a first hash type operation of the plurality of hash type operations;

wherein selecting the first pointer is in response to the hash type module implementing the first hash type operation.

15. The computer-readable medium of claim 12 , the method further comprising:

implementing, by a hash function module, a plurality of hash function operations, each hash function operation being operable to select a hash function to perform on the first network data packet; and

selecting, by the RSS module, a first hash function operation of the plurality of hash function operations;

wherein selecting the first pointer is in response to the hash function module implementing the first hash function operation.

16. The computer-readable medium of claim 15 , the method further comprising:

selecting, by the RSS module, the first hash function operation in response to determining a load on the first processor.

Assignments (14)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 034590 FRAME 0731 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL PRODUCTS L.P.
Reel/Frame 040027/0070 →
RELEASE OF REEL 034591 FRAME 0391 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL PRODUCTS L.P.
Reel/Frame 040027/0719 →
RELEASE OF REEL 034590 FRAME 0696 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL PRODUCTS L.P.
Reel/Frame 040016/0964 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Dec 10, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 034591/0391 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 10, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 034590/0731 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Dec 10, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 034590/0696 →