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