Intel's Linux Support Coming Together For The Dynamic Load Balancer 2.0
DLB 2.0 is the next-generation version of the Intel Dynamic Load Balancer. This is a PCIe device part of the CPU package for providing load balancing features and can take responsibility for distributing system workloads for maximizing the performance -- "significantly greater performance" than software load-balancing solutions.
So far Intel DLB has been found in the likes of the Atom P5900 series for offering greater performance and lower latency for network edge use-cases.
DLB 2.0 doesn't appear to be in any Intel processors yet but given the timing of these kernel patches will likely be out in 2021. Earlier this summer the initial version of the "DLB2" driver patches were sent out while kicking off September a new revision is now out for review.
The Intel DLB 2.0 consists of queues and arbiters that connect producer cores and consumer cores. The device implements load-balanced queueing features including:
- Lock-free multi-producer/multi-consumer operation.
- Multiple priority levels for varying traffic types.
- 'Direct' traffic (i.e. multi-producer/single-consumer)
- Simple unordered load-balanced distribution.
- Atomic lock free load balancing across multiple consumers.
- Queue element reordering feature allowing ordered load-balanced distribution.
Intel DLB 2.0 can be used in an event-driven programming model, such as DPDK's Event Device Library. Such frameworks are commonly used in packet processing pipelines that benefit from the framework's multi-core scalability, dynamic load-balancing, and variety of packet distribution and synchronization schemes.
These distribution schemes include "parallel" (packets are load-balanced across multiple cores and processed in parallel), "ordered" (similar to "parallel" but packets are reordered into ingress order by the device), and "atomic" (packet flows are scheduled to a single core at a time such that locks are not required to access per-flow data, and dynamically migrated to ensure load-balance).
Intel DLB 2.0 supports SR-IOV and Scalable IOV to make it useful for virtualization use-cases.
Supporting the Intel Dynamic Load Balancer 2.0 is a big addition with this "dlb2" driver amounting to nearly eighteen thousand lines of new code with the patches. If the latest round of review goes well, this Intel DLB 2.0 support could come with Linux 5.10 later in the year. Previous Intel marketing material with the Atom P5900 has indicated the Dynamic Load Balancer (1.0) offers 3.7x the packet processing throughput of software-based solutions, so it will be interesting to see in due course how well Dynamic Load Balancer 2.0 performs.