From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 6D37B9AD8 for ; Fri, 29 May 2015 10:50:09 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 29 May 2015 01:50:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,515,1427785200"; d="scan'208";a="702015380" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga001.jf.intel.com with ESMTP; 29 May 2015 01:50:07 -0700 Received: from shecgisg003.sh.intel.com (shecgisg003.sh.intel.com [10.239.29.90]) by shvmail01.sh.intel.com with ESMTP id t4T8o55o010221; Fri, 29 May 2015 16:50:05 +0800 Received: from shecgisg003.sh.intel.com (localhost [127.0.0.1]) by shecgisg003.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id t4T8o2U6025513; Fri, 29 May 2015 16:50:04 +0800 Received: (from jingguox@localhost) by shecgisg003.sh.intel.com (8.13.6/8.13.6/Submit) id t4T8o2t1025509; Fri, 29 May 2015 16:50:02 +0800 From: Jingguo Fu To: dts@dpdk.org Date: Fri, 29 May 2015 16:49:58 +0800 Message-Id: <1432889398-25470-2-git-send-email-jingguox.fu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1432889398-25470-1-git-send-email-jingguox.fu@intel.com> References: <1432889398-25470-1-git-send-email-jingguox.fu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Jingguo Fu Subject: [dts] =?utf-8?q?=5BDTS=5D=5BPATCH_2/2=5D_pmd_rss_reta=3A_add_rss_?= =?utf-8?q?reta_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: , X-List-Received-Date: Fri, 29 May 2015 08:50:10 -0000 Signed-off-by: Jingguo Fu --- test_plans/pmdrssreta_test_plan.rst | 178 ++++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 test_plans/pmdrssreta_test_plan.rst diff --git a/test_plans/pmdrssreta_test_plan.rst b/test_plans/pmdrssreta_test_plan.rst new file mode 100644 index 0000000..d621d51 --- /dev/null +++ b/test_plans/pmdrssreta_test_plan.rst @@ -0,0 +1,178 @@ +.. Copyright (c) <2011>, 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. + +================================================================ +reta(Redirection table) benchmark Results of the 82599 10GbE PMD +================================================================ + +This document provides test plan for benchmarking of Rss reta(Redirection +table) updating for the IntelĀ® 82599 10 Gigabit Ethernet Controller +(Niantic) Poll Mode Driver (PMD) in userland runtime configurations. +The content of Rss Redirection table are not defined following reset +of the Memory Configuration registers. System software must initialize +the table prior to enabling multiple receive queues .It can also update +the redirection table during run time. Such updates of the table are +not synchronized with the arrival time of received packets. + +Prerequisites +------------- + +2x IntelĀ® 82599 (Niantic) NICs (2x 10GbE full duplex optical ports per NIC) +plugged into the available PCIe Gen2 8-lane slots. To avoid PCIe bandwidth +bottlenecks at high packet rates, a single optical port from each NIC is +connected to the traffic generator. + + +Network Traffic +--------------- + +The RSS feature is designed to improve networking performance by load balancing +the packets received from a NIC port to multiple NIC RX queues, with each queue +handled by a different logical core. + +#1. The receive packet is parsed into the header fields used by the hash +operation (such as IP addresses, TCP port, etc.) + +#2. A hash calculation is performed. The 82599 supports a single hash function, +as defined by MSFT RSS. The 82599 therefore does not indicate to the device +driver which hash function is used. The 32-bit result is fed into the packet +receive descriptor. + +#3. The seven LSBs of the hash result are used as an index into a 128-entry +'redirection table'. Each entry provides a 4-bit RSS output index. + +The RSS RETA update feature is designed to make RSS more flexible by allowing +users to define the correspondence between the seven LSBs of hash result and +the queue id(RSS output index) by themself. + + +Test Case: Results - IO Forwarding Mode +======================================== + +The following RX Ports/Queues configurations have to be benchmarked: + +- 1 RX port / 2 RX queues (1P/2Q) + +- 1 RX port / 9 RX queues (1P/9Q) + +- 1 RX ports / 16 RX queues (1P/16Q) + + +Testpmd configuration - 2 RX/TX queues per port +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + testpmd -cffffff -n 3 -b 0000:05:00.1 -- -i --rxd=512 --txd=512 --burst=32 \ + --txpt=36 --txht=0 --txwt=0 --txfreet=32 --rxfreet=64 --txrst=32 --mbcache=128 \ + --rxq=2 --txq=2 + +Testpmd configuration - 9 RX/TX queues per port +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + testpmd -cffffff -n 3 -b 0000:05:00.1 -- -i --rxd=512 --txd=512 --burst=32 \ + --txpt=36 --txht=0 --txwt=0 --txfreet=32 --rxfreet=64 --txrst=32 --mbcache=128 \ + --rxq=9 --txq=9 + +Testpmd configuration - 16 RX/TX queues per port +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + testpmd -cffffff -n 3 -b 0000:05:00.1 -- -i --rxd=512 --txd=512 --burst=32 \ + --txpt=36 --txht=0 --txwt=0 --txfreet=32 --rxfreet=64 --txrst=32 --mbcache=128 \ + --rxq=16 --txq=16 + +The -n command is used to select the number of memory channels. It should match the number of memory channels on that setup. +The -b command is used to prevent the use of pic port to receive packets. It should match the pci number of the pci device. + +Testpmd Configuration Options +----------------------------- + +By default, a single logical core runs the test. +The CPU IDs and the number of logical cores running the test in parallel can +be manually set with the ``set corelist X,Y`` and the ``set nbcore N`` +interactive commands of the ``testpmd`` application. + +#1. Reta Configuration. 128 reta entries configuration:: + + testpmd command: port config 0 rss reta (hash_index,queue_id) + +#2. PMD fwd only receive the packets:: + + testpmd command: set fwd rxonly + +#3. rss recived package type configuration two received packet types configuration:: + + testpmd command: port config 0 rss ip/udp + +#4. verbose configuration:: + + testpmd command: set verbose 8 + +#5. start packet receive:: + + testpmd command: start + +tester Configuration +-------------------- + +#1. In order to make most entries of the reta to be tested,the traffic generator +has to be configured to randomize the value of the 5-tuple fields of the +transmitted IP/UDP packets so that RSS hash function output of 5-tuple fileds covers +most of reta index. + +#2. set the package numbers of one burst to a centain value. + + +Example output (1P/2Q) received by the dut)::: +----------------------------------------------- + ++--------------+-------------+------------+-----------------+------+ +| packet index | hash output | rss output | actual queue id | pass | ++--------------+-------------+------------+-----------------+------+ +| 0 | | | | | ++--------------+-------------+------------+-----------------+------+ +| 1 | | | | | ++--------------+-------------+------------+-----------------+------+ +| 2 | | | | | ++--------------+-------------+------------+-----------------+------+ +| etc. | | | | | ++--------------+-------------+------------+-----------------+------+ +| 125 | | | | | ++--------------+-------------+------------+-----------------+------+ +| 126 | | | | | ++--------------+-------------+------------+-----------------+------+ +| 127 | | | | | ++--------------+-------------+------------+-----------------+------+ -- 2.1.0