mem: rework memzone to be allocated by malloc
authorSergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Wed, 15 Jul 2015 16:32:21 +0000 (17:32 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 16 Jul 2015 11:59:24 +0000 (13:59 +0200)
commitfafcc11985a2d79c88334b10a6284068670954da
treeabbea4df204d49d50dee078bdf29bd57611eab06
parent2f9d47013e4dbb7381914e6e2e2470f69225cafc
mem: rework memzone to be allocated by malloc

In the current memory hierarchy, memsegs are groups of physically
contiguous hugepages, memzones are slices of memsegs and malloc further
slices memzones into smaller memory chunks.

This patch modifies malloc so it partitions memsegs instead of memzones.
Thus memzones would call malloc internally for memory allocation while
maintaining its ABI.

During initialization malloc sets all available memory as part of the heaps.
CONFIG_RTE_MALLOC_MEMZONE_SIZE was used to specify the default memory
block size to expand the heap. The option is not used/relevant anymore,
so we remove it.

Remove free_memseg field from internal mem config structure as it is
not used anymore.
Also remove code in ivshmem that was setting up free_memseg on init.

It would be possible to free memzones and therefore any other structure
based on memzones, ie. mempools

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
12 files changed:
config/common_bsdapp
config/common_linuxapp
lib/librte_eal/common/eal_common_memzone.c
lib/librte_eal/common/include/rte_eal_memconfig.h
lib/librte_eal/common/include/rte_malloc_heap.h
lib/librte_eal/common/malloc_elem.c
lib/librte_eal/common/malloc_elem.h
lib/librte_eal/common/malloc_heap.c
lib/librte_eal/common/malloc_heap.h
lib/librte_eal/common/rte_malloc.c
lib/librte_eal/linuxapp/eal/eal_ivshmem.c
lib/librte_eal/linuxapp/eal/eal_memory.c