DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v7 0/4] examples: add performance-thread
@ 2015-12-03 16:21 Ian Betts
  2015-12-03 16:21 ` [dpdk-dev] [PATCH v7 1/4] doc: add sample application guide for performance-thread Ian Betts
                   ` (4 more replies)
  0 siblings, 5 replies; 33+ messages in thread
From: Ian Betts @ 2015-12-03 16:21 UTC (permalink / raw)
  To: dev; +Cc: Ian Betts

This patchset comprises a layer 3 forwarding derivative intended to
facilitate characterization of performance with different
threading models, specifically:-

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

Purpose and justification

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.

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.

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.

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.

Changes in this version
 * fix copyright dates

Ian Betts (4):
  doc: add sample application guide for performance-thread
  examples: add lthread subsystem for performance-thread
  examples: add l3fwd-thread example in performance-thread
  examples: add pthread_shim example to performance thread

 config/defconfig_x86_64-native-linuxapp-gcc        |    3 +
 config/defconfig_x86_64-native-linuxapp-icc        |    3 +
 .../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               |   46 +
 .../performance-thread/common/arch/x86/atomic.h    |   59 +
 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  |  241 ++
 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 |  256 ++
 examples/performance-thread/common/lthread_mutex.h |   52 +
 .../performance-thread/common/lthread_objcache.h   |  160 +
 examples/performance-thread/common/lthread_pool.h  |  333 ++
 examples/performance-thread/common/lthread_queue.h |  303 ++
 examples/performance-thread/common/lthread_sched.c |  600 ++++
 examples/performance-thread/common/lthread_sched.h |  152 +
 examples/performance-thread/common/lthread_timer.h |   78 +
 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   |  150 +
 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 +
 38 files changed, 13253 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/atomic.h
 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

-- 
2.1.4

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2015-12-08  2:29 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-03 16:21 [dpdk-dev] [PATCH v7 0/4] examples: add performance-thread Ian Betts
2015-12-03 16:21 ` [dpdk-dev] [PATCH v7 1/4] doc: add sample application guide for performance-thread Ian Betts
2015-12-03 16:21 ` [dpdk-dev] [PATCH v7 2/4] examples: add lthread subsystem " Ian Betts
2015-12-04 10:34   ` [dpdk-dev] [PATCH v8 0/4] examples: add performance-thread Ian Betts
2015-12-04 10:34     ` [dpdk-dev] [PATCH v8 1/4] doc: add sample application guide for performance-thread Ian Betts
2015-12-07 17:58       ` [dpdk-dev] [PATCH v9 0/4] examples: add performance-thread Ian Betts
2015-12-07 17:58         ` [dpdk-dev] [PATCH v9 1/4] doc: add sample application guide for performance-thread Ian Betts
2015-12-07 17:58         ` [dpdk-dev] [PATCH v9 2/4] examples: add lthread subsystem " Ian Betts
2015-12-07 17:58         ` [dpdk-dev] [PATCH v9 3/4] examples: add l3fwd-thread example in performance-thread Ian Betts
2015-12-08  1:35           ` Thomas Monjalon
2015-12-08  1:54             ` Betts, Ian
2015-12-08  2:28               ` Thomas Monjalon
2015-12-08  1:39           ` Thomas Monjalon
2015-12-07 17:58         ` [dpdk-dev] [PATCH v9 4/4] examples: add pthread_shim example to performance thread Ian Betts
2015-12-04 10:34     ` [dpdk-dev] [PATCH v8 2/4] examples: add lthread subsystem forperformance-thread Ian Betts
2015-12-07  2:38       ` Thomas Monjalon
2015-12-04 10:34     ` [dpdk-dev] [PATCH v8 3/4] examples: add l3fwd-thread example in performance-thread Ian Betts
2015-12-07  2:36       ` Thomas Monjalon
2015-12-07  4:46         ` Betts, Ian
2015-12-07 11:20           ` Thomas Monjalon
2015-12-04 10:34     ` [dpdk-dev] [PATCH v8 4/4] examples: add pthread_shim example to performance thread Ian Betts
2015-12-04 11:21     ` [dpdk-dev] [PATCH v8 0/4] examples: add performance-thread Kulasek, TomaszX
2015-12-04 18:03     ` Stephen Hemminger
2015-12-04 18:33       ` Thomas Monjalon
2015-12-05 12:06         ` Betts, Ian
2015-12-05 17:53           ` Glynn, Michael J
2015-12-05 19:47             ` Stephen Hemminger
2015-12-05 21:21               ` Thomas Monjalon
2015-12-06  6:17                 ` Betts, Ian
2015-12-04 22:10       ` Betts, Ian
2015-12-03 16:21 ` [dpdk-dev] [PATCH v7 3/4] examples: add l3fwd-thread example in performance-thread Ian Betts
2015-12-03 16:21 ` [dpdk-dev] [PATCH v7 4/4] examples: add pthread_shim example to performance thread Ian Betts
2015-12-03 16:44 ` [dpdk-dev] [PATCH v7 0/4] examples: add performance-thread Kulasek, TomaszX

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).