Network Processing Load Balancing for Multi-Core Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If more cores are used for network processing, then throughput capacity increases, but power consumption increases
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.
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.
3Productivity
If hardware circuitry is added for load balancing, then network processing throughput improves, but device complexity increases
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.
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.
Data Source
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.


