> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Sergio Gonzalez Monroy > Sent: Friday, June 26, 2015 4:29 PM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH v6 0/9] Dynamic memzones > > Current implemetation allows reserving/creating memzones but not the opposite > (unreserve/free). This affects mempools and other memzone based objects. > > From my point of view, implementing free functionality for memzones would look > like malloc over memsegs. > Thus, this approach moves malloc inside eal (which in turn removes a circular > dependency), where malloc heaps are composed of memsegs. > We keep both malloc and memzone APIs as they are, but memzones allocate its > memory by calling malloc_heap_alloc. > Some extra functionality is required in malloc to allow for boundary > constrained > memory requests. > In summary, currently malloc is based on memzones, and with this approach > memzones are based on malloc. > > v6: > - fix bad patch for rte_memzone_free > > v5: > - Fix rte_memzone_free > - Improve rte_memzone_free unit test > > v4: > - Rebase and fix couple of merge issues > > v3: > - Create dummy librte_malloc > - Add deprecation notice > - Rework some of the code > - Doc update > - checkpatch > > v2: > - New rte_memzone_free > - Support memzone len = 0 > - Add all available memsegs to malloc heap at init > - Update memzone/malloc unit tests > > Sergio Gonzalez Monroy (9): > eal: move librte_malloc to eal/common > eal: memzone allocated by malloc > app/test: update malloc/memzone unit tests > config: remove CONFIG_RTE_MALLOC_MEMZONE_SIZE > eal: remove free_memseg and references to it > eal: new rte_memzone_free > app/test: rte_memzone_free unit test > doc: announce ABI change of librte_malloc > doc: update malloc documentation > > MAINTAINERS | 9 +- > app/test/test_malloc.c | 86 ---- > app/test/test_memzone.c | 456 > ++++------------------ > config/common_bsdapp | 8 +- > config/common_linuxapp | 8 +- > doc/guides/prog_guide/env_abstraction_layer.rst | 220 ++++++++++- > doc/guides/prog_guide/img/malloc_heap.png | Bin 81329 -> 80952 bytes > doc/guides/prog_guide/index.rst | 1 - > doc/guides/prog_guide/malloc_lib.rst | 233 ----------- > doc/guides/prog_guide/overview.rst | 11 +- > doc/guides/rel_notes/abi.rst | 1 + > drivers/net/af_packet/Makefile | 1 - > drivers/net/bonding/Makefile | 1 - > drivers/net/e1000/Makefile | 2 +- > drivers/net/enic/Makefile | 2 +- > drivers/net/fm10k/Makefile | 2 +- > drivers/net/i40e/Makefile | 2 +- > drivers/net/ixgbe/Makefile | 2 +- > drivers/net/mlx4/Makefile | 1 - > drivers/net/null/Makefile | 1 - > drivers/net/pcap/Makefile | 1 - > drivers/net/virtio/Makefile | 2 +- > drivers/net/vmxnet3/Makefile | 2 +- > drivers/net/xenvirt/Makefile | 2 +- > lib/Makefile | 2 +- > lib/librte_acl/Makefile | 2 +- > lib/librte_eal/bsdapp/eal/Makefile | 4 +- > lib/librte_eal/bsdapp/eal/rte_eal_version.map | 19 + > lib/librte_eal/common/Makefile | 1 + > lib/librte_eal/common/eal_common_memzone.c | 339 ++++++---------- > lib/librte_eal/common/include/rte_eal_memconfig.h | 5 +- > lib/librte_eal/common/include/rte_malloc.h | 342 ++++++++++++++++ > lib/librte_eal/common/include/rte_malloc_heap.h | 3 +- > lib/librte_eal/common/include/rte_memzone.h | 11 + > lib/librte_eal/common/malloc_elem.c | 344 ++++++++++++++++ > lib/librte_eal/common/malloc_elem.h | 192 +++++++++ > lib/librte_eal/common/malloc_heap.c | 206 ++++++++++ > lib/librte_eal/common/malloc_heap.h | 70 ++++ > lib/librte_eal/common/rte_malloc.c | 259 ++++++++++++ > lib/librte_eal/linuxapp/eal/Makefile | 4 +- > lib/librte_eal/linuxapp/eal/eal_ivshmem.c | 17 +- > lib/librte_eal/linuxapp/eal/rte_eal_version.map | 19 + > lib/librte_hash/Makefile | 2 +- > lib/librte_lpm/Makefile | 2 +- > lib/librte_malloc/Makefile | 6 +- > lib/librte_malloc/malloc_elem.c | 320 --------------- > lib/librte_malloc/malloc_elem.h | 190 --------- > lib/librte_malloc/malloc_heap.c | 208 ---------- > lib/librte_malloc/malloc_heap.h | 70 ---- > lib/librte_malloc/rte_malloc.c | 228 +---------- > lib/librte_malloc/rte_malloc.h | 342 ---------------- > lib/librte_malloc/rte_malloc_version.map | 16 - > lib/librte_mempool/Makefile | 2 - > lib/librte_port/Makefile | 1 - > lib/librte_ring/Makefile | 3 +- > lib/librte_table/Makefile | 1 - > 56 files changed, 1928 insertions(+), 2356 deletions(-) > delete mode 100644 doc/guides/prog_guide/malloc_lib.rst > create mode 100644 lib/librte_eal/common/include/rte_malloc.h > create mode 100644 lib/librte_eal/common/malloc_elem.c > create mode 100644 lib/librte_eal/common/malloc_elem.h > create mode 100644 lib/librte_eal/common/malloc_heap.c > create mode 100644 lib/librte_eal/common/malloc_heap.h > create mode 100644 lib/librte_eal/common/rte_malloc.c > delete mode 100644 lib/librte_malloc/malloc_elem.c > delete mode 100644 lib/librte_malloc/malloc_elem.h > delete mode 100644 lib/librte_malloc/malloc_heap.c > delete mode 100644 lib/librte_malloc/malloc_heap.h > delete mode 100644 lib/librte_malloc/rte_malloc.h > > --
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com> > 1.9.3