I think Christophe is the only one affected by this patch, so I agree that
waiting for him to issue a v4 makes sense. I'm sure it's a simple update,
but best to continue the habit that things are always clean at merge.

On Fri, Sep 2, 2016 at 7:50 AM, Maxim Uvarov <maxim.uva...@linaro.org>
wrote:

> patch set introduce new doxygen warnings (some of warning already exist,
> looks like I missed them on previous merge):
>
> /opt/Linaro/odp3.git/include/odp/drv/spec/shm.h:27: warning: documented
> symbol `odpdrv_shm_t' was not declared or defined.
> /opt/Linaro/odp3.git/platform/linux-generic/include/odp/drv/plat/atomic_types.h:127:
> warning: Member ODPDRV_ALIGNED(sizeof(uint64_t)) (function) of file
> drv/plat/atomic_types.h is not documented.
> /opt/Linaro/odp3.git/platform/linux-generic/include/odp/drv/plat/atomic_types.h:127:
> warning: Member ODPDRV_ALIGNED(sizeof(uint32_t)) (function) of file
> drv/plat/atomic_types.h is not documented.
> /opt/Linaro/odp3.git/platform/linux-generic/include/odp/drv/plat/barrier_types.h:30:
> warning: Member ODPDRV_ALIGNED (variable) of file drv/plat/barrier_types.h
> is not documented.
> /opt/Linaro/odp3.git/platform/linux-generic/include/odp/drv/plat/shm_types.h:28:
> warning: Member ODPDRV_HANDLE_T(odpdrv_shm_t) (function) of group
> odpdrv_shm is not documented.
> /opt/Linaro/odp3.git/platform/linux-generic/include/odp/drv/plat/shm_types.h:28:
> warning: Member ODPDRV_HANDLE_T(odpdrv_shm_t) (function) of group
> odpdrv_shm is not documented.
>
>
> That is not very critical for api-next bug has to be fixed. So question is
> does this patches blocks anyone else work? Or we can wait for Christophe
> return and merge v4?
>
> Maxim.
>
>
> On 08/31/16 05:17, Bill Fischofer wrote:
>
>> For this series:
>>
>> Reviewed-and-tested-by: Bill Fischofer <bill.fischo...@linaro.org>
>>
>> On Sat, Aug 20, 2016 at 2:45 AM, Christophe Milard <
>> christophe.mil...@linaro.org> wrote:
>>
>> Since v2: Fixed failure when running as root when no huge page are
>>>            available but the hugetlbfs is writable
>>>            (Failure as mostly visible on 32 bit systems)  (Bill)
>>>
>>> Since v1: Fixed error when compiling with clang (Bill)
>>>
>>> This patch series introduces a new ODP memory allocator and then uses it
>>> on the driver interface:
>>>
>>> The first 3 patches introduces barriers on the driver interface.
>>> This is based on its equivalent from the API side.
>>>
>>> Then comes the definition of the shmen programing functions for the DRV
>>> interface: This should look very familiar, as it is based on its API side
>>> as
>>> well, with extension to perform lookup and free directely by name or by
>>> address, as most drivers will probably want that.
>>> In that sence, the well known API shmem interface will look like a subset
>>> of the DRV shmem interface.
>>>
>>> Then comes the file descriptor server: its goal is to enable sharing of
>>> file desriptors between linux processes, regardless of fork time.
>>> This will be needed by the memory allocator (following patches), but will
>>> likely also be needed when file-descriptor based pktios will be written
>>> as
>>> "process mode runnable". It is therefore written as a standalone service
>>> where clients can register file descriptors and others clients can query
>>> for
>>> those. The servers holds a table {context, key} ->fd.
>>> The ODP memory allocator will register its files descriptors using the
>>> memory block index as key and "ISHM" as context. The context is meant to
>>> enable
>>> the usage of the server from different users, without key clash: if pktio
>>> uses its pktio index as key, it won't clash with ISHM keys as the context
>>> (ISHM vs PKTIO) will be different.
>>>
>>> Then comes the internal memory allocator itself: Though its interface is
>>> a superset of the current shared memory API, its internal differs
>>> largely:
>>> The new internal memory allocator (ishm) is not using ANONYMOUS mapping
>>> but file descriptor based mapping instead: this is to enable its usage
>>> from different processes, regardless of fork time.
>>> Also, this memory allocator supports a flag, called SINGLE_VA: when
>>> allocated
>>> with  this flag, memory is guaranted to be mapped at the same virtual
>>> address
>>> in all ODP threads (i.e linux threads or processes, regardless of fork
>>> time).
>>> This is done by prealocating plenty of virtual address space (not memory
>>>   -just address space) at global init time and mapping the SINGLE_VA'd
>>> blocks
>>> there (using MAP_FIXED) on demand.
>>> Ishm maintains the virtual space memory map.
>>>
>>> Blocks allocated without this flag are mapped using the normal linux
>>> strategy,
>>> and will likely end-up at different virtual addresses in different linux
>>> processes (when allocated after fork)
>>>
>>> IMPORTANT NOTE: ishm supports huge pages BUT because the mapping is no
>>> longer
>>> anonymous, the hugetlbfs mount point must be writable by the ODP process:
>>> Either run as root or fix the permissions!
>>> ishm will fall back to normal pages if it fails allocationg huge pages-
>>> as
>>> before.
>>>
>>> Then comes a patch adding a debug funtion to ishm: as it was fully
>>> separable
>>> it became its own patch...
>>>
>>> Then commes the linux implementation of the driver shm interface. This,
>>> of course, use ishm. It is just a wrapper around it.
>>> If this ishm way of allocating memory is "approved", such a wrapper
>>> should
>>> be
>>> written for the API side as well (replacing the current shared_memory.c)
>>> so that the API interface , the driver interface and ODP internals make
>>> use of a unique memory allocator: ishm.
>>>
>>> At least comes the definition a a series of tests to test the driver
>>> interface shared memory. These tests are runnable in thread or process
>>> mode
>>> (using the usual --odph_proc flag)
>>>
>>> Thanks for reading so far... and happy review!
>>>
>>> Christophe
>>>
>>>
>>> *** BLURB HERE ***
>>>
>>> Christophe Milard (13):
>>>    linux-gen: cosmetic changes on barrier
>>>    drv: adding barrier.h
>>>    linux-gen: drv: adding barrier
>>>    linux-generic: drv: strong typing
>>>    drv: adding shared memory
>>>    linux-gen: fdserver: new fdserver added
>>>    linux-generic: system_info: adding huge page dir
>>>    linux-gen: ishm: internal shared memory allocator (ishm) added
>>>    linux-gen: ishm: adding debug function
>>>    linux-gen: drv: shm
>>>    test: validation: drv: shmem: basic tests
>>>    test: validation: drv: shmem: testing SINGLE_VA flag
>>>    test: validation: drv: shmem: stress tests
>>>
>>>   include/odp/api/spec/barrier.h                     |    2 -
>>>   include/odp/drv/spec/barrier.h                     |   66 +
>>>   include/odp/drv/spec/shm.h                         |  231 ++++
>>>   include/odp_drv.h                                  |    2 +
>>>   platform/Makefile.inc                              |    2 +
>>>   platform/linux-generic/Makefile.am                 |   15 +-
>>>   platform/linux-generic/_fdserver.c                 |  655 +++++++++
>>>   platform/linux-generic/_ishm.c                     | 1460
>>> ++++++++++++++++++++
>>>   platform/linux-generic/_ishmphy.c                  |  185 +++
>>>   platform/linux-generic/arch/arm/odp/api/cpu_arch.h |   25 +-
>>>   platform/linux-generic/arch/arm/odp_cpu_arch.c     |   49 +-
>>>   .../linux-generic/arch/arm/odp_sysinfo_parse.c     |   28 +-
>>>   platform/linux-generic/arch/powerpc/odp_cpu_arch.c |   49 +-
>>>   platform/linux-generic/drv_barrier.c               |   50 +
>>>   platform/linux-generic/drv_shm.c                   |  102 ++
>>>   .../linux-generic/include/_fdserver_internal.h     |   39 +
>>>   platform/linux-generic/include/_ishm_internal.h    |   46 +
>>>   platform/linux-generic/include/_ishmphy_internal.h |   25 +
>>>   platform/linux-generic/include/ishmphy_internal.h  |   24 +
>>>   .../include/odp/api/plat/barrier_types.h           |    1 -
>>>   platform/linux-generic/include/odp/drv/barrier.h   |   30 +
>>>   .../include/odp/drv/plat/barrier_types.h           |   38 +
>>>   .../linux-generic/include/odp/drv/plat/shm_types.h |   46 +
>>>   .../include/odp/drv/plat/strong_types.h            |   35 +
>>>   platform/linux-generic/include/odp/drv/shm.h       |   36 +
>>>   .../linux-generic/include/odp_config_internal.h    |   16 +
>>>   platform/linux-generic/include/odp_internal.h      |   17 +-
>>>   platform/linux-generic/odp_barrier.c               |    2 +-
>>>   platform/linux-generic/odp_init.c                  |   39 +
>>>   platform/linux-generic/odp_system_info.c           |  181 ++-
>>>   test/common_plat/m4/configure.m4                   |    3 +-
>>>   test/common_plat/validation/drv/Makefile.am        |    3 +-
>>>   .../common_plat/validation/drv/drvshmem/.gitignore |    1 +
>>>   .../validation/drv/drvshmem/Makefile.am            |   10 +
>>>   .../common_plat/validation/drv/drvshmem/drvshmem.c |  794 +++++++++++
>>>   .../common_plat/validation/drv/drvshmem/drvshmem.h |   27 +
>>>   .../validation/drv/drvshmem/drvshmem_main.c        |   12 +
>>>   test/linux-generic/Makefile.am                     |    1 +
>>>   38 files changed, 4332 insertions(+), 15 deletions(-)
>>>   create mode 100644 include/odp/drv/spec/barrier.h
>>>   create mode 100644 include/odp/drv/spec/shm.h
>>>   create mode 100644 platform/linux-generic/_fdserver.c
>>>   create mode 100644 platform/linux-generic/_ishm.c
>>>   create mode 100644 platform/linux-generic/_ishmphy.c
>>>   mode change 120000 => 100644 platform/linux-generic/arch/
>>> arm/odp/api/cpu_arch.h
>>>   mode change 120000 => 100644 platform/linux-generic/arch/
>>> arm/odp_cpu_arch.c
>>>   mode change 120000 => 100644 platform/linux-generic/arch/
>>> arm/odp_sysinfo_parse.c
>>>   mode change 120000 => 100644 platform/linux-generic/arch/
>>> powerpc/odp_cpu_arch.c
>>>   create mode 100644 platform/linux-generic/drv_barrier.c
>>>   create mode 100644 platform/linux-generic/drv_shm.c
>>>   create mode 100644 platform/linux-generic/include/_fdserver_internal.h
>>>   create mode 100644 platform/linux-generic/include/_ishm_internal.h
>>>   create mode 100644 platform/linux-generic/include/_ishmphy_internal.h
>>>   create mode 100644 platform/linux-generic/include/ishmphy_internal.h
>>>   create mode 100644 platform/linux-generic/include/odp/drv/barrier.h
>>>   create mode 100644 platform/linux-generic/include
>>> /odp/drv/plat/barrier_
>>> types.h
>>>   create mode 100644 platform/linux-generic/include/odp/drv/plat/shm_
>>> types.h
>>>   create mode 100644 platform/linux-generic/include/odp/drv/plat/strong_
>>> types.h
>>>   create mode 100644 platform/linux-generic/include/odp/drv/shm.h
>>>   create mode 100644 test/common_plat/validation/drv/drvshmem/.gitignore
>>>   create mode 100644 test/common_plat/validation/dr
>>> v/drvshmem/Makefile.am
>>>   create mode 100644 test/common_plat/validation/drv/drvshmem/drvshmem.c
>>>   create mode 100644 test/common_plat/validation/drv/drvshmem/drvshmem.h
>>>   create mode 100644 test/common_plat/validation/
>>> drv/drvshmem/drvshmem_main.c
>>>
>>> --
>>> 2.7.4
>>>
>>>
>>>
>

Reply via email to