[dpdk-dev] [PATCH v7 00/19] support multi-pthread per core

Wan, Qun qun.wan at intel.com
Tue Feb 17 03:20:24 CET 2015


Tested-by: qun.wan <qun.wan at intel.com>

Patch name:            [PATCH v7 00/19] support multi-pthread per core

Test Flag:                  Tested-by

Tester name:           qun.wan at intel.com

Result summary:     total 46 cases, 46 passed, 0 failed



OS Environment:      Linux Fedora 20 3.17.8-200.fc20.x86_64/FreeBSD10

Gcc:                             gcc version 4.8.3 20140911

CPU:                            Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz

NIC:                             Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection

Test Result:               PASSED

Detail:                         Command line test including positive test and negative test


x86_64-native-linuxapp-gcc

Niantic


./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,127)@(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,64-66)@(4,5)' -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


./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

x86_64-native-bsdapp-gcc

./x86_64-native-bsdapp-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-bsdapp-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-bsdapp-gcc/app/testpmd --lcores='(0,127)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='2-5,6,7-9' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='2, (3-5)@ 3' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,64-66)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,7-4)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0-,4-7)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(-1,4-7)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,4-7-9)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,abcd)@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,4-7)@(1-,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,4-7)@(-1,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-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-bsdapp-gcc/app/testpmd --lcores='(0,4-7)@(abc,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,4-7)@(4,xyz)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0,4-7)=(8,9)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-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-bsdapp-gcc/app/testpmd --lcores='[0-,4-7]@(4,5)' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='(0-,4-7)@[4,5]' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-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-bsdapp-gcc/app/testpmd --lcores='2,,3''2--3' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32


./x86_64-native-bsdapp-gcc/app/testpmd --lcores='2,,,3''2--3' -n 4 -- -i --txfreet=32 --rxfreet=32 --txqflags=0xf01 --txrst=32






Best Regards,

Qun



> -----Original Message-----

> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Cunming Liang

> Sent: Sunday, February 15, 2015 11:15 AM

> To: dev at dpdk.org

> Subject: [dpdk-dev] [PATCH v7 00/19] support multi-pthread per core

>

> v7 changes:

>   update EAL version map for new public EAL API

>   rollback to use strnlen() passing EAL core option

>

> v6 changes:

>   rename RTE_RING_PAUSE_REP(_COUNT) and set default to 0

>   rollback to use RTE_MAX_LCORE when checking valid lcore_id for EAL thread

>

> v5 changes:

>   reorder some patch and split into addtional two patches

>   rte_thread_get_affinity() return type change to avoid

>   add RTE_RING_PAUSE_REP into config and by default turn off

>

> v4 changes:

>   new patch fixing strnlen() invalid return in 32bit icc [03/17]

>   update and add more comments on sched_yield() [16/17]

>

> v3 changes:

>   new patch adding sched_yield() in rte_ring to avoid long spin [16/17]

>

> v2 changes:

>   add '<number>-<number>' support for EAL option '--lcores' [02/17]

>

> The patch series contain the enhancements of EAL and fixes for libraries to run

> multi-pthreads(either EAL or non-EAL thread) per physical core.

> Two major changes list as below:

> - Extend the core affinity of each EAL thread to 1:n.

>   Each lcore stands for a EAL thread rather than a logical core.

>   The change adds new EAL option to allow static lcore to cpuset assginment.

>   Then a lcore(EAL thread) affinity to a cpuset, original 1:1 mapping is the special

> case.

> - Fix the libraries to allow running on any non-EAL thread.

>   It fix the gaps running libraries in non-EAL thread(dynamic created by user).

>   Each fix libraries take care the case of rte_lcore_id() >= RTE_MAX_LCORE.

>

> Thanks a million for the comments from Konstantin, Bruce, Mirek and Stephen in

> RFC review.

>

> Cunming Liang (19):

>   eal: add cpuset into per EAL thread lcore_config

>   eal: fix PAGE_SIZE redefine complaint on freebsd

>   eal: new eal option '--lcores' for cpu assignment

>   eal: fix wrong strnlen() return value in 32bit icc

>   eal: add support parsing socket_id from cpuset

>   eal: new TLS definition and API declaration

>   eal: add eal_common_thread.c for common thread API

>   eal: standardize init sequence between linux and bsd

>   eal: add rte_gettid() to acquire unique system tid

>   eal: apply affinity of EAL thread by assigned cpuset

>   enic: fix re-define freebsd compile complain

>   malloc: fix the issue of SOCKET_ID_ANY

>   log: fix the gap to support non-EAL thread

>   eal: set _lcore_id and _socket_id to (-1) by default

>   eal: fix recursive spinlock in non-EAL thraed

>   mempool: add support to non-EAL thread

>   ring: add support to non-EAL thread

>   ring: add sched_yield to avoid spin forever

>   timer: add support to non-EAL thread

>

>  config/common_bsdapp                               |   1 +

>  config/common_linuxapp                             |   1 +

>  lib/librte_eal/bsdapp/eal/Makefile                 |   1 +

>  lib/librte_eal/bsdapp/eal/eal.c                    |  14 +-

>  lib/librte_eal/bsdapp/eal/eal_lcore.c              |  14 +

>  lib/librte_eal/bsdapp/eal/eal_memory.c             |   8 +-

>  lib/librte_eal/bsdapp/eal/eal_thread.c             |  77 ++---

>  lib/librte_eal/bsdapp/eal/rte_eal_version.map      |   2 +

>  lib/librte_eal/common/eal_common_log.c             |  17 +-

>  lib/librte_eal/common/eal_common_options.c         | 309

> ++++++++++++++++++++-

>  lib/librte_eal/common/eal_common_thread.c          | 150 ++++++++++

>  lib/librte_eal/common/eal_options.h                |   2 +

>  lib/librte_eal/common/eal_thread.h                 |  47 ++++

>  .../common/include/generic/rte_spinlock.h          |   4 +-

>  lib/librte_eal/common/include/rte_eal.h            |  27 ++

>  lib/librte_eal/common/include/rte_lcore.h          |  40 ++-

>  lib/librte_eal/common/include/rte_log.h            |   5 +

>  lib/librte_eal/linuxapp/eal/Makefile               |   4 +

>  lib/librte_eal/linuxapp/eal/eal.c                  |   8 +-

>  lib/librte_eal/linuxapp/eal/eal_lcore.c            |  15 +-

>  lib/librte_eal/linuxapp/eal/eal_thread.c           |  77 ++---

>  lib/librte_eal/linuxapp/eal/rte_eal_version.map    |   2 +

>  lib/librte_malloc/malloc_heap.h                    |   7 +-

>  lib/librte_mempool/rte_mempool.h                   |  18 +-

>  lib/librte_pmd_enic/enic.h                         |   4 +-

>  lib/librte_pmd_enic/enic_compat.h                  |   2 +-

>  lib/librte_pmd_enic/vnic/vnic_dev.c                |   6 +-

>  lib/librte_ring/rte_ring.h                         |  41 ++-

>  lib/librte_timer/rte_timer.c                       |  32 ++-

>  lib/librte_timer/rte_timer.h                       |   4 +-

>  30 files changed, 770 insertions(+), 169 deletions(-)  create mode 100644

> lib/librte_eal/common/eal_common_thread.c

>

> --

> 1.8.1.4




More information about the dev mailing list