[spp] [PATCH v2 5/5] docs: add note regarding NUMA configuration

x-fn-spp-ml at ntt-tx.co.jp x-fn-spp-ml at ntt-tx.co.jp
Wed Jun 24 06:47:36 CEST 2020


From: Hideyuki Yamashita <yamashita.hideyuki at ntt-tx.co.jp>

This patch adds new notes for NUMA configuration when starting
spp_primary.

This is pointed out by the following DPDK Bugzilla tickets.
https://bugs.dpdk.org/show_bug.cgi?id=457

Signed-off-by: Hideyuki Yamashita <yamashita.hideyuki at ntt-tx.co.jp>
Signed-off-by: Naoki Takada <ntakada14 at gmail.com>
---
 docs/guides/gsg/performance_opt.rst | 55 +++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/docs/guides/gsg/performance_opt.rst b/docs/guides/gsg/performance_opt.rst
index 6fea4cb..24436a5 100644
--- a/docs/guides/gsg/performance_opt.rst
+++ b/docs/guides/gsg/performance_opt.rst
@@ -71,6 +71,61 @@ and so on.
     pid 192626's current affinity list: 0-31
     pid 192626's new affinity list: 7
 
+Consideration of NUMA node
+--------------------------
+
+``spp_primary`` tries to create memory pool in the same NUMA node where
+it is launched. Under NUMA configuration, the NUMA node where ``spp_primary``
+is launched and the NUMA node where NIC is connected can be different
+(e.g. spp_primary runs in NUMA node 0 while NIC is connected with NUMA
+node 1).
+Such configuration may cause performance degradation. In general, under
+NUMA configuration, it is best practice to use CPU and NIC which belongs
+to the same NUMA node for best performance. So user should align those
+when performance degradation makes the situation critical.
+
+To check NUMA node which CPU/NIC core belongs, ``lstopo`` command can be used.
+In the following example, CPU core 0 belongs to NUMA node 0 while
+``enp175s0f0`` belongs to NUMA node 1.
+
+.. code-block:: console
+
+    $ lstopo
+    Machine (93GB total)
+      NUMANode L#0 (P#0 46GB)
+        Package L#0 + L3 L#0 (17MB)
+          L2 L#0 (1024KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
+    .....
+      NUMANode L#1 (P#1 47GB)
+        Package L#1 + L3 L#1 (17MB)
+          L2 L#12 (1024KB) + L1d L#12 (32KB) + L1i L#12 (32KB) + Core L#12
+            PU L#24 (P#1)
+            PU L#25 (P#25)
+    .....
+        HostBridge L#10
+          PCIBridge
+            PCI 8086:1563
+              Net L#10 "enp175s0f0"
+            PCI 8086:1563
+              Net L#11 "enp175s0f1"
+
+CPU core where ``spp_primary`` run can be specified
+using -l option.
+
+.. code-block:: console
+
+    # terminal 3
+    $ sudo ./src/primary/x86_64-native-linux-gcc/spp_primary \
+        -l 0 -n 4 \
+        --socket-mem 512,512 \
+        --huge-dir /dev/hugepages \
+        --proc-type primary \
+        --file-prefix $SPP_FILE_PREFIX \
+        --base-virtaddr 0x100000000
+        -- \
+        -p 0x03 \
+        -n 10 \
+        -s 192.168.1.100:5555
 
 Reference
 ---------
-- 
2.17.1



More information about the spp mailing list