[dpdk-dev] [PATCH v6 0/9] Dynamic memzones
Ananyev, Konstantin
konstantin.ananyev at intel.com
Fri Jun 26 18:13:23 CEST 2015
> -----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
More information about the dev
mailing list