IP Library Granted Patent US 10,419,447
Granted Patent B2
US 10,419,447 · App. 15/729,805 · Granted Sep 17, 2019

Real-time adaptive receive side scaling key selection

Inventors: Chih-Wen Chao (Taipei, TW); Kuo-Chun Chen (New Taipei, TW); Wei-Hsiang Hsiung (Taipei, TW); Sheng-Tung Hsu (Taipei, TW); Ming-Pin Hsueh (New Taipei, TW)
Assignee: International Business Machines Corporation
H04L63/12G06F9/54G06F13/24H04L67/1002G06F9/5005H04L69/30
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 10,419,447
App. No.
15/729,805
Filed
Oct 11, 2017
Granted
Sep 17, 2019
Kind
B2
Art Unit
2454
USPC
709/217
Abstract

Selecting a receive side scaling (RSS) key is provided. It is determined whether a defined time interval expired. In response to determining that the defined time interval has expired, it is determined whether one or more keys in a set of randomly generated candidate RSS keys have a higher packet distribution score than an active RSS key. In response to determining that one or more keys in the set of randomly generated candidate RSS keys have a higher packet distribution score than the active RSS key, an RSS key having a highest packet distribution score is selected from the one or more keys in the set of randomly generated candidate RSS keys that have a higher packet distribution score than the active RSS key. The RSS key having the highest packet distribution score is used to distribute incoming network packets across a plurality of processors.

Claims (38)

1. A data processing system for selecting a receive side scaling (RSS) key, the data processing system comprising:

a bus system;

a storage device connected to the bus system, wherein the storage device stores program instructions; and

a processor connected to the bus system, wherein the processor executes the program instructions to:

determine whether a defined time interval expired;

determine whether one or more keys in a set of randomly generated candidate RSS keys have a higher packet distribution score than an active RSS key in response to determining that the defined time interval has expired;

select an RSS key having a highest packet distribution score from the one or more keys in the set of randomly generated candidate RSS keys that have a higher packet distribution score than the active RSS key in response to determining that one or more keys in the set of randomly generated candidate RSS keys have a higher packet distribution score than the active RSS key; and

use the RSS key having the highest packet distribution score to distribute incoming network packets across a plurality of processors corresponding to the data processing system.

2. The data processing system of claim 1 , wherein the processor further executes the program instructions to:

continue to use the active RSS key to distribute the incoming network packets across the plurality of processors corresponding to the data processing system in response to determining that no keys in the set of randomly generated candidate RSS keys have a higher packet distribution score than the active RSS key.

3. The data processing system of claim 1 , wherein the processor further executes the program instructions to:

determine whether one or more keys in the set of randomly generated candidate RSS keys have a corresponding packet distribution score less than a packet distribution threshold score; and

discard those RSS keys having a corresponding packet distribution score less than the packet distribution threshold score in response to determining that one or more keys in the set of randomly generated candidate RSS keys have a corresponding packet distribution score less than the packet distribution threshold score.

4. The data processing system of claim 3 , wherein the processor further executes the program instructions to:

randomly generate a number of new RSS keys to replace those discarded RSS keys having a corresponding packet distribution score less than the packet distribution threshold score.

5. A computer program product for selecting a receive side scaling (RSS) key, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a data processing system to cause the data processing system to perform a method comprising:

determining, by the data processing system, whether a defined time interval expired;

responsive to the data processing system determining that the defined time interval has expired, determining, by the data processing system, whether one or more keys in a set of randomly generated candidate RSS keys have a higher packet distribution score than an active RSS key;

responsive to the data processing system determining that one or more keys in the set of randomly generated candidate RSS keys have a higher packet distribution score than the active RSS key, selecting, by the data processing system, an RSS key having a highest packet distribution score from the one or more keys in the set of randomly generated candidate RSS keys that have a higher packet distribution score than the active RSS key; and

using, by the data processing system, the RSS key having the highest packet distribution score to distribute incoming network packets across a plurality of processors corresponding to the data processing system.

6. The computer program product of claim 5 further comprising:

responsive to the data processing system determining that no keys in the set of randomly generated candidate RSS keys have a higher packet distribution score than the active RSS key, continuing to use, by the data processing system, the active RSS key to distribute the incoming network packets across the plurality of processors corresponding to the data processing system.

7. The computer program product of claim 5 further comprising:

determining, by the data processing system, whether one or more keys in the set of randomly generated candidate RSS keys have a corresponding packet distribution score less than a packet distribution threshold score; and

responsive to the data processing system determining that one or more keys in the set of randomly generated candidate RSS keys have a corresponding packet distribution score less than the packet distribution threshold score, discarding, by the data processing system, those RSS keys having a corresponding packet distribution score less than the packet distribution threshold score.

8. The computer program product of claim 7 further comprising:

randomly generating, by the data processing system, a number of new RSS keys to replace those discarded RSS keys having a corresponding packet distribution score less than the packet distribution threshold score.

9. The computer program product of claim 5 further comprising:

generating, by the data processing system, a candidate key pool containing the set of randomly generated candidate RSS keys; and

selecting, by the data processing system, a key from the set of randomly generated candidate RSS keys to be the active RSS key for distributing the incoming network packets across the plurality of processors corresponding to the data processing system.

10. The computer program product of claim 5 further comprising:

receiving, by the data processing system, the incoming network packets via a network;

distributing, by the data processing system, the incoming network packets across the plurality of processors corresponding to the data processing system using the active RSS key;

evaluating, the data processing system, performance of the active RSS key in uniformly distributing the incoming network packets across the plurality of processors corresponding the data processing system; and

generating, by the data processing system, a packet distribution score corresponding to the active RSS key based on the evaluating of the performance of the active RSS key in uniformly distributing the incoming network packets across the plurality of processors corresponding to the data processing system.

11. The computer program product of claim 10 , wherein the active RSS key uniformly distributes the incoming network packets across the plurality of processors by sending an equal number of network packets to each processor in the plurality of processors.

12. The computer program product of claim 5 further comprising:

predicting, by the data processing system, performance of each key in the set of randomly generated candidate RSS keys in uniformly distributing the incoming network packets across the plurality of processors corresponding to the data processing system in a background; and generating, by the data processing system, a respective packet distribution score corresponding to each key in the set of randomly generated candidate RSS keys based on the predicting of the performance of each key in the set of randomly generated candidate RSS keys in uniformly distributing the incoming network packets across the plurality of processors corresponding to the data processing system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2017
From: CHAO, CHIH-WEN; CHEN, KUO-CHUN; HSIUNG, WEI-HSIANG; HSU, SHENG-TUNG; HSUEH, MING-PIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043834/0940 →
Continuity (1)
Related Publication 20190109858A1 · Apr 11, 2019
Cited By (1)
US 12,675,338