DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jia He <hejianet@gmail.com>
To: dev@dpdk.org, Thomas Monjalon <thomas@monjalon.net>
Cc: Jerin Jacob <jerin.jacob@caviumnetworks.com>,
	Jianbo Liu <jianbo.liu@arm.com>,
	Jan Viktorin <viktorin@rehivetech.com>,
	Olivier Matz <olivier.matz@6wind.com>,
	konstantin.ananyev@intel.com, hemant.agrawal@nxp.com,
	Jia He <hejianet@gmail.com>
Subject: [dpdk-dev] [PATCH v8 0/3] support c11 memory model barrier in librte_ring
Date: Tue, 16 Jan 2018 20:03:48 -0800	[thread overview]
Message-ID: <1516161831-28719-1-git-send-email-hejianet@gmail.com> (raw)

To support C11 memory model barrier, 2 options are suggested by Jerin:
1. use rte_smp_rmb
2. use load_acquire/store_release
CONFIG_RTE_RING_USE_C11_MEM_MODEL is provided, and by default it is "n"
on any architectures so far.

The reason why providing 2 options is due to the performance benchmark
difference in different arm machines.

Already fuctionally tested on the machines as follows:
- on X86
- on arm64 with CONFIG_RTE_RING_USE_C11_MEM_MODEL=y
- on arm64 with CONFIG_RTE_RING_USE_C11_MEM_MODEL=n

---
Changelog:
V8: Change the lincense to SPDX tag. Change USE_C11_MEM_MODEL to "n" on
    any architectures by default
V7: fix check-git-log warnings which is suggested by Jerin
V6: minor change in subject and log
V5: split it into 2 patchset due to the milestone concerns, this is the 2st
    one. Also fix checkpatch.pl warnings
V4: split into small patches
V3: arch specific implementation for enqueue/dequeue barrier
V2: let users choose whether using load_acquire/store_release
V1: rte_smp_rmb() between 2 loads

Jia He (3):
  eal/arm64: remove the braces {} for dmb() and dsb()
  ring: introduce new header file to include common functions
  ring: introduce new header file to support C11 memory model

 config/common_linuxapp                             |   2 +
 .../common/include/arch/arm/rte_atomic_64.h        |   4 +-
 lib/librte_eventdev/rte_event_ring.h               |   6 +-
 lib/librte_ring/Makefile                           |   4 +-
 lib/librte_ring/rte_ring.h                         | 173 ++----------------
 lib/librte_ring/rte_ring_c11_mem.h                 | 193 ++++++++++++++++++++
 lib/librte_ring/rte_ring_generic.h                 | 202 +++++++++++++++++++++
 7 files changed, 420 insertions(+), 164 deletions(-)
 create mode 100644 lib/librte_ring/rte_ring_c11_mem.h
 create mode 100644 lib/librte_ring/rte_ring_generic.h

-- 
2.7.4

             reply	other threads:[~2018-01-17  4:04 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17  4:03 Jia He [this message]
2018-01-17  4:03 ` [dpdk-dev] [PATCH v8 1/3] eal/arm64: remove the braces {} for dmb() and dsb() Jia He
2018-01-17  4:03 ` [dpdk-dev] [PATCH v8 2/3] ring: introduce new header file to include common functions Jia He
2018-01-19 14:15   ` Hemant Agrawal
2018-01-19 16:38     ` Olivier Matz
2018-01-19 16:47       ` Hemant Agrawal
2018-01-22  1:53         ` Jia He
     [not found]           ` <60d7010d-caf8-8ade-a34c-7e284842cded@nxp.com>
2018-01-22  6:18             ` Jia He
2018-01-22 16:54         ` Stephen Hemminger
2018-01-17  4:03 ` [dpdk-dev] [PATCH v8 3/3] ring: introduce new header file to support C11 memory model Jia He
2018-01-17  8:24   ` Thomas Monjalon
2018-01-17  8:47     ` Jia He
2018-01-17  9:09       ` Thomas Monjalon
2018-01-18 23:52         ` Thomas Monjalon
2018-01-19  2:22           ` Jia He
2018-01-19 15:04           ` Hemant Agrawal
2018-01-19 14:25       ` Hemant Agrawal
2018-01-22  4:41 ` [dpdk-dev] [PATCH v9 0/3] support c11 memory model barrier in librte_ring Jia He
2018-01-22  4:41   ` [dpdk-dev] [PATCH v9 1/3] eal/arm64: remove the braces {} for dmb() and dsb() Jia He
2018-01-22  4:41   ` [dpdk-dev] [PATCH v9 2/3] ring: introduce new header file to include common functions Jia He
2018-01-22  4:41   ` [dpdk-dev] [PATCH v9 3/3] ring: introduce new header file to support C11 memory model Jia He
2018-01-22  7:53   ` [dpdk-dev] [PATCH v9 0/3] support c11 memory model barrier in librte_ring Thomas Monjalon
2018-01-22  8:26     ` Olivier Matz
2018-01-22  8:29       ` Olivier Matz
2018-01-22  8:40     ` Hemant Agrawal
2018-01-29 15:11   ` Thomas Monjalon

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=1516161831-28719-1-git-send-email-hejianet@gmail.com \
    --to=hejianet@gmail.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=jianbo.liu@arm.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=olivier.matz@6wind.com \
    --cc=thomas@monjalon.net \
    --cc=viktorin@rehivetech.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).