From: pmikus Date: Wed, 3 Mar 2021 10:13:28 +0000 (+0000) Subject: Methodology: GSO X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=1d7a226c6d9b237cdb034e40ededbfcc1094f363 Methodology: GSO - Report methodology Signed-off-by: pmikus Change-Id: I1726af15ab003ff6ee4411ca1ceace986d3ee42b Signed-off-by: Maciek Konstantynowicz --- diff --git a/docs/report/introduction/methodology.rst b/docs/report/introduction/methodology.rst index 01059478ed..a597cea8a2 100644 --- a/docs/report/introduction/methodology.rst +++ b/docs/report/introduction/methodology.rst @@ -19,6 +19,7 @@ Test Methodology methodology_acls methodology_multi_core_speedup methodology_hoststack_testing/index + methodology_gso methodology_reconf methodology_vpp_startup_settings methodology_kvm_vms_vhost_user diff --git a/docs/report/introduction/methodology_gso.rst b/docs/report/introduction/methodology_gso.rst new file mode 100644 index 0000000000..35217d0b1e --- /dev/null +++ b/docs/report/introduction/methodology_gso.rst @@ -0,0 +1,136 @@ +.. _gso_methodology: + +Generic Segmentation Offload Tests +---------------------------------- + +Overview +~~~~~~~~ + +Generic Segmentation Offload (GSO) reduces per-packet processing +overhead by enabling applications to pass a multi-packet buffer to +(v)NIC and process a smaller number of large packets (e.g. frame size of +64 KB), instead of processing higher numbers of small packets (e.g. +frame size of 1500 B), thus reducing per-packet overhead. + +|csit-release| introduced GSO tests for VPP vhostuser and tapv2 +interfaces. All tests cases use iPerf3 client and server applications +running TCP/IP as a traffic generator. For performance comparison the +same tests are run without GSO enabled. + +GSO Test Topologies +~~~~~~~~~~~~~~~~~~~ + +Two VPP GSO test topologies are implemented in |csit-release|: + +1. iPerfC_GSOvirtio_LinuxVM --- GSOvhost_VPP_GSOvhost --- iPerfS_GSOvirtio_LinuxVM + + - Tests VPP GSO on vhostuser interfaces and interaction with Linux + virtio with GSO enabled. + +1. iPerfC_GSOtap_LinuxNspace --- GSOtapv2_VPP_GSOtapv2 --- iPerfS_GSOtap_LinuxNspace + + - Tests VPP GSO on tapv2 interfaces and interaction with Linux tap + with GSO enabled. + +Common configuration: + +- iPerfC (client) and iPerfS (server) run in TCP/IP mode without upper + bandwidth limit. +- Trial duration is set to 30 sec. +- iPerfC, iPerfS and VPP run in the single SUT node. + + +VPP GSOtap Topology +------------------- + +VPP Configuration +~~~~~~~~~~~~~~~~~ + +VPP GSOtap tests in |csit-release| are executed without using +hyperthreading. VPP worker runs on a single core. Multi-core tests are +not executed. Each interface belongs to separate namespace. Following core +pinning scheme is used: + +- 1t1c (rxq=1, rx_qsz=4096, tx_qsz=4096) + + - system isolated: 0,28,56,84 + - vpp mt: 1 + - vpp wt: 2 + - vhost: 3-5 + - iperf-s: 6 + - iperf-c: 7 + + +iPerf3 Server Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +iPerf3 version used 3.7 + +:: + + $ sudo -E -S ip netns exec tap1_namespace iperf3 \ + --server --daemon --pidfile /tmp/iperf3_server.pid --logfile /tmp/iperf3.log --port 5201 --affinity + +For the full iPerf3 reference please see: +`iPerf3 docs `_. + + +iPerf3 Client Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +iPerf3 version used 3.7 + +:: + + $ sudo -E -S ip netns exec tap1_namespace iperf3 \ + --client 2.2.2.2 --bind 1.1.1.1 --port 5201 --parallel --time 30.0 --affinity --zerocopy + +For the full iPerf3 reference please see: +`iPerf3 docs `_. + + +VPP GSOvhost Topology +--------------------- + +VPP Configuration +~~~~~~~~~~~~~~~~~ + +VPP GSOvhost tests in |csit-release| are executed without using +hyperthreading. VPP worker runs on a single core. Multi-core tests are +not executed. Following core pinning scheme is used: + +- 1t1c (rxq=1, rx_qsz=1024, tx_qsz=1024) + - system isolated: 0,28,56,84 + - vpp mt: 1 + - vpp wt: 2 + - vm-iperf-s: 3,4,5,6,7 + - vm-iperf-c: 8,9,10,11,12 + - iperf-s: 1 + - iperf-c: 1 + +iPerf3 Server Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +iPerf3 version used 3.7 + +:: + + $ sudo iperf3 \ + --server --daemon --pidfile /tmp/iperf3_server.pid --logfile /tmp/iperf3.log --port 5201 --affinity X + +For the full iPerf3 reference please see: +`iPerf3 docs `_. + + +iPerf3 Client Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +iPerf3 version used 3.7 + +:: + + $ sudo iperf3 \ + --client 2.2.2.2 --bind 1.1.1.1 --port 5201 --parallel --time 30.0 --affinity X --zerocopy + +For the full iPerf3 reference please see: +`iPerf3 docs `_. \ No newline at end of file