This patch series aims at giving the ability for units using the ODP
drv (south) interface to allocate small unit of memory (hence going lower
than the page size, which is the lower limit for odp_drvshm_reserve).
The interface now provides two functions (whose usage is very similar to
malloc/free, but which also guarantee address uniqueness amoung all
ODP threads).
Internally, for the linux-gen implementation, this is implemeneted thanks
to a buddy allocator handling a preallocated pool.
Enumerators typically will need this to contruct the list of enumerated
devices. ODP will also need it for building list of things such as
enumerators, devio, drivers...
(PS:I guess this concept will be needed as well on the north (API) interface
when we start looking into having things working "in process mode")

Christophe Milard (5):
  linux-gen: _ishm: adding buddy allocation
  drv: adding odpdrv_shm_sreserve and odpdrv_shm_sfree()
  linux-gen: drv: shm: adding buddy allocator
  test: drv: shm: adding small allocation tests
  test: drv: shm: adding small allocation stress tests

 include/odp/drv/spec/shm.h                         |  41 +-
 platform/linux-generic/Makefile.am                 |   2 +
 platform/linux-generic/_ishmbuddy.c                | 491 +++++++++++++++++++++
 platform/linux-generic/drv_shm.c                   |  44 +-
 .../linux-generic/include/_ishmbuddy_internal.h    |  44 ++
 .../linux-generic/include/odp_config_internal.h    |  10 +
 platform/linux-generic/include/odp_internal.h      |   4 +
 platform/linux-generic/odp_init.c                  |  13 +
 .../common_plat/validation/drv/drvshmem/drvshmem.c | 241 ++++++++++
 .../common_plat/validation/drv/drvshmem/drvshmem.h |   2 +
 10 files changed, 890 insertions(+), 2 deletions(-)
 create mode 100644 platform/linux-generic/_ishmbuddy.c
 create mode 100644 platform/linux-generic/include/_ishmbuddy_internal.h

-- 
2.7.4

Reply via email to