NIC RSS Load Balancing Using Core Saturation Feedback

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing load balancing techniques, such as Receive Side Scaling (RSS), fail to distribute network traffic efficiently across CPU cores, leading to overloading of some cores while underutilizing others, resulting in performance issues and packet drops.

Innovation Solution

Implement a hash table in the NIC that takes into account the current load on CPU cores, using a flag (REDUCE-INCOMING-TRAFFIC-RATE) to redirect traffic away from saturated cores and optimize the distribution of packets to underutilized cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional RSS is used to distribute traffic across CPU cores, then traffic distribution is implemented, but cores can still become saturated while under-utilized cores remain available

Engineering Contradiction:
Improvenetwork throughputVSAvoidpacket drop rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic load balancing by making the RSS configuration adaptable to changing core utilization states. The system continuously monitors CPU core saturation levels and dynamically adjusts traffic distribution decisions based on real-time conditions, transitioning from static to dynamic behavior to prevent packet drops while maintaining high throughput

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces a feedback mechanism where the system monitors the utilization state of CPU cores and uses this information to adjust traffic distribution. The feedback loop detects when cores become saturated and redirects traffic accordingly, ensuring that performance degradation and packet drops are prevented through continuous adaptation based on system state

Inventive Principle:
Principle #23Feedback

2Ease of operation

If traffic is distributed using static RSS configuration, then implementation is simple, but core utilization becomes unbalanced leading to saturation

Engineering Contradiction:
ImproveRSS configurationVSAvoidcore utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent enables the load balancing system to self-adjust by automatically monitoring core utilization and making redistribution decisions without manual intervention. The system serves itself by detecting imbalances and autonomously reconfiguring traffic distribution, maintaining ease of operation while improving core utilization efficiency

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the parameter of traffic distribution from static to dynamic based on core utilization thresholds. By monitoring utilization parameters and adjusting traffic routing decisions in response to parameter changes, the system maintains simple operation while achieving balanced core utilization and preventing saturation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20250365233A1Dynamic load balancing with improved rss
Publication Date: 2025.11.27 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250365233A1 patent drawing
  • US20250365233A1 patent drawing
  • US20250365233A1 patent drawing

AI summary

Network traffic management is performed in a system comprising a network interface card (NIC) operatively coupled to a processor with multiple cores. The NIC is configured to execute receiver side scaling (RSS). The NIC generates a hash table for tracking communications flows that have been assigned to selected cores of the multiple cores. In response to receiving, at the NIC, a packet associated with a new communication flow, the NIC accesses a flag indicating that a first core of the multiple cores exceeds a threshold for CPU utilization. In response to determining that the flag indicates that the first core of the multiple cores exceeds the threshold for CPU utilization, the first core of the multiple cores is excluded from an RSS function for load balancing the multiple cores. A subset of the multiple cores that exclude the first core is used for load balancing the multiple cores.