[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