All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roman Dementiev <roman.dementiev@intel.com>
To: Jay Rolette <rolette@infiniteio.com>
Cc: DPDK <dev@dpdk.org>
Subject: Re: add support for HTM lock elision for x86
Date: Tue, 2 Jun 2015 16:55:30 +0200	[thread overview]
Message-ID: <1281433045.20150602165530@intel.com> (raw)
In-Reply-To: <CADNuJVpeKa9-R7WHkoCzw82vpYd=3XmhOoz2JfGsFLzDW+F5UQ@mail.gmail.com>

Hello Jay,

Tuesday, June 2, 2015, 3:21:24 PM, you wrote:

> On Tue, Jun 2, 2015 at 8:11 AM, Roman Dementiev <roman.dementiev@intel.com>wrote:


>  This series of patches adds methods that use hardware memory transactions (HTM)
>  on fast-path for DPDK locks (a.k.a. lock elision). Here the methods are implemented
>  for x86 using Restricted Transactional Memory instructions (Intel(r) Transactional
>  Synchronization Extensions). The implementation fall-backs to the normal DPDK lock
>  if HTM is not available or memory transactions fail.


It provides a very good scaling given the protected data structure is friendly
to HTM. One example is rte_hash which is benchmarked in the unit test I have 
provided as the last patch.

There are some papers showing additional test results with similar lock 
elision implementations: www.intel.com/software/tsx


> This is very interesting. Do you have any summary you can give us
> of what the performance implications are from your test data?
>  
>  This is not a replacement for lock usages since not all critical sections protected
>  by locks are friendly to HTM.



> Any pointers to material that describe where HTM in its current incarnation on x86 is approprate?
>  
>


I meant to say: not a replacement to *ALL* lock usages. You can check the material here: www.intel.com/software/tsx
Please let me know if you need additional information.


>  Roman Dementiev (3):
>   spinlock: add support for HTM lock elision for x86
>   rwlock: add support for HTM lock elision for x86
>   test scaling of HTM lock elision protecting rte_hash
>  
>   app/test/Makefile                                  |   1 +
>   app/test/test_hash_scaling.c                       | 223 +++++++++++++++++++++
>   lib/librte_eal/common/Makefile                     |   4 +-
>   .../common/include/arch/ppc_64/rte_rwlock.h        |  38 ++++
>   .../common/include/arch/ppc_64/rte_spinlock.h      |  41 ++++
>   lib/librte_eal/common/include/arch/x86/rte_rtm.h   |  73 +++++++
>   .../common/include/arch/x86/rte_rwlock.h           |  82 ++++++++
>   .../common/include/arch/x86/rte_spinlock.h         | 107 ++++++++++
>   lib/librte_eal/common/include/generic/rte_rwlock.h | 194 ++++++++++++++++++
>   .../common/include/generic/rte_spinlock.h          |  75 +++++++
>   lib/librte_eal/common/include/rte_rwlock.h         | 158 ---------------
>   11 files changed, 836 insertions(+), 160 deletions(-)




> Thanks!
> Jay 



-- 
Best regards,
 Roman                            mailto:roman.dementiev@intel.com

Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052

  parent reply	other threads:[~2015-06-02 14:55 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-02 13:11 add support for HTM lock elision for x86 Roman Dementiev
2015-06-02 13:11 ` [PATCH 1/3] spinlock: " Roman Dementiev
2015-06-02 13:11 ` [PATCH 2/3] rwlock: " Roman Dementiev
2015-06-02 13:11 ` [PATCH 3/3] test scaling of HTM lock elision protecting rte_hash Roman Dementiev
2015-06-02 13:21 ` add support for HTM lock elision for x86 Jay Rolette
2015-06-02 13:39   ` Dementiev, Roman
2015-06-02 14:55   ` Roman Dementiev [this message]
2015-06-03 18:40 ` Stephen Hemminger
2015-06-05 15:12   ` Roman Dementiev
2015-06-16 17:16 ` [PATCH v2 0/3] " Roman Dementiev
2015-06-16 17:16   ` [PATCH v2 1/3] spinlock: " Roman Dementiev
2015-06-17 21:29     ` Thomas Monjalon
2015-06-18 10:00       ` Bruce Richardson
2015-06-19 13:35         ` Thomas Monjalon
2015-06-22 15:32           ` Adrien Mazarguil
2015-06-29  9:34           ` [PATCH] eal: fix cpu_feature_table[] compilation with -pedantic Adrien Mazarguil
2015-06-29 12:10             ` David Marchand
2015-06-29 12:19               ` Thomas Monjalon
2015-06-16 17:16   ` [PATCH v2 2/3] rwlock: add support for HTM lock elision for x86 Roman Dementiev
2015-06-16 17:16   ` [PATCH v2 3/3] test scaling of HTM lock elision protecting rte_hash Roman Dementiev
2015-06-17 13:05   ` [PATCH v2 0/3] add support for HTM lock elision for x86 Bruce Richardson
2015-06-17 13:14     ` Thomas Monjalon
2015-06-17 13:48       ` Bruce Richardson
2015-06-19 11:08   ` [PATCH v3 " Roman Dementiev
2015-06-19 11:08     ` [PATCH v3 1/3] spinlock: " Roman Dementiev
2015-06-19 11:08     ` [PATCH v3 2/3] rwlock: " Roman Dementiev
2015-06-19 11:08     ` [PATCH v3 3/3] test scaling of HTM lock elision protecting rte_hash Roman Dementiev
2015-06-19 14:38     ` [PATCH v3 0/3] add support for HTM lock elision for x86 Thomas Monjalon
  -- strict thread matches above, loose matches on Subject: below --
2015-06-02 13:17 Dementiev, Roman

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=1281433045.20150602165530@intel.com \
    --to=roman.dementiev@intel.com \
    --cc=dev@dpdk.org \
    --cc=rolette@infiniteio.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.