From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 87DA35F38 for ; Tue, 27 Mar 2018 10:19:52 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Mar 2018 01:19:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,366,1517904000"; d="scan'208";a="27862004" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga008.fm.intel.com with ESMTP; 27 Mar 2018 01:19:50 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 27 Mar 2018 01:19:50 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 27 Mar 2018 01:19:50 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.235]) by shsmsx102.ccr.corp.intel.com ([169.254.2.80]) with mapi id 14.03.0319.002; Tue, 27 Mar 2018 16:19:47 +0800 From: "Liu, Yong" To: "Peng, Yuan" , "dts@dpdk.org" CC: "Peng, Yuan" Thread-Topic: [dts] [PATCH v2] test_plans: add test plan of bbdev Thread-Index: AQHTv/ezdj4VRj/9yEyQPEoIV/3+UKPjx1iw Date: Tue, 27 Mar 2018 08:19:47 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62FCB595@SHSMSX103.ccr.corp.intel.com> References: <1521514932-88552-1-git-send-email-yuan.peng@intel.com> In-Reply-To: <1521514932-88552-1-git-send-email-yuan.peng@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYTg3NTIzOTEtZjEzNC00ZWIxLWE4MjAtOGRkMzc1ZTRhODc3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJFRHJKRWNlbmxFUjR1S3dlN2FONGNobmxKRW8rN2JqekdLTTl3dXJMYWZEanJrXC9JNVo2M2p6U0xLQnI3XC8yUWUifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action 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 v2] test_plans: add test plan of bbdev 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: Tue, 27 Mar 2018 08:19:54 -0000 Yuan, few comments are inline. > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Peng Yuan > Sent: Tuesday, March 20, 2018 11:02 AM > To: dts@dpdk.org > Cc: Peng, Yuan > Subject: [dts] [PATCH v2] test_plans: add test plan of bbdev >=20 > BBDEV allow DPDK as a 3gpp Layer 1 signal processing acceleration solutio= n. >=20 > Signed-off-by: Peng Yuan >=20 > diff --git a/test_plans/bbdev_test_plan.rst > b/test_plans/bbdev_test_plan.rst > new file mode 100644 > index 0000000..93ba6a7 > --- /dev/null > +++ b/test_plans/bbdev_test_plan.rst > @@ -0,0 +1,203 @@ > +.. Copyright (c) <2018>, 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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +Wireless device for ICX-D (bbdev) for Turbo decoding/encoding > +=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 > +Description > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > + The Wireless Baseband library provides a common programming framework > that > + abstracts HW accelerators based on FPGA and/or Fixed Function > Accelerators > + that assist with 3gpp Physical Layer processing. Furthermore, it > decouples > + the application from the compute-intensive wireless functions by > abstracting > + their optimized libraries to appear as virtual bbdev devices. > + The functional scope of the BBDEV library are those functions in > relation to > + the 3gpp Layer 1 signal processing (channel coding, modulation, ...). > + The framework currently only supports Turbo Code FEC function. > + The Wireless Baseband library follows the same ideology of DPDK's > Ethernet > + Device and Crypto Device frameworks. Wireless Baseband provides a > generic > + acceleration abstraction framework which supports both physical > (hardware) > + and virtual (software) wireless acceleration functions. > + Now we only support virtual device, In the case of the hardware, of > course > + there will be change in results. This is the aim of having hardware > + acceleration to get the latency and throughput improved. > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + > +1. OS and Hardware > + (a) An AVX2 supporting machine > + (b) Windriver TS 2 or CentOS 7 operating systems > + (Fedora 25 and Ubuntu 16.04 is ok.) > + (c) Intel ICC compiler installed(GCC compiler can be used too.) > + > +2. FlexRAN SDK Libraries > + To build DPDK with the *turbo_sw* PMD the user is required to downloa= d > + the export controlled ``FlexRAN SDK`` Libraries. > + An account at Intel Resource Design Center needs to be registered fro= m > + https://www.intel.com/content/www/us/en/design/resource-design- > center.html > + Direct download link from Intel RDC -> > + https://cdrd.intel.com/v1/dl/getContent/575367 > + After download is complete, the user needs to unpack and compile on > their > + system before building DPDK. > + You can refer to the file dpdk/doc/guides/bbdevs/turbo_sw.rst. > + > +3. PMD setting > + Current BBDEV framework is en-suited with two vdev PMD drivers: > + null and turbo_sw. > + 1) Null PMD is similar to cryptodev Null PMD, which is an empty drive= r > to > + measure the overhead added by the framework. > + 2) Turbo_sw is a sw-only driver wrapper for FlexRAN SDK optimized > Turbo > + coding libraries. > + It can be enabled by setting > + > + ``CONFIG_RTE_LIBRTE_PMD_BBDEV_TURBO_SW=3Dy`` > + > + It is located in the build configuration file ``common_base``. > + > +4. Test tool > + A test suite for BBDEV is packaged with the framework to ease the > + validation needs for various functions and use cases. > + The tool to use for validation and testing is called: test-bbdev, > + that is packaged with test vectors that are ready-to-use. > + Test-bbdev tool is located at this location: > + app/test-bbdev/ > + The command-line options you can refer to: > + dpdk/doc/guides/tools/testbbdev.rst > + > +Test case 1: bbdev null device > +=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 > + Yuan, please remove test case index which is not needed.=20 > +Executing bbdev null device with *bbdev_vector_null.data* helps in > measuring > +the overhead introduced by the bbdev framework:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dbbdev_null0" > + -v ./test_vectors/bbdev_vector_null.data > + > +bbdev_null device does not have to be defined explicitly as it is create= d > +by default. so the command-line can be written as:: > + > + ./test-bbdev.py -v ./test_vectors/bbdev_vector_null.data > + > +the case only cover unittest, all the other cases are skipped. > + > +Test case 2: Turbo encoding validation > +=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 > + > +It runs **validation** test for Turbo encode vector file > +Number of operations to process on device is set to 64 > +and operations timeout is set to 120s > +and enqueue/dequeue burst size is set to 8 and to 32. > +Moreover a bbdev (*turbo_sw*) device will be created:: > + > + ./test-bbdev.py -p ../../x86_64-native-linuxapp-icc/app/testbbdev > + -e=3D"--vdev=3Dturbo_sw" -t 120 -c validation > + -v ./test_vectors/bbdev_vector_te_default.data -n 64 -b 8 32 > + > +you can check the result from the detailed printing, and compare > +the two results from different burst size. > + Yuan, could you please give one simple sample for the result? And please also point out what kind of check is needed. > +Test case 3: Turbo decoding validation > +=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 > + > +It runs **validation** test for Turbo decode vector file > +we use default options:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c validation > + -v ./test_vectors/bbdev_vector_td_default.data > + > +you can check the result from the detailed printing. Same as previous one. > + > +Test case 4: Turbo encoding latency > +=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 > + > +It runs **latency** test for Turbo encode vector file:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c latency > + -v ./test_vectors/bbdev_vector_te_default.data -n 512 -b 64 512 > + > +Test calculates three latency metrics: > +1) offload_latency_tc > +2) offload_latency_empty_q_tc > +3) operation_latency_tc > +You can compare the three latency from different burst size. Same as previous one. > + > +Test case 5: Turbo decoding latency > +=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 > + > +It runs **latency** test for Turbo decode vector file:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c latency > + -v ./test_vectors/bbdev_vector_td_default.data -n 512 -b 64 > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c latency > + -v ./test_vectors/bbdev_vector_td_default.data -n 128 -b 64 > + > +You can compare the three latency from different number of operations. > + > +Test case 6: Turbo encoding throughput > +=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 > + > +It runs **throughput** test for Turbo encode vector file:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c throughput > + -v ./test_vectors/bbdev_vector_te_default.data -n 64 -l 16 -b 64 > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c throughput > + -v ./test_vectors/bbdev_vector_te_default.data -n 64 -l 8 -b 64 > + > +You can compare the turbo encode throughput from different number of > lcores. > +then different burst size:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c throughput > + -v ./test_vectors/bbdev_vector_te_default.data -n 64 -l 16 -b 64 > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c throughput > + -v ./test_vectors/bbdev_vector_te_default.data -n 64 -l 16 -b 32 > + > +You can compare the turbo encode throughput from different burst size. > +then different number of operations:: > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c throughput > + -v ./test_vectors/bbdev_vector_te_default.data -n 64 -l 16 -b 32 > + > + ./test-bbdev.py -e=3D"--vdev=3Dturbo_sw" -c throughput > + -v ./test_vectors/bbdev_vector_te_default.data -n 32 -l 16 -b 32 > + > +You can compare the turbo encode throughput from different number of > +operations. > + > +Test case 7: Turbo decoding throughput > +=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 > + > +It runs **throughput** test for Turbo decode vector file. > +you can run the three subcases of test case 6 which just needed to > +change the test vector file to "bbdev_vector_td_default.data", and > +compare the results. > -- > 2.5.0