Network Processing Load Balancing for Multi-Core Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The processing capabilities of server cores become bottlenecks in network data transmission due to overloaded network processing operations, limiting the throughput of data to and from software components, especially as available NIC throughput increases.

Innovation Solution

Implementing a two-stage network processing load balancing system in servers with a NIC operatively coupled to multiple cores, utilizing a port selector and an RSS engine to distribute and manage network processing loads across multiple queues and cores, and a software load balancer to dynamically adjust core assignments based on load thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If network processing operations are concentrated on a single core, then communication flow state consistency is maintained, but core overload occurs and throughput is limited

Engineering Contradiction:
Improvecommunication flow state consistencyVSAvoidnetwork throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments network processing operations by creating multiple virtual ports and queues, distributing them across multiple cores. Each queue is assigned to a specific core, allowing parallel processing of different packet streams while maintaining flow state consistency within each core's designated queues.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a load balancer as an intermediary component that monitors core utilization and dynamically redistributes queues between cores. This mediator prevents any single core from becoming overloaded while ensuring that flow state consistency is maintained through proper queue-core assignment.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If more cores are used for network processing, then throughput capacity increases, but power consumption increases

Engineering Contradiction:
Improvenetwork throughput capacityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic queue-to-core assignment where the load balancer continuously monitors core utilization and redistributes queues based on current load conditions. This dynamic adjustment allows the system to use only the necessary number of cores for current throughput requirements, reducing power consumption when full capacity is not needed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of cores by dynamically adjusting which cores are active for network processing based on throughput demands. When throughput requirements are low, fewer cores remain active, reducing power consumption while maintaining adequate processing capacity.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If hardware circuitry is added for load balancing, then network processing throughput improves, but device complexity increases

Engineering Contradiction:
Improvenetwork processing throughputVSAvoidNIC hardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a software-based load balancer that performs multiple functions: monitoring core utilization, distributing queues across cores, and rebalancing loads dynamically. This universal software component replaces the need for complex dedicated hardware circuitry, achieving load balancing functionality through multi-purpose software management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent replaces potential hardware-based load balancing mechanisms with a software-based system. Instead of using complex hardware circuitry to distribute packets, the system uses software running on the existing cores to perform queue assignment and load distribution, reducing hardware complexity while maintaining throughput improvements.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS12015563B2Management of resource affinities in computing systems having multiple cores
Publication Date: 2024.06.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12015563B2 patent drawing
  • US12015563B2 patent drawing
  • US12015563B2 patent drawing

AI summary

Embodiments of network processing resource management in computing devices are disclosed therein. In one embodiment, a method includes receiving a request from a network interface controller to perform network processing operations at a first core of a main processor for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes determining whether the first core has a utilization level higher than a threshold when performing the network processing operations to effect processing and transmission of the packets. If the first core has a utilization level higher than the threshold, the method includes issuing a command to the network interface to modify affinitization of the queue from the first core to a second core having a utilization level lower than the threshold.