[PATCH v11 0/6] introduce memarea library

Dongdong Liu liudongdong3 at huawei.com
Tue Jan 10 03:21:13 CET 2023


Hi Chengwen

Except for a minor comments, this patchset looks good to me.
Reviewed-by: Dongdong Liu <liudongdong3 at huawei.com>

Thanks,
Dongdong
On 2022/12/13 17:13, Chengwen Feng wrote:
> The memarea library is an allocator of variable-size object which based
> on a memory region. The main features are as follows:
>
> - The memory region can be initialized from the following memory
>   sources:
>   1. HEAP: e.g. invoke rte_malloc_socket.
>   2. LIBC: e.g. invoke posix_memalign.
>   3. Another memarea: it can be from another memarea.
>
> - It provides refcnt feature which could be useful in multi-reader
>   scenario.
>
> - It supports MT-safe as long as it's specified at creation time.
>
> Note:
> a) The memarea is oriented towards the application layer, which could
> provides 'region-based memory management' [1] function.
> b) The eal library also provide memory zone/heap management, but these
> are tied to huge pages management.
>
> [1] https://en.wikipedia.org/wiki/Region-based_memory_management
>
> Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
>
> Chengwen Feng (6):
>   memarea: introduce memarea library
>   test/memarea: support memarea test
>   memarea: support alloc/free/refcnt-update API
>   test/memarea: support alloc/free/refcnt-update test
>   memarea: support dump API
>   test/memarea: support dump test
>
> ---
> v11:
> * rebase 23.03
> * remove "app/test: add memarea to malloc-perf-autotest" because the
>   two algorithm are not comparable which also address previous
>   comments.
> v10:
> * support windows platform.
> * add rte_memarea.libc perftest to malloc-perf-autotest.
> v9:
> * address Dmitry's comments.
> * drop features of SOURCE_USER and backup memarea mechanism.
> * rename rte_memarea_update_refcnt to rte_memarea_refcnt_update
>   to keep with rte_mbuf_refcnt_update name style.
> * fix memarea perftest compile failed at windows platform.
> * fix spell warning.
> v8:
> * address Mattias's comments (rename ALG_DEFAULT with ALG_NEXTFIT).
> * small feature patches are combined.
> * enhanced backup memory mechanism.
> * add memarea to malloc-perf-autotest.
> * other tiny naming optimize.
> v7:
> * repost patches as there are spread over different series in patchwork.
> v6:
> * address Mattias's comments.
> v5:
> * fix 09/10 patch spell warning.
> v4:
> * repost patches as there are spread over different series in patchwork.
> v3:
> * add memory source of RTE memory.
> * add algorithm field to facilitate the introduction of new algorithms.
> * fix memarea log don't output problem.
> v2:
> * fix compile issues reported by dpdk-test-report.
> * address Dimitry and Jerin's comments.
> * add no MT-safe test.
>
>  MAINTAINERS                            |   6 +
>  app/test/meson.build                   |   2 +
>  app/test/test_memarea.c                | 308 ++++++++++++++++++
>  doc/api/doxy-api-index.md              |   3 +-
>  doc/api/doxy-api.conf.in               |   1 +
>  doc/guides/prog_guide/index.rst        |   1 +
>  doc/guides/prog_guide/memarea_lib.rst  |  52 ++++
>  doc/guides/rel_notes/release_23_03.rst |   5 +
>  lib/eal/common/eal_common_log.c        |   1 +
>  lib/eal/include/rte_log.h              |   1 +
>  lib/memarea/memarea_private.h          |  36 +++
>  lib/memarea/meson.build                |  10 +
>  lib/memarea/rte_memarea.c              | 413 +++++++++++++++++++++++++
>  lib/memarea/rte_memarea.h              | 219 +++++++++++++
>  lib/memarea/version.map                |  16 +
>  lib/meson.build                        |   1 +
>  16 files changed, 1074 insertions(+), 1 deletion(-)
>  create mode 100644 app/test/test_memarea.c
>  create mode 100644 doc/guides/prog_guide/memarea_lib.rst
>  create mode 100644 lib/memarea/memarea_private.h
>  create mode 100644 lib/memarea/meson.build
>  create mode 100644 lib/memarea/rte_memarea.c
>  create mode 100644 lib/memarea/rte_memarea.h
>  create mode 100644 lib/memarea/version.map
>


More information about the dev mailing list