Intel's Linux Support Coming Together For The Dynamic Load Balancer 2.0

Written by Michael Larabel in Intel on 1 September 2020 at 03:34 PM EDT. 1 Comment
INTEL
Intel's open-source engineers today sent out their latest patches bringing up the Dynamic Load Balancer 2.0 for the next-gen PCIe device that offers load-balanced, prioritized scheduling of core-to-core communication.

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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week