X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=docs%2Freport%2Ftestpmd_performance_tests%2Ftest_environment.rst;fp=docs%2Freport%2Ftestpmd_performance_tests%2Ftest_environment.rst;h=e4f301daa0ab7d8c5c7a13c95833b4a149982a59;hp=0000000000000000000000000000000000000000;hb=da2aa127ee071e37bc4d6060dd39476179e65365;hpb=a1d482fcf9c221cda2f13429810bca945d9f09f4 diff --git a/docs/report/testpmd_performance_tests/test_environment.rst b/docs/report/testpmd_performance_tests/test_environment.rst new file mode 100644 index 0000000000..e4f301daa0 --- /dev/null +++ b/docs/report/testpmd_performance_tests/test_environment.rst @@ -0,0 +1,3562 @@ +Test Environment +================ + +To execute performance tests, there are three identical testbeds, each testbed +consists of two SUTs and one TG. + +SUT Configuration - Host HW +--------------------------- +Hardware details (CPU, memory, NIC layout) are described in +`CSIT/CSIT_LF_testbed `_ in +summary: + +- All hosts are Cisco UCS C240-M4 (2x Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz, + 18c, 512GB RAM), +- BIOS settings are default except for the following: + + - Hyperthreading disabled, + - SpeedStep disabled + - TurboBoost disabled + - Power Technology: Performance + +- Hosts run Ubuntu 16.04.1, kernel 4.4.0-42-generic +- Linux kernel boot command line option "intel_pstate=disable" is applied to + both SUTs and TG. In addition, on SUTs, only cores 0 and 18 (the first core on + each socket) are available to the Linux operating system and generic tasks, + all other CPU cores are isolated and reserved for VPP. +- In addition to CIMC and Management, each TG has 4x Intel X710 10GB NIC + (=8 ports) and 2x Intel XL710 40GB NIC (=4 ports), whereas each SUT has: + + - 1x Intel X520 NIC (10GB, 2 ports), + - 1x Cisco VIC 1385 (40GB, 2 ports), + - 1x Intel XL710 NIC (40GB, 2 ports), + - 1x Intel X710 NIC (10GB, 2 ports), + - 1x Cisco VIC 1227 (10GB, 2 ports). + - This allows for a total of five ring topologies, each using ports on + specific NIC model, enabling per NIC model benchmarking. + +**NIC types** + +- 0a:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ + Network Connection (rev 01) Subsystem: Intel Corporation Ethernet Server + Adapter X520-2 +- 0a:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ + Network Connection (rev 01) Subsystem: Intel Corporation Ethernet Server + Adapter X520-2 +- 06:00.0 Ethernet controller: Cisco Systems Inc VIC Ethernet NIC (rev a2) + Subsystem: Cisco Systems Inc VIC 1227 PCIe Ethernet NIC +- 07:00.0 Ethernet controller: Cisco Systems Inc VIC Ethernet NIC (rev a2) + Subsystem: Cisco Systems Inc VIC 1227 PCIe Ethernet NIC +- 13:00.0 Ethernet controller: Cisco Systems Inc VIC Ethernet NIC (rev a2) + Subsystem: Cisco Systems Inc VIC 1385 PCIe Ethernet NIC +- 15:00.0 Ethernet controller: Cisco Systems Inc VIC Ethernet NIC (rev a2) + Subsystem: Cisco Systems Inc VIC 1385 PCIe Ethernet NIC +- 85:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 + for 40GbE QSFP+ (rev 01) Subsystem: Intel Corporation Ethernet Converged + Network Adapter XL710-Q2 +- 85:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 + for 40GbE QSFP+ (rev 01) Subsystem: Intel Corporation Ethernet Converged + Network Adapter XL710-Q2 +- 87:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for + 10GbE SFP+ (rev 01) Subsystem: Intel Corporation Ethernet Converged Network + Adapter X710-2 +- 87:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for + 10GbE SFP+ (rev 01) Subsystem: Intel Corporation Ethernet Converged Network + Adapter X710-2 + +SUT Configuration - Host OS Linux +--------------------------------- + +Software details (OS, configuration) is described in +`CSIT/CSIT_LF_testbed `_ in +summary: + +.. code-block:: xml + + +
+ + + 1 + + + + + 1 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + +
+
+ + + 127 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 1 + + + + + 0 + + + + + + + 0 + + + + + 127 + + + + + 0 + + + + + 0 + + + + + 0 + + + + + 1 + + + + + 127 + + + + + 0 + /dev/null || echo Debian` + GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8" + GRUB_CMDLINE_LINUX="isolcpus=1-17,19-35 nohz_full=1-17,19-35 rcu_nocbs=1-17,19-35 intel_pstate=disable" + + # Uncomment to enable BadRAM filtering, modify to suit your needs + # This works with Linux (no patch required) and with any kernel that obtains + # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) + #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" + + # Uncomment to disable graphical terminal (grub-pc only) + #GRUB_TERMINAL=console + GRUB_TERMINAL=serial + GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1" + + # The resolution used on graphical terminal + # note that you can use only modes which your graphic card supports via VBE + # you can see them in real GRUB with the command `vbeinfo' + #GRUB_GFXMODE=640x480 + + # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux + #GRUB_DISABLE_LINUX_UUID=true + + # Uncomment to disable generation of recovery mode menu entries + #GRUB_DISABLE_RECOVERY="true" + + # Uncomment to get a beep at grub start + #GRUB_INIT_TUNE="480 440 1" + ]]> + + + + 1 + + + + + 0 + mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 6: enp23s0f0: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 + link/ether 00:fe:c8:e5:68:32 brd ff:ff:ff:ff:ff:ff + ]]> + + + + 0 + + + + + 0 + + +
+
+ + + 127 + + + + + 0 + + +
+
+ + + 0 + + + + +
+
+ + + 1 + + + + + 127 + + + + + 1 + + +
+
+ + +DUT Configuration - DPDK +------------------------ + +**DPDK Version** + +16.09 + +**DPDK Compile Parameters** + +.. code-block:: bash + + make install T=x86_64-native-linuxapp-gcc -j + +**DPDK Startup Configuration** + +DPDK startup configuration changes per test case with different settings for CPU +cores, rx-queues. Startup config is aligned with applied test case tag: + +Tagged by **1T1C** + +.. code-block:: bash + + testpmd -c 0x3 -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=1 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=1 --txq=1 --auto-start + +Tagged by **2T2C** + +.. code-block:: bash + + testpmd -c 0x403 -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=2 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=1 --txq=1 --auto-start + +Tagged by **4T4C** + +.. code-block:: bash + + testpmd -c 0xc07 -n 4 -- --nb-ports=2 --portmask=0x3 --nb-cores=4 --max-pkt-len=9000 --txqflags=0 --forward-mode=io --rxq=2 --txq=2 --auto-start + + +TG Configuration - TRex +----------------------- + +**TG Version** + +TRex v2.09 + +**DPDK version** + +DPDK v16.07 (20e2b6eba13d9eb61b23ea75f09f2aa966fa6325 - in DPDK repo) + +**TG Build Script used** + +https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob;f=resources/tools/t-rex/t-rex-installer.sh;h=e89b06f9b12499996df18e5e3399fcd660ebc017;hb=refs/heads/rls1701 + +**TG Startup Configuration** + +:: + + $ cat /etc/trex_cfg.yaml + - port_limit : 2 + version : 2 + interfaces : ["0000:0d:00.0","0000:0d:00.1"] + port_info : + - dest_mac : [0x3c,0xfd,0xfe,0x9c,0xee,0xf5] + src_mac : [0x3c,0xfd,0xfe,0x9c,0xee,0xf4] + - dest_mac : [0x3c,0xfd,0xfe,0x9c,0xee,0xf4] + src_mac : [0x3c,0xfd,0xfe,0x9c,0xee,0xf5] + +**TG common API - pointer to driver** + +https://gerrit.fd.io/r/gitweb?p=csit.git;a=blob;f=resources/tools/t-rex/t-rex-stateless.py;h=24f4a997389ba3f10ad42e1f9564ef915fd58b44;hb=refs/heads/rls1701 +