X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=docs%2Freport%2Fvpp_performance_tests%2Fcsit_release_notes.rst;h=d1045bff75922d72897ad9044cc4ee9824e92efb;hp=0ee3e82f59412f510e0d656a837994c955832437;hb=0da2c5e0d0bd852d50d4f9c4ecdd13d0c4effb5a;hpb=1e2bf354994a7ec53c1acee2d1c2fe2208f7c905 diff --git a/docs/report/vpp_performance_tests/csit_release_notes.rst b/docs/report/vpp_performance_tests/csit_release_notes.rst index 0ee3e82f59..d1045bff75 100644 --- a/docs/report/vpp_performance_tests/csit_release_notes.rst +++ b/docs/report/vpp_performance_tests/csit_release_notes.rst @@ -4,148 +4,211 @@ CSIT Release Notes Changes in CSIT |release| ------------------------- -#. Test environment changes in VPP data plane performance tests: +#. Added VPP performance tests - - Further characterization and optimizations of VPP vhost-user and VM - test methodology and test environment; + - **Container Topologies Orchestrated by K8s with VPP memif tests** - - Tests with varying Qemu virtio queue (a.k.a. vring) sizes: - [vr256] default 256 descriptors, [vr1024] 1024 descriptors to - optimize for packet throughput; + - Added tests with VPP in L2 Cross-Connect and Bridge-Domain + configurations containers, with service chain topologies orchestrated by + Kubernetes. Added following forwarding topologies: i) "Parallel" with + packets flowing from NIC via VPP to container and back to VPP and NIC; + ii) "Chained" a.k.a. "Snake" with packets flowing via VPP to container, + back to VPP, to next container, back to VPP and so on until the last + container in chain, then back to VPP and NIC; iii) "Horizontal" with + packets flowing via VPP to container, then via "horizontal" memif to + next container, and so on until the last container, then back to VPP and + NIC;. - - Tests with varying Linux CFS (Completely Fair Scheduler) - settings: [cfs] default settings, [cfsrr1] CFS RoundRobin(1) - policy applied to all data plane threads handling test packet - path including all VPP worker threads and all Qemu testpmd - poll-mode threads; + - **VPP TCP/IP stack** - - Resulting test cases are all combinations with [vr256,vr1024] and - [cfs,cfsrr1] settings; + - Added tests for VPP TCP/IP stack using VPP built-in HTTP server. + WRK traffic generator is used as a client-side; - - For more detail see performance results observations section in - this report; + - **SRv6 tests** -#. Code updates and optimizations in CSIT performance framework: + - Initial SRv6 (Segment Routing IPv6) tests verifying performance of + IPv6 and SRH (Segment Routing Header) encapsulation, decapsulation, + lookups and rewrites based on configured End and End.DX6 SRv6 egress + functions; - - Complete CSIT framework code revision and optimizations as descried - on CSIT wiki page - `Design_Optimizations `_. + - **IPSecSW tests** - - For more detail see the :ref:`CSIT Framework Design ` section - in this report; + - SW computed IPSec encryption with AES-GCM, CBC-SHA1 ciphers, in + combination with IPv4 routed-forwarding; -#. Changes to CSIT driver for TRex Traffic Generator: +#. Presentation and Analytics Layer - - Complete refactor of TRex CSIT driver; + - Added throughput speedup analysis for multi-core and multi-thread + VPP tests into Presentation and Analytics Layer (PAL) for automated + CSIT test results analysis; - - Introduction of packet traffic profiles to improve usability and - manageability of traffic profiles for a growing number of test - scenarios. +#. Other improvements - - Support for packet traffic profiles to test IPv4/IPv6 stateful and - stateless DUT data plane features; + - **Framework optimizations** -#. Added VPP performance tests + - Ability to run CSIT framework on ARM architecture; - - **Linux Container VPP memif virtual interface tests** + - Overall stability improvements; - - VPP Memif virtual interface (shared memory interface) tests - interconnecting VPP instances over memif. VPP vswitch - instance runs in bare-metal user-mode handling Intel x520 NIC - 10GbE interfaces and connecting over memif (Master side) virtual - interfaces to another instance of VPP running in bare-metal Linux - Container (LXC) with memif virtual interfaces (Slave side). LXC - runs in a priviliged mode with VPP data plane worker threads - pinned to dedicated physical CPU cores per usual CSIT practice. - Both VPP run the same version of software. This test topology is - equivalent to existing tests with vhost-user and VMs. +Performance Changes +------------------- - - **Stateful Security Groups** +Substantial changes in measured packet throughput have been observed in a +number of CSIT |release| tests listed below. Relative changes for this release +are calculated against the test results listed in CSIT |release-1| report. The +comparison is calculated between the mean values based on collected and +archived test results' samples for involved VPP releases. Standard deviation +has been also listed for CSIT |release|. - - New tests of VPP stateful security-groups a.k.a. acl-plugin - functionally compatible with networking-vpp OpenStack; +NDR Throughput: Best 20 Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - New tested security-groups access-control-lists (acl) - configuration variants include: [iaclNsl] input acl stateless, - [oaclNsl] output acl stateless, [iaclNsf] input acl stateful - a.k.a. reflect, [oaclNsf] output acl stateful a.k.a. reflect, - where N is number of access-control-entries (ace) in the acl. +.. only:: html - - Testing packet flows transmitted by TG: 100, 10k, 100k, always - hitting the last permit entry in acl. + .. csv-table:: + :align: center + :file: ../../../_build/_static/vpp/performance-changes-ndr-1t1c-top.csv - - **VPP vhost and VM tests** +.. only:: latex - - New VPP vhost-user and VM test cases to benchmark performance of - VPP and VM topologies with Qemu and CFS policy combinations of - [vr256,vr1024] x [cfs,cfsrr1]; + .. raw:: latex - - Statistical analysis of repeatibility of results; + \makeatletter + \csvset{ + perfimprovements column width/.style={after head=\csv@pretable\begin{longtable}{m{4cm} m{#1} m{#1} m{#1} m{#1} m{#1}}\csv@tablehead}, + } + \makeatother -Performance Improvements ------------------------- + {\tiny + \csvautobooklongtable[separator=comma, + respect all, + no check column count, + perfimprovements column width=1cm, + late after line={\\\hline}, + late after last line={\end{longtable}} + ]{../_build/_static/vpp/performance-changes-ndr-1t1c-top.csv} + } -Substantial improvements in measured packet throughput have been -observed in a number of CSIT |release| tests listed below, with relative -increase of double-digit percentage points. Relative improvements for -this release are calculated against the test results listed in CSIT -|release-1| report. The comparison is calculated between the mean values -based on collected and archived test results' samples for involved VPP -releases. Standard deviation has been also listed for CSIT |release|. -VPP-16.09 and VPP-17.01 numbers are provided for reference. +NDR Throughput: Worst 20 Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -NDR Throughput -~~~~~~~~~~~~~~ +.. only:: html -Non-Drop Rate Throughput discovery tests: + .. csv-table:: + :align: center + :file: ../../../_build/_static/vpp/performance-changes-ndr-1t1c-bottom.csv -.. csv-table:: - :align: center - :header: VPP Functionality,Test Name,VPP-16.09 [Mpps],VPP-17.01 [Mpps],VPP-17.04 mean [Mpps],VPP-17.07 mean [Mpps],VPP-17.07 stdev [Mpps],17.04 to 17.07 change - :file: ../../../docs/report/vpp_performance_tests/performance_improvements/ndr_throughput.csv +.. only:: latex -PDR Throughput -~~~~~~~~~~~~~~ + .. raw:: latex -Partial Drop Rate thoughput discovery tests with packet Loss Tolerance of 0.5%: + \makeatletter + \csvset{ + perfimprovements column width/.style={after head=\csv@pretable\begin{longtable}{m{4cm} m{#1} m{#1} m{#1} m{#1} m{#1}}\csv@tablehead}, + } + \makeatother -.. csv-table:: - :align: center - :header: VPP Functionality,Test Name,VPP-16.09 [Mpps],VPP-17.01 [Mpps],VPP-17.04 mean [Mpps],VPP-17.07 mean [Mpps],VPP-17.07 stdev [Mpps],17.04 to 17.07 change - :file: ../../../docs/report/vpp_performance_tests/performance_improvements/pdr_throughput.csv + {\tiny + \csvautobooklongtable[separator=comma, + respect all, + no check column count, + perfimprovements column width=1cm, + late after line={\\\hline}, + late after last line={\end{longtable}} + ]{../../_build/_static/vpp/performance-changes-ndr-1t1c-bottom.csv} + } -Measured improvements are in line with VPP code optimizations listed in -`VPP-17.07 release notes -`_. +.. only:: html -Other Performance Changes -------------------------- + NDR Throughput: All Changes + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Complete results for all NDR tests are available in a CSV and pretty + ASCII formats: + + - `csv format for 1t1c <../_static/vpp/performance-changes-ndr-1t1c-full.csv>`_, + - `csv format for 2t2c <../_static/vpp/performance-changes-ndr-2t2c-full.csv>`_, + - `csv format for 4t4c <../_static/vpp/performance-changes-ndr-4t4c-full.csv>`_, + - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-ndr-1t1c-full.txt>`_, + - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-ndr-2t2c-full.txt>`_, + - `pretty ASCII format for 4t4c <../_static/vpp/performance-changes-ndr-4t4c-full.txt>`_. + +PDR Throughput: Best 20 Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. only:: html -Other changes in measured packet throughput, with either minor relative -increase or decrease, have been observed in a number of CSIT |release| -tests listed below. Relative changes are calculated against the test -results listed in CSIT |release-1| report. + .. csv-table:: + :align: center + :file: ../../../_build/_static/vpp/performance-changes-pdr-1t1c-top.csv -NDR Throughput -~~~~~~~~~~~~~~ +.. only:: latex -Non-Drop Rate Throughput discovery tests: + .. raw:: latex -.. csv-table:: - :align: center - :header: VPP Functionality,Test Name,VPP-16.09 [Mpps],VPP-17.01 [Mpps],VPP-17.04 mean [Mpps],VPP-17.07 mean [Mpps],VPP-17.07 stdev [Mpps],17.04 to 17.07 change - :file: ../../../docs/report/vpp_performance_tests/performance_improvements/ndr_throughput_others.csv + \makeatletter + \csvset{ + perfimprovements column width/.style={after head=\csv@pretable\begin{longtable}{m{4cm} m{#1} m{#1} m{#1} m{#1} m{#1}}\csv@tablehead}, + } + \makeatother -PDR Throughput -~~~~~~~~~~~~~~ + {\tiny + \csvautobooklongtable[separator=comma, + respect all, + no check column count, + perfimprovements column width=1cm, + late after line={\\\hline}, + late after last line={\end{longtable}} + ]{../../../_build/_static/vpp/performance-changes-pdr-1t1c-top.csv} + } -Partial Drop Rate thoughput discovery tests with packet Loss Tolerance of 0.5%: +PDR Throughput: Worst 20 Changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. csv-table:: - :align: center - :header: VPP Functionality,Test Name,VPP-16.09 [Mpps],VPP-17.01 [Mpps],VPP-17.04 mean [Mpps],VPP-17.07 mean [Mpps],VPP-17.07 stdev [Mpps],17.04 to 17.07 change - :file: ../../../docs/report/vpp_performance_tests/performance_improvements/pdr_throughput_others.csv +.. only:: html + + .. csv-table:: + :align: center + :file: ../../../_build/_static/vpp/performance-changes-pdr-1t1c-bottom.csv + +.. only:: latex + + .. raw:: latex + + \makeatletter + \csvset{ + perfimprovements column width/.style={after head=\csv@pretable\begin{longtable}{m{4cm} m{#1} m{#1} m{#1} m{#1} m{#1}}\csv@tablehead}, + } + \makeatother + + {\tiny + \csvautobooklongtable[separator=comma, + respect all, + no check column count, + perfimprovements column width=1cm, + late after line={\\\hline}, + late after last line={\end{longtable}} + ]{../../../../_build/_static/vpp/performance-changes-pdr-1t1c-bottom.csv} + } +.. only:: html + + PDR Throughput: All Changes + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Complete results for all PDR tests are available in a CSV and pretty + ASCII formats: + + - `csv format for 1t1c <../_static/vpp/performance-changes-pdr-1t1c-full.csv>`_, + - `csv format for 2t2c <../_static/vpp/performance-changes-pdr-2t2c-full.csv>`_, + - `csv format for 4t4c <../_static/vpp/performance-changes-pdr-4t4c-full.csv>`_, + - `pretty ASCII format for 1t1c <../_static/vpp/performance-changes-pdr-1t1c-full.txt>`_, + - `pretty ASCII format for 2t2c <../_static/vpp/performance-changes-pdr-2t2c-full.txt>`_, + - `pretty ASCII format for 4t4c <../_static/vpp/performance-changes-pdr-4t4c-full.txt>`_. + +Measured improvements are in line with VPP code optimizations listed in +`VPP-17.10 release notes +`_. Known Issues ------------ @@ -155,27 +218,16 @@ Here is the list of known issues in CSIT |release| for VPP performance tests: +---+-------------------------------------------------+------------+-----------------------------------------------------------------+ | # | Issue | Jira ID | Description | +---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 1 | Security-groups acl-plugin scale tests failure | CSIT-731 | VPP with 2 worker threads crashes during security-groups | -| | with stateful acls if VPP with 2 worker threads | VPP-912 | iaclNsf and oaclNsf tests with 100k flows. | -+---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 2 | VPP fails memif tests in 4 worker 2 core setup | CSIT-732 | VPP with 4 worker threads running on 2 physical cores crashes | -| | | VPP-920 | during memif tests. Initial debugging points to DPDK code | -+---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 3 | NDR discovery test failures 1518B frame size | VPP-663 | VPP reporting errors: dpdk-input Rx ip checksum errors. | -| | for ip4scale200k, ip4scale2m scale IPv4 routed- | | Observed frequency: all test runs. | -| | forwarding tests. ip4scale20k tests are fine. | | | -+---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 4 | Vic1385 and Vic1227 low performance. | VPP-664 | Low NDR performance. | +| 1 | Vic1385 and Vic1227 low performance. | VPP-664 | Low NDR performance. | | | | | | +---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 5 | Sporadic NDR discovery test failures on x520. | CSIT-750 | Suspected issue with HW settings (BIOS, FW) in LF | +| 2 | Sporadic NDR discovery test failures on x520. | CSIT-750 | Suspected issue with HW combination of X710-X520 in LF | | | | | infrastructure. Issue can't be replicated outside LF. | +---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 6 | VPP in 2t2c setups - large variation | CSIT-568 | Suspected NIC firmware or DPDK driver issue affecting NDR | +| 3 | VPP in 2t2c setups - large variation | CSIT-568 | Suspected NIC firmware or DPDK driver issue affecting NDR | | | of discovered NDR throughput values across | | throughput. Applies to XL710 and X710 NICs, x520 NICs are fine. | | | multiple test runs with xl710 and x710 NICs. | | | +---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -| 7 | Lower than expected NDR and PDR throughput with | CSIT-569 | Suspected NIC firmware or DPDK driver issue affecting NDR and | +| 4 | Lower than expected NDR throughput with | CSIT-569 | Suspected NIC firmware or DPDK driver issue affecting NDR and | | | xl710 and x710 NICs, compared to x520 NICs. | | PDR throughput. Applies to XL710 and X710 NICs. | +---+-------------------------------------------------+------------+-----------------------------------------------------------------+ -