From: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
To: Chengwen Feng <fengchengwen@huawei.com>
Cc: <david.marchand@redhat.com>, <mb@smartsharesystems.com>,
<anatoly.burakov@intel.com>, <jerinjacobk@gmail.com>,
<hofors@lysator.liu.se>, <thomas@monjalon.net>, <dev@dpdk.org>
Subject: Re: [PATCH v8 7/9] memarea: support backup memory mechanism
Date: Tue, 11 Oct 2022 18:58:32 +0300 [thread overview]
Message-ID: <20221011185832.4aaffcc5@sovereign> (raw)
In-Reply-To: <20221011121720.2657-8-fengchengwen@huawei.com>
2022-10-11 12:17 (UTC+0000), Chengwen Feng:
> This patch adds a memarea backup mechanism, where an allocation request
> which cannot be met by the current memarea is deferred to its backup
> memarea.
This is a controversial feature.
1. It violates memarea property of freeing all allocated objects
at once when the memarea itself is destroyed. Objects allocated
in the backup memarea through the destroyed one will remain.
2. If there was an API to check that the object belongs to a memarea
(the check from rte_memarea_update_refcnt() in this patch),
it would be trivial to implement this feature on top of memarea API.
Nit: "Deferred" is about time -> "forwarded", "delegated", or "handled over".
A general note about this series.
IMO, libraries should have limited scope and allow composition
rather than accumulate features and control their use via options.
The core idea of memarea is an allocator within a memory region,
a fast one and with low overhead, usable to free all objects at once.
This is orthogonal to the question from where the memory comes from.
HEAP and LIBC sources could be built on top of USER source,
which means that the concept of source is less relevant.
Backup mechanism could instead be a way to add memory to the area,
in which case HEAP and LIBC memarea would also be expandable.
Memarea API could be defined as a structure with callbacks,
and different types of memarea could be combined,
for example, interlocked memarea on top of expandable memarea on top of
memarea with a particular memory management algorithm.
I'm not saying we should immediately build all this complexity.
On the contrary, I would merge the basic things first,
then try to _stack_ new features on top,
then look if interfaces emerge that can be used for composition.
next prev parent reply other threads:[~2022-10-11 15:58 UTC|newest]
Thread overview: 222+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-21 4:46 [RFC] memarea: introduce memory area library Chengwen Feng
2022-07-21 15:22 ` Stephen Hemminger
2022-08-04 6:36 ` Jerin Jacob
2022-08-30 12:41 ` Dmitry Kozlyuk
2022-09-20 3:46 ` [PATCH 0/8] introduce memarea library Chengwen Feng
2022-09-20 3:46 ` [PATCH 1/8] memarea: introduce memory area library Chengwen Feng
2022-09-20 11:30 ` Dmitry Kozlyuk
2022-09-20 11:31 ` Dmitry Kozlyuk
2022-09-20 12:06 ` fengchengwen
2022-09-20 3:46 ` [PATCH 2/8] test/memarea: support memarea test Chengwen Feng
2022-09-20 3:46 ` [PATCH 3/8] memarea: support alloc/free/update-refcnt API Chengwen Feng
2022-09-20 3:46 ` [PATCH 4/8] test/memarea: support alloc/free/update-refcnt test Chengwen Feng
2022-09-20 3:46 ` [PATCH 5/8] memarea: support dump API Chengwen Feng
2022-09-20 3:46 ` [PATCH 6/8] test/memarea: support dump test Chengwen Feng
2022-09-20 3:46 ` [PATCH 7/8] memarea: support backup memory mechanism Chengwen Feng
2022-09-20 3:46 ` [PATCH 8/8] test/memarea: support backup memory test Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 0/9] introduce memarea library Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 1/9] memarea: introduce memory area library Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 2/9] test/memarea: support memarea test Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 3/9] memarea: support alloc/free/update-refcnt API Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 4/9] test/memarea: support alloc/free/update-refcnt test Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 5/9] memarea: support dump API Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 6/9] test/memarea: support dump test Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 7/9] memarea: support backup memory mechanism Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 8/9] test/memarea: support backup memory test Chengwen Feng
2022-09-21 3:12 ` [PATCH v2 9/9] test/memarea: support no MT-safe test Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 00/10] introduce memarea library Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 01/10] memarea: " Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 02/10] test/memarea: support memarea test Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 03/10] memarea: support alloc/free/update-refcnt API Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 04/10] test/memarea: support alloc/free/update-refcnt test Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 05/10] memarea: support dump API Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 06/10] test/memarea: support dump test Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 07/10] memarea: support backup memory mechanism Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 08/10] test/memarea: support backup memory test Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 09/10] memarea: detect memory corruption based on magic Chengwen Feng
2022-09-24 7:49 ` [PATCH v3 10/10] test/memarea: support no MT-safe test Chengwen Feng
2022-10-03 7:42 ` [PATCH v3 00/10] introduce memarea library David Marchand
2022-10-05 4:19 ` datshan
2022-10-05 3:38 ` [PATCH v4 " datshan
[not found] ` <20221005033848.2241-1-datshan@qq.com>
2022-10-05 3:38 ` [PATCH v4 01/10] memarea: " datshan
2022-10-05 3:38 ` [PATCH v4 02/10] test/memarea: support memarea test datshan
2022-10-05 3:38 ` [PATCH v4 03/10] memarea: support alloc/free/update-refcnt API datshan
2022-10-05 3:38 ` [PATCH v4 04/10] test/memarea: support alloc/free/update-refcnt test datshan
2022-10-05 3:38 ` [PATCH v4 05/10] memarea: support dump API datshan
2022-10-05 3:38 ` [PATCH v4 06/10] test/memarea: support dump test datshan
2022-10-05 3:38 ` [PATCH v4 07/10] memarea: support backup memory mechanism datshan
2022-10-05 3:38 ` [PATCH v4 08/10] test/memarea: support backup memory test datshan
2022-10-05 3:38 ` [PATCH v4 09/10] memarea: detect memory corruption based on magic datshan
2022-10-05 3:38 ` [PATCH v4 10/10] test/memarea: support no MT-safe test datshan
2022-10-05 4:09 ` [PATCH v5 00/10] introduce memarea library datshan
[not found] ` <20221005040952.8166-1-datshan@qq.com>
2022-10-05 4:09 ` [PATCH v5 01/10] memarea: " datshan
2022-10-06 20:15 ` Mattias Rönnblom
2022-10-08 7:53 ` fengchengwen
2022-10-10 16:53 ` Mattias Rönnblom
2022-10-10 23:33 ` fengchengwen
2022-10-11 15:35 ` Mattias Rönnblom
2022-10-05 4:09 ` [PATCH v5 02/10] test/memarea: support memarea test datshan
2022-10-05 4:09 ` [PATCH v5 03/10] memarea: support alloc/free/update-refcnt API datshan
2022-10-06 19:43 ` Mattias Rönnblom
2022-10-08 8:02 ` fengchengwen
2022-10-05 4:09 ` [PATCH v5 04/10] test/memarea: support alloc/free/update-refcnt test datshan
2022-10-05 4:09 ` [PATCH v5 05/10] memarea: support dump API datshan
2022-10-05 4:09 ` [PATCH v5 06/10] test/memarea: support dump test datshan
2022-10-05 4:09 ` [PATCH v5 07/10] memarea: support backup memory mechanism datshan
2022-10-06 19:53 ` Mattias Rönnblom
2022-10-08 7:56 ` fengchengwen
2022-10-05 4:09 ` [PATCH v5 08/10] test/memarea: support backup memory test datshan
2022-10-05 4:09 ` [PATCH v5 09/10] memarea: detect memory corruption based on magic datshan
2022-10-05 4:09 ` [PATCH v5 10/10] test/memarea: support no MT-safe test datshan
2022-10-08 11:33 ` [PATCH v6 00/10] introduce memarea library Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 01/10] memarea: " Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 02/10] test/memarea: support memarea test Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 03/10] memarea: support alloc/free/update-refcnt API Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 04/10] test/memarea: support alloc/free/update-refcnt test Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 05/10] memarea: support dump API Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 06/10] test/memarea: support dump test Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 07/10] memarea: support backup memory mechanism Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 08/10] test/memarea: support backup memory test Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 09/10] memarea: detect memory corruption based on magic Chengwen Feng
2022-10-08 11:33 ` [PATCH v6 10/10] test/memarea: support no MT-safe test Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 00/10] introduce memarea library Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 01/10] memarea: " Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 02/10] test/memarea: support memarea test Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 03/10] memarea: support alloc/free/update-refcnt API Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 04/10] test/memarea: support alloc/free/update-refcnt test Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 05/10] memarea: support dump API Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 06/10] test/memarea: support dump test Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 07/10] memarea: support backup memory mechanism Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 08/10] test/memarea: support backup memory test Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 09/10] memarea: detect memory corruption based on magic Chengwen Feng
2022-10-08 11:58 ` [PATCH v7 10/10] test/memarea: support no MT-safe test Chengwen Feng
2022-10-08 12:14 ` [PATCH v7 00/10] introduce memarea library fengchengwen
2022-10-11 12:17 ` [PATCH v8 0/9] " Chengwen Feng
2022-10-11 12:17 ` [PATCH v8 1/9] memarea: " Chengwen Feng
2022-10-11 15:58 ` Dmitry Kozlyuk
2022-10-12 4:06 ` fengchengwen
2022-10-13 10:45 ` fengchengwen
2022-10-11 12:17 ` [PATCH v8 2/9] test/memarea: support memarea test Chengwen Feng
2022-10-11 12:17 ` [PATCH v8 3/9] memarea: support alloc/free/update-refcnt API Chengwen Feng
2022-10-11 15:58 ` Dmitry Kozlyuk
2022-10-12 7:28 ` fengchengwen
2022-10-11 12:17 ` [PATCH v8 4/9] test/memarea: support alloc/free/update-refcnt test Chengwen Feng
2022-10-11 12:17 ` [PATCH v8 5/9] memarea: support dump API Chengwen Feng
2022-10-11 12:17 ` [PATCH v8 6/9] test/memarea: support dump test Chengwen Feng
2022-10-11 12:17 ` [PATCH v8 7/9] memarea: support backup memory mechanism Chengwen Feng
2022-10-11 15:58 ` Dmitry Kozlyuk [this message]
2022-10-11 20:26 ` Mattias Rönnblom
2022-10-12 8:23 ` fengchengwen
2022-10-12 7:57 ` fengchengwen
2022-10-11 12:17 ` [PATCH v8 8/9] test/memarea: support backup memory test Chengwen Feng
2022-10-11 12:17 ` [PATCH v8 9/9] app/test: add memarea to malloc-perf-autotest Chengwen Feng
2022-10-11 15:58 ` Dmitry Kozlyuk
2022-10-12 8:03 ` fengchengwen
2022-10-12 10:47 ` [PATCH v9 0/7] introduce memarea library Chengwen Feng
2022-10-12 10:47 ` [PATCH v9 1/7] memarea: " Chengwen Feng
2022-10-12 10:48 ` [PATCH v9 2/7] test/memarea: support memarea test Chengwen Feng
2022-10-12 10:48 ` [PATCH v9 3/7] memarea: support alloc/free/refcnt-update API Chengwen Feng
2022-10-12 10:48 ` [PATCH v9 4/7] test/memarea: support alloc/free/refcnt-update test Chengwen Feng
2022-10-12 10:48 ` [PATCH v9 5/7] memarea: support dump API Chengwen Feng
2022-10-12 10:48 ` [PATCH v9 6/7] test/memarea: support dump test Chengwen Feng
2022-10-12 10:48 ` [PATCH v9 7/7] app/test: add memarea to malloc-perf-autotest Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 0/7] introduce memarea library Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 1/7] memarea: " Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 2/7] test/memarea: support memarea test Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 3/7] memarea: support alloc/free/refcnt-update API Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 4/7] test/memarea: support alloc/free/refcnt-update test Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 5/7] memarea: support dump API Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 6/7] test/memarea: support dump test Chengwen Feng
2022-10-17 3:40 ` [PATCH v10 7/7] app/test: add memarea to malloc-perf-autotest Chengwen Feng
2022-12-13 9:13 ` [PATCH v11 0/6] introduce memarea library Chengwen Feng
2022-12-13 9:13 ` [PATCH v11 1/6] memarea: " Chengwen Feng
2022-12-13 9:13 ` [PATCH v11 2/6] test/memarea: support memarea test Chengwen Feng
2022-12-13 9:13 ` [PATCH v11 3/6] memarea: support alloc/free/refcnt-update API Chengwen Feng
2023-01-10 2:16 ` Dongdong Liu
2022-12-13 9:13 ` [PATCH v11 4/6] test/memarea: support alloc/free/refcnt-update test Chengwen Feng
2022-12-13 9:13 ` [PATCH v11 5/6] memarea: support dump API Chengwen Feng
2022-12-13 9:13 ` [PATCH v11 6/6] test/memarea: support dump test Chengwen Feng
2023-01-10 2:21 ` [PATCH v11 0/6] introduce memarea library Dongdong Liu
2023-01-14 11:49 ` [PATCH v12 " Chengwen Feng
2023-01-14 11:49 ` [PATCH v12 1/6] memarea: " Chengwen Feng
2023-01-15 7:58 ` Morten Brørup
2023-01-20 8:20 ` fengchengwen
2023-01-20 9:05 ` Morten Brørup
2023-01-14 11:49 ` [PATCH v12 2/6] test/memarea: support memarea test Chengwen Feng
2023-01-14 11:49 ` [PATCH v12 3/6] memarea: support alloc and free API Chengwen Feng
2023-01-14 11:49 ` [PATCH v12 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-01-14 11:49 ` [PATCH v12 5/6] memarea: support dump API Chengwen Feng
2023-01-14 11:49 ` [PATCH v12 6/6] test/memarea: support dump API test Chengwen Feng
2023-02-08 8:24 ` [PATCH v13 0/6] introduce memarea library Chengwen Feng
2023-02-08 8:24 ` [PATCH v13 1/6] memarea: " Chengwen Feng
2023-02-09 0:04 ` Stephen Hemminger
2023-02-09 6:48 ` fengchengwen
2023-02-08 8:24 ` [PATCH v13 2/6] test/memarea: support memarea test Chengwen Feng
2023-02-08 8:24 ` [PATCH v13 3/6] memarea: support alloc and free API Chengwen Feng
2023-02-08 8:24 ` [PATCH v13 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-02-08 8:24 ` [PATCH v13 5/6] memarea: support dump API Chengwen Feng
2023-02-08 8:24 ` [PATCH v13 6/6] test/memarea: support dump API test Chengwen Feng
2023-02-08 8:43 ` [PATCH v13 0/6] introduce memarea library Morten Brørup
2023-02-09 6:36 ` [PATCH v14 " Chengwen Feng
2023-02-09 6:36 ` [PATCH v14 1/6] memarea: " Chengwen Feng
2023-06-21 10:52 ` Burakov, Anatoly
2023-06-21 12:05 ` Burakov, Anatoly
2023-02-09 6:36 ` [PATCH v14 2/6] test/memarea: support memarea test Chengwen Feng
2023-06-21 11:00 ` Burakov, Anatoly
2023-02-09 6:36 ` [PATCH v14 3/6] memarea: support alloc and free API Chengwen Feng
2023-06-22 15:29 ` Burakov, Anatoly
2023-02-09 6:36 ` [PATCH v14 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-02-09 6:36 ` [PATCH v14 5/6] memarea: support dump API Chengwen Feng
2023-06-22 15:55 ` Burakov, Anatoly
2023-06-28 1:25 ` fengchengwen
2023-06-28 1:39 ` Thomas Monjalon
2023-06-28 1:48 ` fengchengwen
2023-07-03 10:29 ` Burakov, Anatoly
2023-02-09 6:36 ` [PATCH v14 6/6] test/memarea: support dump API test Chengwen Feng
2023-06-12 13:53 ` [PATCH v14 0/6] introduce memarea library Ferruh Yigit
2023-06-13 9:50 ` fengchengwen
2023-06-13 11:04 ` Burakov, Anatoly
2023-06-13 12:46 ` fengchengwen
2023-07-09 13:00 ` [PATCH v15 " Chengwen Feng
2023-07-09 13:00 ` [PATCH v15 1/6] memarea: " Chengwen Feng
2023-07-09 19:46 ` Stephen Hemminger
2023-07-09 13:00 ` [PATCH v15 2/6] test/memarea: support memarea test Chengwen Feng
2023-07-09 13:00 ` [PATCH v15 3/6] memarea: support alloc and free API Chengwen Feng
2023-07-09 13:00 ` [PATCH v15 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-07-09 13:00 ` [PATCH v15 5/6] memarea: support dump API Chengwen Feng
2023-07-09 13:00 ` [PATCH v15 6/6] test/memarea: support dump API test Chengwen Feng
2023-07-10 6:49 ` [PATCH v16 0/6] introduce memarea library Chengwen Feng
2023-07-10 6:49 ` [PATCH v16 1/6] memarea: " Chengwen Feng
2023-07-17 13:19 ` Burakov, Anatoly
2023-07-10 6:49 ` [PATCH v16 2/6] test/memarea: support memarea test Chengwen Feng
2023-07-17 13:22 ` Burakov, Anatoly
2023-07-10 6:49 ` [PATCH v16 3/6] memarea: support alloc and free API Chengwen Feng
2023-07-17 13:33 ` Burakov, Anatoly
2023-07-10 6:49 ` [PATCH v16 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-07-17 13:57 ` Burakov, Anatoly
2023-07-18 2:49 ` fengchengwen
2023-07-10 6:49 ` [PATCH v16 5/6] memarea: support dump API Chengwen Feng
2023-07-10 6:49 ` [PATCH v16 6/6] test/memarea: support dump API test Chengwen Feng
2023-07-19 12:09 ` Burakov, Anatoly
2023-07-20 9:35 ` fengchengwen
2023-07-18 2:40 ` [PATCH v17 0/6] introduce memarea library Chengwen Feng
2023-07-18 2:40 ` [PATCH v17 1/6] memarea: " Chengwen Feng
2023-07-18 2:40 ` [PATCH v17 2/6] test/memarea: support memarea test Chengwen Feng
2023-07-18 2:40 ` [PATCH v17 3/6] memarea: support alloc and free API Chengwen Feng
2023-07-18 2:40 ` [PATCH v17 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-07-18 2:40 ` [PATCH v17 5/6] memarea: support dump API Chengwen Feng
2023-07-18 2:40 ` [PATCH v17 6/6] test/memarea: support dump API test Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 0/6] introduce memarea library Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 1/6] memarea: " Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 2/6] test/memarea: support memarea test Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 3/6] memarea: support alloc and free API Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 5/6] memarea: support dump API Chengwen Feng
2023-07-18 13:46 ` [PATCH v18 6/6] test/memarea: support dump API test Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 0/6] introduce memarea library Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 1/6] memarea: " Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 2/6] test/memarea: support memarea test Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 3/6] memarea: support alloc and free API Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 4/6] test/memarea: support alloc and free API test Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 5/6] memarea: support dump API Chengwen Feng
2023-07-20 9:22 ` [PATCH v19 6/6] test/memarea: support dump API test Chengwen Feng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221011185832.4aaffcc5@sovereign \
--to=dmitry.kozliuk@gmail.com \
--cc=anatoly.burakov@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=hofors@lysator.liu.se \
--cc=jerinjacobk@gmail.com \
--cc=mb@smartsharesystems.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).