Message ID | 20221012104805.44185-1-fengchengwen@huawei.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CF83AA00C4; Wed, 12 Oct 2022 12:53:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AE62F42D6E; Wed, 12 Oct 2022 12:53:52 +0200 (CEST) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 006CA42B6D for <dev@dpdk.org>; Wed, 12 Oct 2022 12:53:50 +0200 (CEST) Received: from dggpeml500024.china.huawei.com (unknown [172.30.72.54]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4MnTvd60nMzpVfp; Wed, 12 Oct 2022 18:50:37 +0800 (CST) Received: from localhost.localdomain (10.67.165.24) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 12 Oct 2022 18:53:48 +0800 From: Chengwen Feng <fengchengwen@huawei.com> To: <david.marchand@redhat.com>, <mb@smartsharesystems.com>, <anatoly.burakov@intel.com>, <dmitry.kozliuk@gmail.com>, <jerinjacobk@gmail.com>, <hofors@lysator.liu.se> CC: <thomas@monjalon.net>, <dev@dpdk.org> Subject: [PATCH v9 0/7] introduce memarea library Date: Wed, 12 Oct 2022 10:47:58 +0000 Message-ID: <20221012104805.44185-1-fengchengwen@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220721044648.6817-1-fengchengwen@huawei.com> References: <20220721044648.6817-1-fengchengwen@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.67.165.24] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To dggpeml500024.china.huawei.com (7.185.36.10) X-CFilter-Loop: Reflected X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
introduce memarea library
|
|
Message
fengchengwen
Oct. 12, 2022, 10:47 a.m. UTC
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@huawei.com>
Chengwen Feng (7):
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
app/test: add memarea 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_malloc_perf.c | 75 +++++
app/test/test_memarea.c | 320 ++++++++++++++++++++
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_22_11.rst | 6 +
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 | 16 +
lib/memarea/rte_memarea.c | 398 +++++++++++++++++++++++++
lib/memarea/rte_memarea.h | 219 ++++++++++++++
lib/memarea/version.map | 16 +
lib/meson.build | 1 +
17 files changed, 1153 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