From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7A4C4A09D2; Wed, 11 Nov 2020 07:31:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 748A737B4; Wed, 11 Nov 2020 07:31:24 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 675562BAB for ; Wed, 11 Nov 2020 07:31:21 +0100 (CET) IronPort-SDR: w0DWcHuHOpapiysHA53BP9Ca20mYq/AxpXQZvdBvFICf/vvt7tw25gufrvxUS/R8LR9NdXdtRi Afc8BJYFoJqQ== X-IronPort-AV: E=McAfee;i="6000,8403,9801"; a="149951482" X-IronPort-AV: E=Sophos;i="5.77,468,1596524400"; d="scan'208";a="149951482" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2020 22:31:19 -0800 IronPort-SDR: yCSf7hioV2cDkRZkJJYCQrqKwaSVV90aI2IRmmbax6pFKIdd9iN7qnGrSAUm47oZJhLqzcyt7x ChP4x7tcDoXg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,468,1596524400"; d="scan'208";a="308345733" Received: from dpdk-lijuan-purley2.sh.intel.com ([10.67.119.168]) by fmsmga008.fm.intel.com with ESMTP; 10 Nov 2020 22:31:18 -0800 From: hanyingya To: dts@dpdk.org Cc: hanyingya Date: Wed, 11 Nov 2020 14:26:59 +0800 Message-Id: <20201111062701.36217-2-yingyax.han@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201111062701.36217-1-yingyax.han@intel.com> References: <20201111062701.36217-1-yingyax.han@intel.com> Subject: [dts] [PATCH V1 1/3]test_plans: add vf single core test plan 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: , Errors-To: dts-bounces@dpdk.org Sender: "dts" Signed-off-by: hanyingya --- test_plans/vf_single_core_perf_test_plan.rst | 122 +++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 test_plans/vf_single_core_perf_test_plan.rst diff --git a/test_plans/vf_single_core_perf_test_plan.rst b/test_plans/vf_single_core_perf_test_plan.rst new file mode 100644 index 00000000..53cf304a --- /dev/null +++ b/test_plans/vf_single_core_perf_test_plan.rst @@ -0,0 +1,122 @@ +.. Copyright (c) <2020>, 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. + +====================================================== +Benchmark the performance of VF single core forwarding +====================================================== + +Prerequisites +============= + +1. Nic single core performance test requirements: + + 1.1) FVL25G: two dual port FVL25G nics, all installed on the same socket, + pick one port per nic. + 1.2) NNT10G: four 82599 nics, all installed on the same socket, + pick one port per nic. + 1.3) CVL100G: one CVL100G nics, all installed on the same socket, + pick one port per nic. + +2. Software:: + + dpdk: git clone http://dpdk.org/git/dpdk + scapy: http://www.secdev.org/projects/scapy/ + dts (next branch): git clone http://dpdk.org/git/tools/dts, + then "git checkout next" + Trex code: http://trex-tgn.cisco.com/trex/release/v2.84.tar.gz + (to be run in stateless Layer 2 mode, see section in + Getting Started Guide for more details) + python-prettytable: + apt install python-prettytable (for ubuntu os) + or dnf install python-prettytable (for fedora os). + +3. Connect all the selected nic ports to traffic generator(IXIA,TREX, + PKTGEN) ports(TG ports):: + + 2 TG 25g ports for FVL25G ports + 4 TG 10g ports for 4 NNT10G ports + 1 TG 100g ports for CVL100G port + +Test Case : Vf Single Core Performance Measurement +================================================== + +1. Bind PF ports to kernel driver, i40e/ixgbe/ice, then create 1 VF from each PF, + take XXV710 for example:: + + echo 1 > /sys/bus/pci/devices/0000\:af\:00.0/sriov_numvfs + echo 1 > /sys/bus/pci/devices/0000\:b1\:00.1/sriov_numvfs + +2. Set vf mac address:: + + ip link set ens5f0 vf 0 mac 00:12:34:56:78:01 + ip link set ens6f0 vf 0 mac 00:12:34:56:78:02 + +3. Bind all the created VFs to dpdk driver, vfio-pci or igb_uio:: + + ./usertools/dpdk-devbind.py -b vfio-pci af:02.0 b1:02.0 + +4. Start testpmd:: + + ./dpdk-testpmd -l 28,29 -n 4 -- -i --portmask=0x3 --txd=512 --rxd=512 \ + --txq=2 --rxq=2 --nb-cores=1 + + testpmd> set fwd mac + testpmd> start + +5. Configure traffic generator to send traffic:: + + dst mac: peer nic port mac + src ip : random + dst ip : fixed + frame size: 64 byte + transmit rate: 100% + +6. Result tables. + + +-----------+------------+---------+-------------+---------+---------------------+ + | Fwd_core | Frame Size | TXD/RXD | Throughput | Rate | Expected Throughput | + +===========+============+=========+=============+=========+=====================+ + | 1C/1T | 64 | 512 | xxxxx Mpps | xxx % | xxxxxxx Mpps | + +-----------+------------+---------+-------------+---------+---------------------+ + | 1C/1T | 64 | 2048 | xxxxx Mpps | xxx % | xxxxxxx Mpps | + +-----------+------------+---------+-------------+---------+---------------------+ + | 1C/2T | 64 | 512 | xxxxx Mpps | xxx % | xxxxxxx Mpps | + +-----------+------------+---------+-------------+---------+---------------------+ + | 1C/2T | 64 | 2048 | xxxxx Mpps | xxx % | xxxxxxx Mpps | + +-----------+------------+---------+-------------+---------+---------------------+ + + Check throughput and compare it with the expected value. Case will raise failure + if actual throughputs have more than 1Mpps gap from expected ones. + +Note : + The values for the expected throughput may vary due to different platform and OS, + and traffic generator, please correct threshold values accordingly. -- 2.17.1