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. (Christophe)
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 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 | 58 +-
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, 1306 insertions(+), 596 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