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 0F0922BA7 for ; Tue, 5 Mar 2019 09:44:18 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Mar 2019 00:44:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,443,1544515200"; d="scan'208";a="325506903" Received: from juan.sh.intel.com ([10.67.119.80]) by fmsmga005.fm.intel.com with ESMTP; 05 Mar 2019 00:44:16 -0800 From: Lijuan Tu To: dts@dpdk.org Cc: Lijuan Tu Date: Wed, 6 Mar 2019 01:06:33 +0800 Message-Id: <1551805593-11667-1-git-send-email-lijuan.tu@intel.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [dts] [PATCH V1] test_plans/pmd: clarify pmd 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: Tue, 05 Mar 2019 08:44:19 -0000 - extend to general ethernet adapters - remove some hardcode - replace benchmark case with signle core performance case Signed-off-by: Lijuan Tu --- test_plans/pmd_test_plan.rst | 152 +++++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 72 deletions(-) diff --git a/test_plans/pmd_test_plan.rst b/test_plans/pmd_test_plan.rst index 5d2c154..51a77ef 100644 --- a/test_plans/pmd_test_plan.rst +++ b/test_plans/pmd_test_plan.rst @@ -1,4 +1,4 @@ -.. Copyright (c) <2010-2017>, Intel Corporation +.. Copyright (c) <2010-2019>, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without @@ -30,32 +30,30 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -================= -Niantic PMD Tests -================= +====================== +Poll Mode Driver Tests +====================== -This document provides benchmark tests for the userland Intel® -82599 Gigabit Ethernet Controller (Niantic) Poll Mode Driver (PMD). -The userland PMD application runs the ``IO forwarding mode`` test -described in the PMD test plan document with different parameters for -the configuration of Niantic NIC ports. +This document provides benchmark tests for the userland Ethernet Controller Poll Mode Driver (PMD). +The userland PMD application runs the ``IO forwarding mode`` test which described in the PMD test +plan document with different parameters for the configuration of NIC ports. The core configuration description is: - 1C/1T: 1 Physical Core, 1 Logical Core per physical core (1 Hyperthread) - using core #2 (socket 0, 2nd physical core) + eg: using core #2 (socket 0, 2nd physical core) - 1C/2T: 1 Physical Core, 2 Logical Cores per physical core (2 Hyperthreads) - using core #2 and #14 (socket 0, 2nd physical core, 2 Hyperthreads) + eg: using core #2 and #14 (socket 0, 2nd physical core, 2 Hyperthreads) - 2C/1T: 2 Physical Cores, 1 Logical Core per physical core - using core #2 and #4 (socket 0, 2nd and 3rd physical cores) + eg: using core #2 and #4 (socket 0, 2nd and 3rd physical cores) Prerequisites ============= -Each of the 10Gb Ethernet* ports of the DUT is directly connected in +Each of the 10Gb/25Gb/40Gb/100Gb Ethernet* ports of the DUT is directly connected in full-duplex to a different port of the peer traffic generator. Using interactive commands, the traffic generator can be configured to @@ -76,90 +74,100 @@ to the device under test:: modprobe vfio-pci usertools/dpdk-devbind.py --bind=vfio-pci device_bus_id -Test Case: Packet Checking -========================== +If using igb_uio:: -The linuxapp is started with the following parameters: + modprobe uio + modprobe igb_uio + usertools/dpdk-devbind.py --bind=igb_uio device_bus_id -:: +Test Case: Packet Checking +========================== - -c 0xffffff -n 3 -- -i --coremask=0x4 \ - --rxd=512 --txd=512 --burst=32 --txfreet=32 --rxfreet=64 --mbcache=128 --portmask=0xffff \ - --rxpt=4 --rxht=4 --rxwt=16 --txpt=36 --txht=0 --txwt=0 --txrst=32 +#. Start testpmd and start forwarding:: + ./testpmd -c 0xf0 -n 4 -- -i + testpmd> start -The tester sends packets with different sizes (64, 65, 128, 256, 512, 1024, -1280 and 1518 bytes), using scapy, which will be forwarded by the DUT. -The test checks if the packets are correctly forwarded and if both RX and TX -packet sizes match. +#. The tester sends packets with different sizes (64, 65, 128, 256, 512, 1024, 1280 and 1518 bytes) + which will be forwarded by the DUT. The test checks if the packets are correctly forwarded and + if both RX and TX packet sizes match by `show port all stats` Test Case: Descriptors Checking =============================== -The linuxapp is started with the following parameters: +#. Start testpmd with descriptor parameters:: -:: + ./testpmd -c 0xf0 -n 4 -- -i--rxd={rxd} --txd={txd} - -c 0xffffff -n 3 -- -i --coremask=0x4 \ - --rxd={rxd} --txd={txd} --burst=32 --rxfreet=64 --mbcache=128 \ - --portmask=0xffff --txpt=36 --txht=0 --txwt=0 --txfreet=32 --txrst=32 +#. The tester sends packets with different sizes (64, 65, 128, 256, 512, 1024, 1280 and 1518 bytes) + for different values of rxd and txd (128,,256, 512, 1024, 2048 and 4096) + The packets will be forwarded by the DUT. The test checks if the packets are correctly forwarded. +Test Case: Single Core Performance Benchmarking +=============================================== -IXIA sends packets with different sizes (64, 65, 128, 256, 512, 1024, 1280 and -1518 bytes) for different values of rxd and txd (between 128 and 4096) -The packets will be forwarded by the DUT. The test checks if the packets are -correctly forwarded. +Snice this case we focus on CPU single core performance, the network aggregated throughput +must grater than single core performance, then the bottleneck will be the core. +Below is an example setup topology for performance test, NIC (one or more) ports connect to +Traffic Generator ports directly:: -Test Case: Performance Benchmarking -=================================== + Dut Card 0 port 0 ---- Traffic Generator port 0 + Dut Card 1 port 0 ---- Traffic Generator port 1 + ... + DUT Card n port 0 ---- Traffic Generator port n -The linuxapp is started with the following parameters, for each of -the configurations referenced above: +In order to trigger the best performance of NIC, there will be specific setting, and the setting vary +from NIC to NIC. -1C/1T:: +In order to get the best single core performance, Server configuration are required: - -c 0xffffff -n 3 -- -i --coremask=0x4 \ - --rxd=512 --txd=512 --burst=32 --txfreet=32 --rxfreet=64 --mbcache=128 --portmask=0xffff \ - --rxpt=4 --rxht=4 --rxwt=16 --txpt=36 --txht=0 --txwt=0 --txrst=32 +- BIOS -1C/2T:: + * CPU Power and Performance Policy + * CPU C-state Disabled + * CPU P-state Disabled + * Enhanced Intel® Speedstep® Tech + * Disabled Turbo Boost Disabled - -c 0xffffff -n 3 -- -i --coremask=0x4004 \ - --rxd=512 --txd=512 --burst=32 --txfreet=32 --rxfreet=64 --mbcache=128 --portmask=0xffff \ - --rxpt=4 --rxht=4 --rxwt=16 --txpt=36 --txht=0 --txwt=0 --txrst=32 +- Grub -2C/1T:: + * default_hugepagesz=1G hugepagesz=1G hugepages=8 + * isolcpus=1-21,28-48 nohz_full=1-21,28-48 rcu_nocbs=1-21,28-48 - -c 0xffffff -n 3 -- -i --coremask=0x14 \ - --rxd=512 --txd=512 --burst=32 --txfreet=32 --rxfreet=64 --mbcache=128 --portmask=0xffff \ - --rxpt=4 --rxht=4 --rxwt=16 --txpt=36 --txht=0 --txwt=0 --txrst=32 +- Other + * Core and NIC should be in the same socket. -The throughput is measured for each of these cases for the packet size -of 64, 65, 128, 256, 512, 1024, 1280 and 1518 bytes. -The results are printed in the following table: +Test steps: -+-------+---------+---------+---------+-----------+ -| Frame | 1C/1T | 1C/2T | 2C/1 | wirespeed | -| Size | | | | | -+-------+---------+---------+---------+-----------+ -| 64 | | | | | -+-------+---------+---------+---------+-----------+ -| 65 | | | | | -+-------+---------+---------+---------+-----------+ -| 128 | | | | | -+-------+---------+---------+---------+-----------+ -| 256 | | | | | -+-------+---------+---------+---------+-----------+ -| 512 | | | | | -+-------+---------+---------+---------+-----------+ -| 1024 | | | | | -+-------+---------+---------+---------+-----------+ -| 1280 | | | | | -+-------+---------+---------+---------+-----------+ -| 1518 | | | | | -+-------+---------+---------+---------+-----------+ +#. Start testpmd and start io forwading:: + + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x1800000000 -n 4 -- -i--portmask=0x3 -txd=2048 --rxd=2048 --txq=2 --rxq=2 + +#. The tester send packets which will be forwarded by the DUT, record the perfromance numbers. + +The throughput is measured for each of these combinations of different packet size +(64, 65, 128, 256, 512, 1024, 1280 and 1518 bytes) and different value of rxd and txd(128,,256, 512, 1024, 2048 and 4096) +The results are printed in the following table: + +-------+---------+------------+--------+---------------------+ + | Frame | TXD/RXD | Throughput | Rate | Excepted Throughput | + | Size | | | | | + +=======+=========+============+========+=====================+ + | 64 | | | | | + +-------+---------+------------+--------+---------------------+ + | 128 | | | | | + +-------+---------+------------+--------+---------------------+ + | 256 | | | | | + +-------+---------+------------+--------+---------------------+ + | 512 | | | | | + +-------+---------+------------+--------+---------------------+ + | 1024 | | | | | + +-------+---------+------------+--------+---------------------+ + | 1280 | | | | | + +-------+---------+------------+--------+---------------------+ + | 1518 | | | | | + +-------+---------+------------+--------+---------------------+ The memory partial writes are measured with the ``vtbwrun`` application and printed in the following table::: -- 1.8.3.1