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