[dts] [PATCH V1 1/2] multiple_pthread: Add test plan

Liu, Yong yong.liu at intel.com
Fri Jun 23 19:17:45 CEST 2017


Lijuan, some comments below.

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Lijuan Tu
> Sent: Thursday, June 15, 2017 9:59 PM
> To: dts at dpdk.org
> Cc: Tu, LijuanX A <lijuanx.a.tu at intel.com>
> Subject: [dts] [PATCH V1 1/2] multiple_pthread: Add test plan
> 
> Signed-off-by: Lijuan Tu <lijuanx.a.tu at intel.com>
> ---
>  test_plans/multiple_pthread_test_plan.rst | 151
> ++++++++++++++++++++++++++++++
>  1 file changed, 151 insertions(+)
>  create mode 100644 test_plans/multiple_pthread_test_plan.rst
> 
> diff --git a/test_plans/multiple_pthread_test_plan.rst
> b/test_plans/multiple_pthread_test_plan.rst
> new file mode 100644
> index 0000000..4de4643
> --- /dev/null
> +++ b/test_plans/multiple_pthread_test_plan.rst
> @@ -0,0 +1,151 @@
> +.. Copyright (c) < 2017 >, 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.
> +
> +=====================
> +Multiple Pthread Test
> +=====================
> +
> +
> +Description
> +-----------
> +
> +This test is a basic multiple pthread test which demonstrates the basics
> +of control group. Cgroup is a Linux kernel feature that limits, accounts
> +for and isolates the resource usage, like CPU, memory, disk I/O, network,
> +etc of a collection of processes. Now, it's focus on the CPU usage.
> +
> +Prerequisites
> +-------------
> +Support igb_uio driver, kernel is 3.11+.
> +Use "modeprobe uio" "modprobe igb_uio" and then
> +use "./tools/dpdk_nic_bind.py --bind=igb_uio device_bus_id" to bind the
> ports.
> +
> +Assuming that an Intel� DPDK build has been set up and the testpmd
> +applications have been built.
> +
> +Os required: Linux and FreeBSD
> +
> +Test Case 1: Basic operation
> +----------------------------
> +
> +To run the application, start the testpmd with the lcoress all running
> with
> +threads and also the unique core assigned, command as follows::
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='0 at 8,(4-5)@9' -n 4
> -- -i --portmask=0xc
> +    EAL: Master lcore 0 is ready (tid=ffd4900;cpuset=[8])
> +    EAL: lcore 4 is ready (tid=873e7700;cpuset=[9])
> +    EAL: lcore 5 is ready (tid=873e7700;cpuset=[9])
> +
> +To check the output, we shall make sure the lcore are init on the correct
> cpu.
> +e.g. Duing INIT log we can found below:
> +
> +The process should start successfully and display a command prompt as
> follows::
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='0 at 8,(4-5)@9' -n 4
> -- -i --portmask=0xc
> +    Checking link statuses...
> +    Port 0 Link Up - speed 10000 Mbps - full-duplex
> +    Port 1 Link Up - speed 10000 Mbps - full-duplex
> +    Done
> +
> +Start the packet forwarding as follows::
> +
> +    testpmd>set fwd mac
> +
> +Before running the test, make sure the core is a unique one otherwise,
> +the throughput will be floating on different cores,
> +another thing is to make sure all the logic cores are running, command as
> follows::
> +
> +    testpmd>set corelist 4,5
> +
> +Pay attention that set corelist need to be configured before start,
> +otherwise, it will not work::
> +
> +    testpmd>start
> +    testpmd>show config fwd
> +
> +Using the command to find the threads that's running, as follows::
> +
> +    ps -C testpmd -L -opid,tid,%cpu,psr,args
> +
> +Result as follows:
> +
> +       PID    TID %CPU PSR COMMAND
> +    179459 179459  0.2   8 ./x86_64-native-linuxapp-gcc/app/testpmd --
> lcores=0 at 8,(4-5)@9 -n 4 -- -i --portmask=0xc
> +    179459 179460  0.0  21 ./x86_64-native-linuxapp-gcc/app/testpmd --
> lcores=0 at 8,(4-5)@9 -n 4 -- -i --portmask=0xc
> +    179461  0.0  21 ./x86_64-native-linuxapp-gcc/app/testpmd --lcores=0
> at 8,(4-5)@9 -n 4 -- -i --portmask=0xc
> +    179459 179462 80.4   9 ./x86_64-native-linuxapp-gcc/app/testpmd --
> lcores=0 at 8,(4-5)@9 -n 4 -- -i --portmask=0xc
> +    179459 179463  0.0   9 ./x86_64-native-linuxapp-gcc/app/testpmd --
> lcores=0 at 8,(4-5)@9 -n 4 -- -i --portmask=0xc
> +
> +You will see that there are two threads running on core 9.
> +The last 2 threads are running threads, their TID will be assigned to the
> tasks in the folder thread0.
> +
> +    cd /sys/fs/cgroup/cpu/dpdk/thread0
> +    echo 179462 > tasks
> +    echo 179463 > tasks
> +
> +Assgined the percentage of cpu these two threads occupy as follows:
> +
Typo issue here, "assigned" should be "assigned".

> +    echo 10000 > cpu.cfs_quota_us
> +
> +This means the two threads will totally occupy 10% of the CPU and each 5%.
> +
> +
> +Test Case 2: Positive Test
> +--------------------------
> +
Please add some description of these settings.


> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='0 at 8,(4-5)@(8-
> 11)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='1,2@(0-4,6),(3-
> 4,6)@5,(7,8)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --
> txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --
> lcores='(0,CONFIG_RTE_MAX_LCORE-1)@(4,5)' -n 4 -- -i --txfreet=32 --
> rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,64-66)@(4,5)' -
> n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='2-5,6,7-9' -n 4 --
> -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='2, (3-5)@ 3' -n 4
> -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,7-4)@(4,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +
> +Test Case 3: Negative Test
> +--------------------------
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0-,4-7)@(4,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(-1,4-7)@(4,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7-9)@(4,5)' -
> n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,abcd)@(4,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7)@(1-,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7)@(-1,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7)@(4,5-8-9)'
> -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7)@(abc,5)' -
> n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7)@(4,xyz)' -
> n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0,4-7)=(8,9)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='2,3 at 4,(0-
> 1,,4))' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='[0-,4-7]@(4,5)' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='(0-,4-7)@[4,5]' -n
> 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='3-4 at 3,2 at 5-6'
> -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='2,,3''2--3' -n 4 -
> - -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> +    ./x86_64-native-linuxapp-gcc/app/testpmd --lcores='2,,,3''2--3' -n 4
> -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32
> --
> 2.5.0



More information about the dts mailing list