From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0CE0AA0542; Wed, 5 Oct 2022 06:10:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A27DC40A7D; Wed, 5 Oct 2022 06:10:00 +0200 (CEST) Received: from out203-205-221-242.mail.qq.com (out203-205-221-242.mail.qq.com [203.205.221.242]) by mails.dpdk.org (Postfix) with ESMTP id 7C8C140041 for ; Wed, 5 Oct 2022 06:09:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1664942995; bh=6lpwnjs8NBqVG4SdwT/E1YpL1VbTfm40yfiYw4VY6Hg=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=pB/GP2nGSzLFPDb4V/KXCU+dAuhR8JpRLhl6AHSlAoUPdl8/KK7SQN5qufo8PSGlW ec3MF/+zClISnOPYRp7QTeGPWHDh9H7OjByVnHjMDF1j31Y0Mm0XOBF5Gg7w+bd2aU 3tZMbwaCuz0/JaGHWSdoZWxwjonUTujCYCyNs6Mo= Received: from qq.com ([120.229.93.179]) by newxmesmtplogicsvrsza31.qq.com (NewEsmtp) with SMTP id 27598E97; Wed, 05 Oct 2022 12:09:53 +0800 X-QQ-mid: xmsmtpt1664942993tr24oxhz9 Message-ID: X-QQ-XMAILINFO: MVKy59SpMLfUuZ22MmEqGPMlPwfSL/yI7dacmI1741JeB4Vdte6UXOvtIOnnvY HFTfWa9NUIUR5CYKKh3UhTmF4+mrTLmuDUYHHbd5fa61AmVo64NiyxF6xhsP8WYwYhZpfxs0+H0A PoG7QTaCYYUJLf87FH+a0oDB8xgDriT1HjyNpx/WL0BxshtvcUQ1MsixDABoUYrE7+tOTBP/bCnb I2PEcNVtt1oYZvAypTHM5T3uYQNBpbth3x9b2eC/I3VxR5xj2uZu/IZf6sYNwBeFtzi89OiboZDf TSLj0yJ/9mqHr3QIArsGbwmdFow2S6CjTcfHlX+UuRhGjfuELb8AbhcV7sLef2AFHx5eMu6oYh6v eFuUVbqOybvFS3MFZv/+/ioj3g4YXyzoscvZg4FCgaKiI4PpCZamy3sDzCD+hpg+pgwZ5NkoNoRE /5/Z6vQLG1MZo5Wo8Iv/a81zHvcTg7TN9KhDm3oIXgJ378MW4HHsrFXeO3dFCymYt1Ly0HGiBzlb V8zyZ0W6Vgo1y1zxwclwzAJyQ6+SXSLH9dRdNlKqXXw/b5MGJ7yZKJ0K8RIevKI9JcmN4theJJVh se1b1DdN8h5pwMrBMJijWn3j4c4tOOHAnbDtQRAbPWd7ucUtFx0aYOEYL8wjgCPHrOeDUKv6cj81 udqGkUZayLlFuMRS6clFitX9GIuaAc2JRDTLjjnnhD7cJU+El3/Y7qyFriIG7cXFjpk7pGvD9Vll NwUyx7ugbgYnOL5z+tw9ge8ic/jrF5MQwokDpbNvI/u0fxp1OSw8xOXJ4wFrNkxy3iOGqCmLhtQY 3VPict/5mUlk0mFJEV4p8L8FEl4GDdOXpc0MtHaXM1HFaB0Dwl7vprb4QIFkAHKFR7MTkw7b41Lz lPc08UPvTPpCvCZ8nchXGrJBqE2n90p9AaxsWQg29OFyB+cRRFsg+4ann2x7q8ZsAuQ7gDingc9U L8pizG10sWsCea9U3O1La3/VZsURniG4LzM5HkB++UblCt4dtpjB82lj/bCa6ET+Ko0wJxnYBiuI Su13RLBYDmS3wt9HHoo7zYYxrhHVc= From: datshan To: david.marchand@redhat.com, mb@smartsharesystems.com, anatoly.burakov@intel.com, dmitry.kozliuk@gmail.com, jerinjacobk@gmail.com Cc: thomas@monjalon.net, dev@dpdk.org, datshan , Chengwen Feng Subject: [PATCH v5 00/10] introduce memarea library Date: Wed, 5 Oct 2022 12:09:42 +0800 X-OQ-MSGID: <20221005040952.8166-1-datshan@qq.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220721044648.6817-1-fengchengwen@huawei.com> References: <20220721044648.6817-1-fengchengwen@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The memarea library is an allocator of variable-size object which based on a memory region. The main features are as follows: - The default alignment size is RTE_CACHE_LINE_SIZE. - The memory region can be initialized from the following memory sources: 1. RTE memory: e.g. invoke rte_malloc_socket to obtain. 2. System API: e.g. invoke posix_memalign to obtain. 3. User provided address: it can be from extended memory as long as it is available. The address must be aligned to RTE_CACHE_LINE_SIZE. 4. User provided memarea: it can be from another memarea. - It provides refcnt feature which could be useful in multi-reader scenario. - It provides backup memory mechanism, the memarea could use another memarea 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 Chengwen Feng (10): memarea: introduce memarea 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 memarea: detect memory corruption based on magic test/memarea: support no MT-safe test --- 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 | 401 +++++++++++++++++++++++ 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 | 55 ++++ 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 | 37 +++ lib/memarea/meson.build | 16 + lib/memarea/rte_memarea.c | 430 +++++++++++++++++++++++++ lib/memarea/rte_memarea.h | 229 +++++++++++++ lib/memarea/version.map | 16 + lib/meson.build | 1 + 16 files changed, 1205 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.34.1