since v2:
-some minor changes on the doc (Bill)
-doc for the ODP_SHM_EXPORT flag (Christophe)
-reduction of memory reguirement for shm tests (Mattias)

since v1:
-flag _ODP_SHM_PROC_NOCREAT and _ODP_SHM_O_EXCL get new values
(but remain useless: Should be removed when IPC is updated)  (Maxim)

-In get_ishm_flags(), odp_shm_capability() local variable flgs renamed
(for be better distinction from other "flags" variable. (Maxim)

-Added doc updates with shm api extensions.

This Patch series aims at using _ishm as north API memory allocator.
odp_shared_memory.c just becomes a wrapper around _ishm.
_ishm supports "process mode", i.e. memory allocated  with _ishm
is sharable by all ODP threads of a given ODP instance, regardless of
thread type (e.g. process) or thread creation time (for time).

NOTE: This patch series will break IPC: This is due to the fact that
IPC relied on a "special case" in the former memory allocator that broke
ODP instance scoping. I don't think this should be kept.
I have included in this patch series a function to share memory between
designated ODP instances. If we want to have IPC, it should use that.

Christophe Milard (16):
  linux-gen: _ishm: create link for external memory sharing
  linux-gen: _ishm: allow memory alloc/free at global init/term
  linux-gen: use ishm as north API mem allocator
  linux-gen: Push internal flag definition
  api: shm: add flag to guarantee address unicity on all ODP threads
  linux-gen: shm: new ODP_SHM_SINGLE_VA flag implementation
  api: shm: add flag to lock memory
  linux-gen: shm: new ODP_SHM_LOCK flag implementation
  test: api: shmem: new proper tests for shm API
  api: shmem: add flag and function to share memory between ODP
    instances
  linux-gen: _ishm: adding function to map memory from other ODP
  linux-gen: shm: add flag and function to share memory between ODP
    instances
  test: linux-gen: api: shmem: test sharing memory between ODP instances
  linux-gen: _ishm: cleaning remaining block at odp_term_global
  linux_gen: _ishm: decreasing the number of error messages when no huge
    pages
  doc: updating docs for the shm interface extension

 doc/users-guide/users-guide.adoc                   |  68 +-
 include/odp/api/spec/shared_memory.h               |  27 +-
 platform/linux-generic/_ishm.c                     | 379 ++++++++----
 platform/linux-generic/include/_ishm_internal.h    |   8 +
 platform/linux-generic/include/odp_internal.h      |   5 -
 platform/linux-generic/include/odp_shm_internal.h  |   4 +-
 platform/linux-generic/odp_init.c                  |  19 -
 platform/linux-generic/odp_shared_memory.c         | 418 ++-----------
 test/common_plat/validation/api/shmem/shmem.c      | 687 ++++++++++++++++++++-
 test/common_plat/validation/api/shmem/shmem.h      |   5 +-
 test/linux-generic/validation/api/shmem/.gitignore |   3 +-
 .../linux-generic/validation/api/shmem/Makefile.am |  22 +-
 .../validation/api/shmem/shmem_linux.c             | 155 +++--
 .../api/shmem/{shmem_odp.c => shmem_odp1.c}        |  10 +-
 .../api/shmem/{shmem_odp.h => shmem_odp1.h}        |   0
 .../validation/api/shmem/shmem_odp2.c              |  95 +++
 .../validation/api/shmem/shmem_odp2.h              |   7 +
 17 files changed, 1315 insertions(+), 597 deletions(-)
 rename test/linux-generic/validation/api/shmem/{shmem_odp.c => shmem_odp1.c} 
(81%)
 rename test/linux-generic/validation/api/shmem/{shmem_odp.h => shmem_odp1.h} 
(100%)
 create mode 100644 test/linux-generic/validation/api/shmem/shmem_odp2.c
 create mode 100644 test/linux-generic/validation/api/shmem/shmem_odp2.h

-- 
2.7.4

Reply via email to