Merged,

after doxygen drv clean up patches warnings went away. Thanks!

Maxim.

On 09/02/16 18:27, Bill Fischofer wrote:
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 <mailto: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 <mailto:bill.fischo...@linaro.org>>

        On Sat, Aug 20, 2016 at 2:45 AM, Christophe Milard <
        christophe.mil...@linaro.org
        <mailto: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 <http://e.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
            <http://kefile.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/drv/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