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