All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 0/3] support c11 memory model barrier in librte_ring
@ 2018-01-17  4:03 Jia He
  2018-01-17  4:03 ` [PATCH v8 1/3] eal/arm64: remove the braces {} for dmb() and dsb() Jia He
                   ` (3 more replies)
  0 siblings, 4 replies; 26+ messages in thread
From: Jia He @ 2018-01-17  4:03 UTC (permalink / raw)
  To: dev, Thomas Monjalon
  Cc: Jerin Jacob, Jianbo Liu, Jan Viktorin, Olivier Matz,
	konstantin.ananyev, hemant.agrawal, Jia He

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

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

end of thread, other threads:[~2018-01-29 15:12 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-17  4:03 [PATCH v8 0/3] support c11 memory model barrier in librte_ring Jia He
2018-01-17  4:03 ` [PATCH v8 1/3] eal/arm64: remove the braces {} for dmb() and dsb() Jia He
2018-01-17  4:03 ` [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 ` [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 ` [PATCH v9 0/3] support c11 memory model barrier in librte_ring Jia He
2018-01-22  4:41   ` [PATCH v9 1/3] eal/arm64: remove the braces {} for dmb() and dsb() Jia He
2018-01-22  4:41   ` [PATCH v9 2/3] ring: introduce new header file to include common functions Jia He
2018-01-22  4:41   ` [PATCH v9 3/3] ring: introduce new header file to support C11 memory model Jia He
2018-01-22  7:53   ` [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

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.