DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Ian Betts <ian.betts@intel.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v8 0/4] examples: add performance-thread
Date: Fri, 4 Dec 2015 10:03:59 -0800	[thread overview]
Message-ID: <20151204100359.6b966aea@xeon-e3> (raw)
In-Reply-To: <1449225265-14480-1-git-send-email-ian.betts@intel.com>

On Fri,  4 Dec 2015 10:34:21 +0000
Ian Betts <ian.betts@intel.com> wrote:

> 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
> * remove ASM implementation of atomic64_xchg in favor
>    of builtin __sync_lock_test_and_set()

Looks useful, but this needs more discussion.

Maybe it should be a separate library not tied into DPDK so
it gets wider use and testing? Also what are the limitations?
What if an lthread did a system call? What about interaction
with rte_poll?

Earlier attempts at lightweight threading (fibers) would be worth
looking into. http://c2.com/cgi/wiki?CooperativeThreading
Intel Thread Building Blocks
IBM NGPT (now defunct)

There lots of hidden gotcha's here, like preemption (or not),
and limitations on interactions with other libraries.

Intel may have some milestone to get it into DPDK 2.2 but
really this seems too late...

  parent reply	other threads:[~2015-12-04 18:03 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-03 16:21 [dpdk-dev] [PATCH v7 " 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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151204100359.6b966aea@xeon-e3 \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=ian.betts@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).