From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 9686B1B13F for ; Fri, 19 Oct 2018 05:07:46 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Oct 2018 20:07:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,398,1534834800"; d="scan'208";a="242525950" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga004.jf.intel.com with ESMTP; 18 Oct 2018 20:07:45 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 18 Oct 2018 20:07:44 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 18 Oct 2018 20:07:44 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.60]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.183]) with mapi id 14.03.0319.002; Fri, 19 Oct 2018 11:07:07 +0800 From: "Tu, Lijuan" To: "Wang, FeiX Y" , "dts@dpdk.org" Thread-Topic: [dts] [PATCH V3 1/3] add test plan for performance thread test suite Thread-Index: AQHUZsAty/yyeEtdWkmvKeL0Qq7DsqUl4jbQ Date: Fri, 19 Oct 2018 03:07:06 +0000 Message-ID: <8CE3E05A3F976642AAB0F4675D0AD20E0B97BCF5@SHSMSX101.ccr.corp.intel.com> References: <20181018153835.36477-1-feix.y.wang@intel.com> In-Reply-To: <20181018153835.36477-1-feix.y.wang@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDg1NDUyN2MtM2JjYS00NzViLThiZGYtZTc3ZWRiMzhkNzk4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiemVhT0l2Qk9tTmlTM1RyaUtrWjBsSXhIejc4VmdGOEE2VUxIdlRVdkJNSlV6amFQRjl6NUZjdE1tR3FqSW8zQiJ9 x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V3 1/3] add test plan for performance thread test suite X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Oct 2018 03:07:47 -0000 Comments inline. > -----Original Message----- > From: Wang, FeiX Y > Sent: Thursday, October 18, 2018 11:39 PM > To: dts@dpdk.org > Cc: Tu, Lijuan ; Wang, FeiX Y > Subject: [dts] [PATCH V3 1/3] add test plan for performance thread test s= uite >=20 > From: wang fei >=20 > Signed-off-by: wang fei > --- > test_plans/performance_thread_test_plan.rst | 280 > ++++++++++++++++++++ > 1 file changed, 280 insertions(+) > create mode 100644 test_plans/performance_thread_test_plan.rst >=20 > diff --git a/test_plans/performance_thread_test_plan.rst > b/test_plans/performance_thread_test_plan.rst > new file mode 100644 > index 0000000..09d64a3 > --- /dev/null > +++ b/test_plans/performance_thread_test_plan.rst > @@ -0,0 +1,280 @@ > +.. Copyright (c) <2011-2017>, Intel Corporation > + All rights reserved. > + > + Redistribution and use in source and binary forms, with or without > + modification, are permitted provided that the following conditions > + are met: > + > + - Redistributions of source code must retain the above copyright > + notice, this list of conditions and the following disclaimer. > + > + - Redistributions in binary form must reproduce the above copyright > + notice, this list of conditions and the following disclaimer in > + the documentation and/or other materials provided with the > + distribution. > + > + - Neither the name of Intel Corporation nor the names of its > + contributors may be used to endorse or promote products derived > + from this software without specific prior written permission. > + > + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND > CONTRIBUTORS > + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT > NOT > + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND > FITNESS > + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL > THE > + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, > INDIRECT, > + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES > + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE > GOODS OR > + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > INTERRUPTION) > + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > CONTRACT, > + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF > ADVISED > + OF THE POSSIBILITY OF SUCH DAMAGE. > + > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Performance-thread performance Tests > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +The Performance-Thread results are produced using ``l3fwd-thread`` > application. > +[Lijuan] could you add an introduction here, it is also ok that an abstr= act from the dpdk document. > +For more information about Performance Thread sameple applicaton > please refer to > +link: > http://doc.dpdk.org/guides/sample_app_ug/performance_thread.html > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +1. Hardware requirements: > + > + - For each CPU socket, each memory channel should be populated > with at least 1x DIMM > + - Board is populated with 4x 1GbE or 10GbE ports. Special PCIe > restrictions may > + be required for performance. For example, the following > requirements should be > + met for Intel 82599 (Niantic) NICs: > + > + - NICs are plugged into PCIe Gen2 or Gen3 slots > + - For PCIe Gen2 slots, the number of lanes should be 8x or highe= r > + - A single port from each NIC should be used, so for 4x ports, 4= x > NICs should > + be used > + > + - NIC ports connected to traffic generator. It is assumed that the N= IC > ports > + P0, P1 (as identified by the DPDK application) are connected to th= e > + traffic generator ports TG0, TG1. The application-side port mask o= f > + NIC ports P0, P1 is noted as PORTMASK in this section. > + > +2. BIOS requirements: > + > + - Intel Hyper-Threading Technology is ENABLED > + - Hardware Prefetcher is DISABLED > + - Adjacent Cache Line Prefetch is DISABLED > + - Direct Cache Access is DISABLED > + > +3. Linux kernel requirements: > + > + - Linux kernel has the following features enabled: huge page support= , > UIO, HPET > + - Appropriate number of huge pages are reserved at kernel boot time > + - The IDs of the hardware threads (logical cores) per each CPU socke= t > can be > + determined by parsing the file /proc/cpuinfo. The naming > convention for the > + logical cores is: C{x.y.z} =3D hyper-thread z of physical core y o= f CPU > socket x, > + with typical values of x =3D 0 .. 3, y =3D 0 .. 7, z =3D 0 .. 1. L= ogical cores > + C{0.0.1} and C{0.0.1} should be avoided while executing the test, = as > they are > + used by the Linux kernel for running regular processes. > + > +4. Software application requirements > + > +5. If using vfio the kernel must be >=3D 3.6+ and VT-d must be enabled i= n > bios.When > + using vfio, use the following commands to to load the vfio driver and > bind it > + to the device under test:: > + > + modprobe vfio > + modprobe vfio-pci > + usertools/dpdk-devbind.py --bind=3Dvfio-pci device_bus_id > + > +6. Build dpdk and performance thread sample app > + -> make install RTE_SDK=3D`pwd` T=3Dx86_64-native-linuxapp-gcc > + -> make -C examples/performance-thread RTE_SDK=3D`pwd` > T=3Dx86_64-native-linuxapp-gcc > + > +7. Bind two ports to igb_uio driver and connect these two ports with two > ixia ports > + -> ./usertools/dpdk-devbind.py --bind=3Digb_uio 0000:18:00.0 > 0000:1a:00.0 > + > + > +Detail test cases and test steps > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D [Lijuan] could you clarify the arguments closely to the feature, such as lc= ore, rx tx no-lthread, and how to choose the values, for example , why is "= --rx=3D"(0,0,0,0)(1,0,1,1) --tx=3D"(2,0)(3,1)" > + > +Test Case: one_lcore_per_pcore performance:: > + > + 1: Launch app: > + ./examples/performance-thread/l3fwd-thread/x86_64-native-linu > xapp-gcc/l3fwd-thread \ > + -c ff -n 2 -- -P -p 3 \ > + --enable-jumbo --max-pkt-len 2500 \ > + --rx=3D"(0,0,0,0)(1,0,0,0)" \ > + --tx=3D"(1,0)" \ > + --no-lthread > + ( Note: option "--stat-lcore" is not enabled in the automation > scripts) > + > + 2: Send traffic(see traffic config below) and verify performance > + > + 3: Repeat above tests with below command lines respectively > + > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +| # | Command Line > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|1 |./l3fwd-thread -c ff -n 2 -- -P -p 3 --enable-jumbo --max-pkt-len > 2500 \ | > +| | --rx=3D"(0,0,0,0)(1,0,1,1) --tx=3D"(2,0)(3,1) \ > | > +| | --no-lthread > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|2 |./l3fwd-thread -c ff -n 2 -- -P -p 3 --enable-jumbo --max-pkt-len > 2500 \ | > +| | --rx=3D"(0,0,0,0)(0,1,1,1)(1,0,2,2)(1,1,3,3)" \ > | > +| | --tx=3D"(4,0)(5,1)(6,2)(7,3)" --no-lthread > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|3 |./l3fwd-thread -c ff -n 2 -- -P -p 3 --enable-jumbo --max-pkt-len > 2500 \ | > +| | > --rx=3D"(0,0,0,0)(0,1,1,1)(0,2,2,2)(0,3,3,3)(1,0,4,4)(1,1,5,5)(1,2,6,6)(1= ,3,7,7)" \ > | > +| | > --tx=3D"(8,0)(9,1)(10,2)(11,3)(12,4)(13,5)(14,6)(15,7)" \ > | > +| | --no-lthread > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------| > + > + 4: Check test results output as below table > + > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Cores | Fsize | Unidirectional MPPS | Line Rate(%) | Bidirectional MPP= S | > Line Rate(%) | > ++=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D+ > +| Core N| 64 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 128 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 256 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 512 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 1024 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 2000 | | | > | | > +------------------------------------------------------------------------= -----------------+ > + > + > +Test Case: n_lcore_per_pcore performance:: > + > + 1: Launch app: > + ./examples/performance-thread/l3fwd-thread/x86_64-native-linu > xapp-gcc/l3fwd-thread \ > + --lcores=3D"2,(0-1)@0" -- -P -p 3 \ > + --enable-jumbo --max-pkt-len 2500 \ > + --rx=3D"(0,0,0,0)(1,0,0,0)" \ > + --tx=3D"(1,0)" > + ( Note: option "--stat-lcore" is not enabled in the automation > scripts) > + > + 2: Send traffic(see traffic config below) and verify performance both > directional and bi-directional > + > + 3: Repeat above tests with below command lines respectively > + > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +| # | Command Line > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|1 |./l3fwd-thread -n 2 --lcores=3D"(0-3)@0,4" -- -P -p 3 \ > | > +| | --enable-jumbo --max-pkt-len 2500 \ > | > +| | --rx=3D"(0,0,0,0)(1,0,1,1)" \ > | > +| | --tx=3D"(2,0)(3,1)" \ > | > +| | --no-lthread > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|2 |./l3fwd-thread -n 2 --lcores=3D"(0-7)@0,8" -- -P -p 3 \ > | > +| | --enable-jumbo --max-pkt-len 2500 \ > | > +| | --rx=3D"(0,0,0,0)(0,1,1,1)(1,0,2,2)(1,1,3,3)" \ > | > +| | --tx=3D"(4,0)(5,1)(6,2)(7,3)" \ > | > +| | --no-lthread > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|3 |./l3fwd-thread -n 2 --lcores=3D"(0-15)@0,16" -- -P -p 3 \ > | > +| | --enable-jumbo --max-pkt-len 2500 \ > | > +| | > --rx=3D"(0,0,0,0)(0,1,1,1)(0,2,2,2)(0,3,3,3)(1,0,4,4)(1,1,5,5)(1,2,6,6)(1= ,3,7,7)" \ > | > +| | > --tx=3D"(8,0)(9,1)(10,2)(11,3)(12,4)(13,5)(14,6)(15,7)" \ > | > +| | --no-lthread > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------| > + > + 4: Check test results output as below table: > + > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Cores | Fsize | Unidirectional MPPS | Line Rate(%) | Bidirectional MPP= S | > Line Rate(%) | > ++=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D+ > +| Core N| 64 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 128 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 256 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 512 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 1024 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 2000 | | | > | | > +------------------------------------------------------------------------= -----------------+ > + > + > + > + > +Test Case: n_lthread_per_pcore performance:: > + > + 1: Launch app: > + ./examples/performance-thread/l3fwd-thread/x86_64-native-lin > uxapp-gcc/l3fwd-thread \ > + -c ff -n 2 -- -P -p 3 \ > + --enable-jumbo --max-pkt-len 2500 \ > + ----tx=3D"(0,0)" \ > + --tx=3D"(0,0)" > + ( Note: option "--stat-lcore" is not enabled in the automation > scripts) > + > + 2: Send traffic(see traffic config below) and verify performance bot= h > directional and bi-directional > + > + 3: Repeat above tests with below command lines respectively > + > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +| # | Command Line > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|1 |./l3fwd-thread -c ff -n 2 -- -P -p 3 \ > | > +| | --enable-jumbo --max-pkt-len 2500 \ > | > +| | --rx=3D"(0,0,0,0)(1,0,0,1)" \ > | > +| | --tx=3D"(0,0)(0,1)" \ > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|2 |./l3fwd-thread -c ff -n 2 -- -P -p 3 \ > | > +| | --enable-jumbo --max-pkt-len 2500 \ > | > +| | --rx=3D"(0,0,0,0)(0,1,0,1)(1,0,0,2)(1,1,0,3)" \ > | > +| | --tx=3D"(0,0)(0,1)(0,2)(0,3)" \ > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------+ > +|3 |./l3fwd-thread -c ff -n 2 -- -P -p 3 \ > | > +| | --enable-jumbo --max-pkt-len 2500 \ > | > +| | > --rx=3D"(0,0,0,0)(0,1,0,1)(0,2,0,2)(0,3,0,3)(1,0,0,4)(1,1,0,5)(1,2,0,6)(1= ,3,0,7)" \ > | > +| | --tx=3D"(0,0)(0,1)(0,2)(0,3)(0,4)(0,5)(0,6)(0,7)= " \ > | > ++-----+-----------------------------------------------------------------= ------------------- > -----------------------| > + > + 4: Check test results output as below table: > + > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Cores | Fsize | Unidirectional MPPS | Line Rate(%) | Bidirectional MPP= S | > Line Rate(%) | > ++=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D+=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D+ > +| Core N| 64 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 128 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 256 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 512 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 1024 | | | > | | > ++-------+-------+---------------------+--------------+------------------= --+-------------- > + > +| Core N| 2000 | | | > | | > +------------------------------------------------------------------------= -----------------+ > + > + > + > +How to configure Traffic generator to send traffic: > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > + > +The flows need to be configured and started by the traffic generator: > + > +| > + > ++------+---------+------------+---------------+------------+---------+ > +| Flow | Traffic | MAC | MAC | IPV4 | IPV4 > | > +| | Gen. | Src. | Dst. | Src. | Dest. > | > +| | Port | Address | Address | Address | Address > | > ++------+---------+------------+---------------+------------+---------+ > +| 1 | TG0 | Random MAC | DUT Port0 Mac | Random IP | > 2.1.1.1 | > ++------+---------+------------+---------------+------------+---------+ > +| 2 | TG1 | Random Mac | DUT port1 Mac | Random IP | > 1.1.1.1 | > ++------+---------+------------+---------------+------------+---------+ > + > +| > +Frame sizes should be configured from 64,128,256,512,1024,2000, etc > -- > 2.17.1