pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/upf-benchmark/+/39846?usp=email )


Change subject: testsuites: upf: Support setting net iface irqs in c240 host
......................................................................

testsuites: upf: Support setting net iface irqs in c240 host

The Cisco C240 machines consist of 2 CPU packages, each with 20 cores
(hyperthreading disabled). Those 2 CPUs packages are hence placed in 2
different NUMA zones.

By default, mlx5 driver creates one rx-queue per core, in this case it
creates 40 rx-queues with 40 irqs (one for each rx-queue/core).
This means it doesn't take into account the fact that the network card
is plugged into a given PCIe bus belonging to one of the 2 available
NUMA zones.
As a result, when a packet is received and put into the rx-queue+irq
belonging to the other NUMA zone, a penalty in memory-bandwitch is
incurred, which ends up in a performance throughput penalty.

With 100 flows at ~70Gbps being sent to the host, by default load spread
among all 40 cores can reach processing at 55Gbps 4.62 MPPS.
By decreasing the rx-queues to 20 and pinning the irqs to the cores in
the same NUMA node, using only those 20 CPUs we get a small gain
reaching ~62 Gbps 5.22 MPPS.

Change-Id: I26fce50c04b043b61ba418d7090b2573e7807b08
---
M testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
1 file changed, 30 insertions(+), 3 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/upf-benchmark refs/changes/46/39846/1

diff --git a/testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh 
b/testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
index 825e59f..947c465 100755
--- a/testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
+++ b/testsuites/gtplab-sysmo2025/tunmap/upf/configure.sh
@@ -1,8 +1,33 @@
 #!/bin/bash -xe

+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+
 # Interface towards UPF:
-IFACE_RAN="enp2s0f1np1"
-IFACE_CN="enp2s0f0np0"
+case $(hostname) in
+gtplab1)
+        IFACE_RAN="enp2s0f1np1"
+        IFACE_CN="enp2s0f0np0"
+        MAC_CN_PEER="ec:0d:9a:8a:27:53"
+        ;;
+c240-2)
+        IFACE_RAN="ens2f0np0"
+        IFACE_CN="ens2f1np1"
+        MAC_CN_PEER="88:e9:a4:3b:f0:49"
+        # Adapt Rx/Tx Queues and IRQs to Numa Node of device:
+        # cat /sys/class/net/$IFACE_RAN/device/numa_node
+        # 0
+        # cat /sys/class/net/$IFACE_RAN/device/local_cpulist
+        # 0-19
+        sudo ethtool -L $IFACE_RAN combined 20
+        sudo ethtool -L $IFACE_CN combined 20
+        sudo "$SCRIPT_DIR/../../../../scripts/set_irq_affinity_cpulist.sh" 
0-19 $IFACE_RAN
+        sudo "$SCRIPT_DIR/../../../../scripts/set_irq_affinity_cpulist.sh" 
0-19 $IFACE_CN
+        ;;
+*)
+        echo "UNEXPECTED HOSTNAME: $(hostname)"
+        exit 1
+        ;;
+esac

 # Disable ethernet flow control:
 sudo ethtool -A $IFACE_RAN autoneg off rx off tx off
@@ -26,7 +51,9 @@

 # Set up UPF address:
 sudo ip addr add 172.16.32.1/24 dev $IFACE_RAN || true;
+sudo ip link set up dev $IFACE_RAN || true;
 sudo ip addr add 172.16.31.2/24 dev $IFACE_CN || true;
+sudo ip link set up dev $IFACE_CN || true;

 # TRex doesn't answer ARPs, so we need to set up the CN-side peer:
-sudo ip neigh add 172.16.31.200 lladdr ec:0d:9a:8a:27:53 nud permanent dev 
$IFACE_CN || true;
+sudo ip neigh add 172.16.31.200 lladdr "$MAC_CN_PEER" nud permanent dev 
$IFACE_CN || true;

--
To view, visit https://gerrit.osmocom.org/c/upf-benchmark/+/39846?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: upf-benchmark
Gerrit-Branch: master
Gerrit-Change-Id: I26fce50c04b043b61ba418d7090b2573e7807b08
Gerrit-Change-Number: 39846
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>

Reply via email to