From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 855DC8E70 for ; Fri, 4 Dec 2015 12:21:34 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP; 04 Dec 2015 03:21:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,380,1444719600"; d="scan'208";a="866556512" Received: from irsmsx152.ger.corp.intel.com ([163.33.192.66]) by fmsmga002.fm.intel.com with ESMTP; 04 Dec 2015 03:21:17 -0800 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.251]) by IRSMSX152.ger.corp.intel.com ([169.254.6.143]) with mapi id 14.03.0248.002; Fri, 4 Dec 2015 11:21:16 +0000 From: "Kulasek, TomaszX" To: "Betts, Ian" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v8 0/4] examples: add performance-thread Thread-Index: AQHRLn9uf1V1SFQrBUmAPYn3DTOZtZ66rqdA Date: Fri, 4 Dec 2015 11:21:15 +0000 Message-ID: <3042915272161B4EB253DA4D77EB373A14E22359@IRSMSX102.ger.corp.intel.com> References: <1449159683-7092-3-git-send-email-ian.betts@intel.com> <1449225265-14480-1-git-send-email-ian.betts@intel.com> In-Reply-To: <1449225265-14480-1-git-send-email-ian.betts@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v8 0/4] examples: add performance-thread X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Dec 2015 11:21:35 -0000 > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ian Betts > Sent: Friday, December 4, 2015 11:34 > To: dev@dpdk.org > Cc: Betts, Ian > Subject: [dpdk-dev] [PATCH v8 0/4] examples: add performance-thread >=20 > This patchset comprises a layer 3 forwarding derivative intended to > facilitate characterization of performance with different threading model= s, > specifically:- >=20 > 1. EAL threads running on different physical cores 2. EAL threads running > on the same physical core 3. Lightweight threads running in an EAL thread >=20 > Purpose and justification >=20 > Since dpdk 2.0 it has been possible to assign multiple EAL threads to a > physical core ( case 2 above ). > Currently no example application has focused on demonstrating the > performance constraints of differing threading models. >=20 > Whilst purpose built applications that fully comprehend the DPDK single > threaded programming model will always yield superior performance, the > desire to preserve ROI in legacy code written for multithreaded operating > environments makes lightweight threads (case 3 above) worthy of > consideration. >=20 > As well as aiding with legacy code reuse, it is anticipated that > lightweight threads will make it possible to scale a multithreaded > application with fine granularity allowing an application to more easily > take advantage of headroom on EAL cores, or conversely occupy more cores, > as dictated by system load. >=20 > To explore performance with lightweight threads a simple cooperative > scheduler subsystem is being included in this example application. > If the expected benefits and use cases prove to be of value, it is > anticipated that this lightweight thread subsystem would become a library > in some future DPDK release. >=20 > Changes in this version > * remove ASM implementation of atomic64_xchg in favor > of builtin __sync_lock_test_and_set() >=20 > Ian Betts (4): > doc: add sample application guide for performance-thread > examples: add lthread subsystem forperformance-thread > examples: add l3fwd-thread example in performance-thread > examples: add pthread_shim example to performance thread >=20 > config/defconfig_x86_64-native-linuxapp-gcc | 2 + > config/defconfig_x86_64-native-linuxapp-icc | 2 + > .../sample_app_ug/img/performance_thread_1.svg | 799 +++++ > .../sample_app_ug/img/performance_thread_2.svg | 865 +++++ > doc/guides/sample_app_ug/index.rst | 1 + > doc/guides/sample_app_ug/performance_thread.rst | 1263 +++++++ > examples/Makefile | 1 + > examples/performance-thread/Makefile | 47 + > examples/performance-thread/common/arch/x86/ctx.c | 93 + > examples/performance-thread/common/arch/x86/ctx.h | 57 + > examples/performance-thread/common/common.mk | 42 + > examples/performance-thread/common/lthread.c | 530 +++ > examples/performance-thread/common/lthread.h | 99 + > examples/performance-thread/common/lthread_api.h | 829 +++++ > examples/performance-thread/common/lthread_cond.c | 240 ++ > examples/performance-thread/common/lthread_cond.h | 77 + > examples/performance-thread/common/lthread_diag.c | 321 ++ > examples/performance-thread/common/lthread_diag.h | 129 + > .../performance-thread/common/lthread_diag_api.h | 319 ++ > examples/performance-thread/common/lthread_int.h | 212 ++ > examples/performance-thread/common/lthread_mutex.c | 255 ++ > examples/performance-thread/common/lthread_mutex.h | 52 + > .../performance-thread/common/lthread_objcache.h | 160 + > examples/performance-thread/common/lthread_pool.h | 332 ++ > examples/performance-thread/common/lthread_queue.h | 302 ++ > examples/performance-thread/common/lthread_sched.c | 600 ++++ > examples/performance-thread/common/lthread_sched.h | 152 + > examples/performance-thread/common/lthread_timer.h | 79 + > examples/performance-thread/common/lthread_tls.c | 254 ++ > examples/performance-thread/common/lthread_tls.h | 57 + > examples/performance-thread/l3fwd-thread/Makefile | 57 + > examples/performance-thread/l3fwd-thread/main.c | 3641 > ++++++++++++++++++++ > examples/performance-thread/l3fwd-thread/test.sh | 149 + > examples/performance-thread/pthread_shim/Makefile | 60 + > examples/performance-thread/pthread_shim/main.c | 284 ++ > .../performance-thread/pthread_shim/pthread_shim.c | 714 ++++ > .../performance-thread/pthread_shim/pthread_shim.h | 113 + > 37 files changed, 13189 insertions(+) > create mode 100644 doc/guides/sample_app_ug/img/performance_thread_1.svg > create mode 100644 doc/guides/sample_app_ug/img/performance_thread_2.svg > create mode 100644 doc/guides/sample_app_ug/performance_thread.rst > create mode 100644 examples/performance-thread/Makefile > create mode 100644 examples/performance-thread/common/arch/x86/ctx.c > create mode 100644 examples/performance-thread/common/arch/x86/ctx.h > create mode 100644 examples/performance-thread/common/common.mk > create mode 100644 examples/performance-thread/common/lthread.c > create mode 100644 examples/performance-thread/common/lthread.h > create mode 100644 examples/performance-thread/common/lthread_api.h > create mode 100644 examples/performance-thread/common/lthread_cond.c > create mode 100644 examples/performance-thread/common/lthread_cond.h > create mode 100644 examples/performance-thread/common/lthread_diag.c > create mode 100644 examples/performance-thread/common/lthread_diag.h > create mode 100644 examples/performance-thread/common/lthread_diag_api.h > create mode 100644 examples/performance-thread/common/lthread_int.h > create mode 100644 examples/performance-thread/common/lthread_mutex.c > create mode 100644 examples/performance-thread/common/lthread_mutex.h > create mode 100644 examples/performance-thread/common/lthread_objcache.h > create mode 100644 examples/performance-thread/common/lthread_pool.h > create mode 100644 examples/performance-thread/common/lthread_queue.h > create mode 100644 examples/performance-thread/common/lthread_sched.c > create mode 100644 examples/performance-thread/common/lthread_sched.h > create mode 100644 examples/performance-thread/common/lthread_timer.h > create mode 100644 examples/performance-thread/common/lthread_tls.c > create mode 100644 examples/performance-thread/common/lthread_tls.h > create mode 100644 examples/performance-thread/l3fwd-thread/Makefile > create mode 100644 examples/performance-thread/l3fwd-thread/main.c > create mode 100755 examples/performance-thread/l3fwd-thread/test.sh > create mode 100644 examples/performance-thread/pthread_shim/Makefile > create mode 100644 examples/performance-thread/pthread_shim/main.c > create mode 100644 examples/performance-thread/pthread_shim/pthread_shim= .c > create mode 100644 examples/performance-thread/pthread_shim/pthread_shim= .h >=20 > -- > 2.1.4 Series Acked-by: Tomasz Kulasek