Performance of standard kernel drivers

Network Setup

It’s assumed that the WHLE boards are connected in the following setup:

whle_ls1026_0 | eth4 | | eth5 whle_ls1046_0 | eth4 | | eth5 whle_ls1046_1 | eth4 | | eth5 whle_ls1026_1

The whle_ls1026_0, whle_ls1026_1 are endpoints while whle_ls1046_0, whle_ls1046_1 are gateways.

System setup

All hosts have the same system setup.

System

For the tests the Conclusive Ubuntu image was used, version ubuntu-jammy-whle-ls1046a-2024-05-15-6ccb862.img, available at https://gitlab.conclusive.pl/devices/ubuntu-build/-/packages/109.

Kernel

Make sure /etc/default/u-boot contains kernel arguments bportals=s0 qportals=s0 iommu.passthrough=1

# cat /etc/default/u-boot
U_BOOT_UPDATE="true" U_BOOT_PARAMETERS="console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 rootwait rw bportals=s0 qportals=s0 iommu.passthrough=1"

Install the right kernel version.

Make sure the installed kernel will be loaded on boot.

Reboot the board.

Software

FMC setup

Before any network setup run the fmc tool to set up packet queuing rules.

The files:

This configuration forms a single, core-affined queue for all traffic. In this way the performance X of a single core in the role of a router or a bridge can be isolated and measured. The performance of the whole processor depends on how evenly the traffic is distributed among the cores, which, if done properly, can easily get close to 4X in case of LS1046 or 2X in case of LS1026. How to evenly distribute the traffic with the queuing rules ultimately depends on the nature of traffic the board is supposed to forward and it’s outside of scope of this tutorial. On technical details of defining the policies please refer to https://www.nxp.com/docs/en/application-note/AN4760.pdf.

Router

Network setup

Enable routing in kernel

whle_ls1046_*:

Set up the network (eth0 is assumed to be the control interface, omitted from the setup)

whle_ls1026_0
whle_ls1046_0
whle_ls1046_1
whle_ls1026_1

Testing

whle_ls1026_0
whle_ls1026_1

The network speed close to 4 Gb/s is achieved on a single core in the router role, which allows LS1026 to achieve around 7 Gb/s and LS1046 to easily surpass 9 Gb/s even with sub-optimal queuing, both using standard kernel DPAA drivers.

L2 Bridge

Network setup

whle_ls1046_*
whle_ls1026_0
whle_ls1026_1

Testing

whle_ls1026_0
whle_ls1026_1

Speed network close to 5 Gb/s is achieved on a single core, which allows for throughput close to the link speed on both LS1026 and LS1046 platforms working in a bridge mode on standard Linux DPAA drivers.