4292a2cd10db80e9b6795d67fda8a12b24b9c5ae
[csit.git] / docs / report / vpp_performance_tests_hw / csit_release_notes.rst
1 CSIT Release Notes\r
2 ==================\r
3 \r
4 Changes in CSIT |release|\r
5 -------------------------\r
6 \r
7 #. Naming change for all VPP performance test suites and test cases.\r
8 #. VPP performance test environment changes\r
9 \r
10     - upgrade to Ubuntu 16.04\r
11     - VM and vhost-user test environment optimizations\r
12     - addition of HW cryptodev devices in LFD FD.io physical testbed\r
13 \r
14 \r
15 #. Added tests\r
16 \r
17     - new NICs - Intel x710, Cisco VIC1385, Cisco VIC1227\r
18     - more VM vhost-user tests\r
19     - more LISP tests\r
20 \r
21 \r
22 Performance Tests Naming\r
23 ------------------------\r
24 \r
25 CSIT |release| introduced a common structured naming convention for all\r
26 performance and functional tests. This change was driven by substantially\r
27 growing number and type of CSIT test cases. Firstly, the original practice did\r
28 not always follow any strict naming convention. Secondly test names did not\r
29 always clearly capture tested packet encapsulations, and the actual type or\r
30 content of the tests. Thirdly HW configurations in terms of NICs, ports and\r
31 their locality were not captured either. These were but few reasons that drove\r
32 the decision to change and define a new more complete and stricter test naming\r
33 convention, and to apply this to all existing and new test cases.\r
34 \r
35 The new naming should be intuitive for majority of the tests. The complete\r
36 description of CSIT test naming convention is provided on `CSIT test naming wiki\r
37 <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.\r
38 \r
39 Here few illustrative examples of the new naming usage for performance test\r
40 suites:\r
41 \r
42 #. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**\r
43 \r
44     - *PortNICConfig-WireEncapsulation-PacketForwardingFunction-\r
45       PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType*\r
46     - *10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot* => 2 ports of 10GE on\r
47       Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching\r
48       with MAC learning, NDR throughput discovery.\r
49     - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot* => 2 ports of 10GE\r
50       on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline\r
51       switching with MAC learning, NDR throughput discovery.\r
52     - *10ge2p1x520-ethip4-ip4base-ndrdisc.robot* => 2 ports of 10GE on Intel\r
53       x520 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.\r
54     - *10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot* => 2 ports of 10GE on\r
55       Intel x520 NIC, IPv6 scaled up routed forwarding, NDR throughput\r
56       discovery.\r
57 \r
58 #. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,\r
59    P2V2P, NIC2VMchain2NIC, P2V2V2P**\r
60 \r
61     - *PortNICConfig-WireEncapsulation-PacketForwardingFunction-\r
62       PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-\r
63       VirtPortConfig-VMconfig-TestType*\r
64     - *10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2 ports\r
65       of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain\r
66       switching to/from two vhost interfaces and one VM, NDR throughput\r
67       discovery.\r
68     - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2\r
69       ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain\r
70       switching to/from two vhost interfaces and one VM, NDR throughput\r
71       discovery.\r
72     - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot* => 2\r
73       ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain\r
74       switching to/from four vhost interfaces and two VMs, NDR throughput\r
75       discovery.\r
76 \r
77 Measured Performance Improvements\r
78 ---------------------------------\r
79 \r
80 Substantial improvements in measured packet throughput have been observed\r
81 in VPP-17.01 for the following CSIT |release| tests:\r
82 \r
83 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
84 | VPP Functionality | Test Name                                                      | VPP-16.09 | VPP-17.01       | Relative Improvement |\r
85 +===================+================================================================+===========+=================+======================+\r
86 | L2XC              | 10ge2p1x520:64B-1t1c-eth-l2xcbase-ndrdisc                      | 9.4 Mpps  | 12.6..12.9 Mpps | 34..37%              |\r
87 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
88 | L2XC              | 10ge2p1xl710:64B-1t1c-eth-l2xcbase-ndrdisc                     | 9.5 Mpps  | 12.1..12.4 Mpps | 27..30%              |\r
89 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
90 | L2BD              | 10ge2p1x520:64B-1t1c-eth-l2bdbasemaclrn-ndrdisc                | 7.8 Mpps  | 10.6 Mpps       | 36%                  |\r
91 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
92 | L2BD-vhost-VM     | 10ge2p1x520:64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc | 0.4 Mpps  | 2.8 Mpps        | 600%                 |\r
93 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
94 | L2XC-vhost-VM     | 10ge2p1x520:64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc       | 0.4 Mpps  | 3.2 Mpps        | 700%                 |\r
95 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
96 | IPv4              | 10ge2p1x520:64B-1t1c-ethip4-ip4base-ndrdisc                    | 8.7 Mpps  | 9.7 Mpps        | 12%                  |\r
97 +-------------------+----------------------------------------------------------------+-----------+-----------------+----------------------+\r
98 \r
99 This is in line with VPP code optimizations listed in `VPP-17.01 release notes\r
100 <https://docs.fd.io/vpp/17.01/release_notes_1701.html>`_.\r
101 \r
102 vhost-VM performance improvement is also due to Linux KVM test environment\r
103 optimization for vhost-VM tests - see section below "VM vhost-user\r
104 Throughput Measurements".\r
105 \r
106 Multi-Thread and Multi-Core Measurements\r
107 ----------------------------------------\r
108 \r
109 **HyperThreading** - CSIT |release| performance tests are executed with SUT\r
110 servers' Intel XEON CPUs configured in HyperThreading Disabled mode (BIOS\r
111 settings). This is the simplest configuration used to establish baseline\r
112 single-thread single-core SW packet processing and forwarding performance.\r
113 Subsequent releases of CSIT will add performance tests with Intel\r
114 HyperThreading Enabled (requires BIOS settings change and hard reboot).\r
115 \r
116 **Multi-core Test** - CSIT |release| multi-core tests are executed in the\r
117 following VPP thread and core configurations:\r
118 \r
119 #. 1t1c - 1 VPP worker thread on 1 CPU physical core.\r
120 #. 2t2c - 2 VPP worker threads on 2 CPU physical cores.\r
121 #. 4t4c - 4 VPP threads on 4 CPU physical cores.\r
122 \r
123 Note that in quite a few test cases running VPP on 2 or 4 physical cores hits\r
124 the tested NIC I/O bandwidth or packets-per-second limit.\r
125 \r
126 Packet Throughput Measurements\r
127 ------------------------------\r
128 \r
129 Following values are measured and reported for packet throughput tests:\r
130 \r
131 - NDR binary search per RFC2544:\r
132 \r
133   - Packet rate: "RATE: <aggregate packet rate in packets-per-second> pps\r
134     (2x <per direction packets-per-second>)"\r
135   - Aggregate bandwidth: "BANDWIDTH: <aggregate bandwidth in Gigabits per\r
136     second> Gbps (untagged)"\r
137 \r
138 - PDR binary search per RFC2544:\r
139 \r
140   - Packet rate: "RATE: <aggregate packet rate in packets-per-second> pps (2x\r
141     <per direction packets-per-second>)"\r
142   - Aggregate bandwidth: "BANDWIDTH: <aggregate bandwidth in Gigabits per\r
143     second> Gbps (untagged)"\r
144   - Packet loss tolerance: "LOSS_ACCEPTANCE <accepted percentage of packets\r
145     lost at PDR rate>""\r
146 \r
147 - NDR and PDR are measured for the following L2 frame sizes:\r
148 \r
149   - IPv4: 64B, IMIX_v4_1 (28x64B,16x570B,4x1518B), 1518B, 9000B.\r
150   - IPv6: 78B, 1518B, 9000B.\r
151 \r
152 \r
153 Packet Latency Measurements\r
154 ---------------------------\r
155 \r
156 TRex Traffic Generator (TG) is used for measuring latency of VPP DUTs. Reported\r
157 latency values are measured using following methodology:\r
158 \r
159 - Latency tests are performed at 10%, 50% of discovered NDR rate (non drop rate)\r
160   for each NDR throughput test and packet size (except IMIX).\r
161 - TG sends dedicated latency streams, one per direction, each at the rate of\r
162   10kpps at the prescribed packet size; these are sent in addition to the main\r
163   load streams.\r
164 - TG reports min/avg/max latency values per stream direction, hence two sets\r
165   of latency values are reported per test case; future release of TRex is\r
166   expected to report latency percentiles.\r
167 - Reported latency values are aggregate across two SUTs due to three node\r
168   topology used for all performance tests; for per SUT latency, reported value\r
169   should be divided by two.\r
170 - 1usec is the measurement accuracy advertised by TRex TG for the setup used in\r
171   FD.io labs used by CSIT project.\r
172 - TRex setup introduces an always-on error of about 2*2usec per latency flow -\r
173   additonal Tx/Rx interface latency induced by TRex SW writing and reading\r
174   packet timestamps on CPU cores without HW acceleration on NICs closer to the\r
175   interface line.\r
176 \r
177 \r
178 KVM VM vhost Measurements\r
179 -------------------------\r
180 \r
181 CSIT |release| introduced environment configuration changes to KVM Qemu vhost-\r
182 user tests in order to more representatively measure VPP-17.01 performance in\r
183 configurations with vhost-user interfaces and VMs.\r
184 \r
185 Current setup of CSIT FD.io performance lab is using tuned settings for more\r
186 optimal performance of KVM Qemu:\r
187 \r
188 - Default Qemu virtio queue size of 256 descriptors.\r
189 - Adjusted Linux kernel CFS scheduler settings, as detailed on this CSIT wiki\r
190   page: https://wiki.fd.io/view/CSIT/VM-vhost-env-tuning.\r
191 \r
192 Adjusted Linux kernel CFS settings make the NDR and PDR throughput performance\r
193 of VPP+VM system less sensitive to other Linux OS system tasks by reducing\r
194 their interference on CPU cores that are designated for critical software\r
195 tasks under test, namely VPP worker threads in host and Testpmd threads in\r
196 guest dealing with data plan.\r
197 \r
198 Report Addendum Tests - Cryptodev\r
199 ---------------------------------\r
200 \r
201 DPDK Cryptodev functionality support for both SW and HW crypto devices has\r
202 been introduced in VPP-17.01 release. CSIT functional and performance tests\r
203 have been also developed and merged. However due to the factors beyond CSIT\r
204 project control execution of those tests within the LF FD.io test environment\r
205 still need to complete. Once the results become available, they will be\r
206 published as an addendum to the current version of CSIT |release| report.\r
207 \r
208 Report Addendum Tests - Centos\r
209 ------------------------------\r
210 \r
211 CSIT |release| added Centos functional test execution environment in FD.io\r
212 VIRL testbeds.However due to the factors beyond CSIT project control execution\r
213 of those tests within the LF FD.io test environment still need to complete.\r
214 Once the results become available, they will be published as an addendum to\r
215 the current version of CSIT |release| report.\r
216 \r
217 Report Addendum Tests - SNAT44\r
218 ------------------------------\r
219 \r
220 VPP SNAT44 functionality has been introduced in VPP-17.01 release. CSIT\r
221 performance tests are still in development and integration into LFD FD.io test\r
222 environment. Once the tests are fully integrated and results become available,\r
223 they will be published as an addendum to the current version of CSIT |release|\r
224 report.\r
225 \r
226 Known Issues\r
227 ------------\r
228 \r
229 Here is the list of known issues in CSIT |release| for VPP performance tests in physical HW testbed:\r
230 \r
231 +---+-------------------------------------------------+-----------------------------------------------------------------+\r
232 | # | Issue                                           | Description                                                     |\r
233 +---+-------------------------------------------------+-----------------------------------------------------------------+\r
234 | 1 | Sporadic IPv4 routed-forwwarding NDR discovery  | Suspected issue with DPDK IPv4 checksum calculation, VPP jira # |\r
235 |   | test failures for 1518B frame size              | Observed frequency: sporadic, ca. 20% to 30% of test runs       |\r
236 +---+-------------------------------------------------+-----------------------------------------------------------------+\r
237 |   |                                                 |                                                                 |\r
238 +---+-------------------------------------------------+-----------------------------------------------------------------+\r
239 |   |                                                 |                                                                 |\r
240 +---+-------------------------------------------------+-----------------------------------------------------------------+\r