[PATCH v2 0/9] introduce memarea library
Chengwen Feng
fengchengwen at huawei.com
Wed Sep 21 05:12:47 CEST 2022
The memarea library is an allocator of variable-size object. It is a
collection of allocated objects that can be efficiently alloc or free
all at once, the main feature are as follows:
a) it facilitate alloc and free of memory with low overhead.
b) it provides refcnt feature which could be useful in some scenes.
c) it supports MT-safe as long as it's specified at creation time.
d) it's memory source could comes from:
d.1) system API: malloc in C library.
d.2) user provided address: it can be from the rte_malloc API series
or extended memory as long as it is available.
d.3) user provided memarea: it can be from another memarea.
e) it provides backup memory mechanism, the memarea object could use
another memarea object as a backup.
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 (9):
memarea: introduce memory area library
test/memarea: support memarea test
memarea: support alloc/free/update-refcnt API
test/memarea: support alloc/free/update-refcnt test
memarea: support dump API
test/memarea: support dump test
memarea: support backup memory mechanism
test/memarea: support backup memory test
test/memarea: support no MT-safe test
---
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 | 379 +++++++++++++++++++++++++
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 | 57 ++++
doc/guides/rel_notes/release_22_11.rst | 6 +
lib/eal/include/rte_log.h | 1 +
lib/memarea/memarea_private.h | 35 +++
lib/memarea/meson.build | 16 ++
lib/memarea/rte_memarea.c | 379 +++++++++++++++++++++++++
lib/memarea/rte_memarea.h | 210 ++++++++++++++
lib/memarea/version.map | 16 ++
lib/meson.build | 1 +
15 files changed, 1112 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
--
2.17.1
More information about the dev
mailing list