[dts] [PATCH V1] test_plans/pmd: clarify pmd test plan
Lijuan Tu
lijuan.tu at intel.com
Tue Mar 5 18:06:33 CET 2019
- extend to general ethernet adapters
- remove some hardcode
- replace benchmark case with signle core performance case
Signed-off-by: Lijuan Tu <lijuan.tu at intel.com>
---
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 <Performance>
+ * 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
More information about the dts
mailing list