X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Feal_private.h;h=0592fcd694e1ecb6170f9d29d4807cb2dcde3207;hb=694161b7e0658450f3771f5d31000b2554b4694b;hp=75521d086c7f45af0b285fd26d38d05760b17864;hpb=83713ef2761085501fbc4e3703817fafb3184b3b;p=dpdk.git diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h index 75521d086c..0592fcd694 100644 --- a/lib/librte_eal/common/eal_private.h +++ b/lib/librte_eal/common/eal_private.h @@ -13,6 +13,8 @@ #include #include +#include "eal_internal_cfg.h" + /** * Structure storing internal configuration (per-lcore) */ @@ -316,6 +318,45 @@ eal_memseg_list_alloc(struct rte_memseg_list *msl, int reserve_flags); void eal_memseg_list_populate(struct rte_memseg_list *msl, void *addr, int n_segs); +/** + * Distribute available memory between MSLs. + * + * @return + * 0 on success, (-1) on failure. + */ +int +eal_dynmem_memseg_lists_init(void); + +/** + * Preallocate hugepages for dynamic allocation. + * + * @return + * 0 on success, (-1) on failure. + */ +int +eal_dynmem_hugepage_init(void); + +/** + * Given the list of hugepage sizes and the number of pages thereof, + * calculate the best number of pages of each size to fulfill the request + * for RAM on each NUMA node. + * + * @param memory + * Amounts of memory requested for each NUMA node of RTE_MAX_NUMA_NODES. + * @param hp_info + * Information about hugepages of different size. + * @param hp_used + * Receives information about used hugepages of each size. + * @param num_hp_info + * Number of elements in hp_info and hp_used. + * @return + * 0 on success, (-1) on failure. + */ +int +eal_dynmem_calc_num_pages_per_socket( + uint64_t *memory, struct hugepage_info *hp_info, + struct hugepage_info *hp_used, unsigned int num_hp_info); + /** * Get cpu core_id. * @@ -595,7 +636,7 @@ void * eal_mem_reserve(void *requested_addr, size_t size, int flags); /** - * Free memory obtained by eal_mem_reserve() or eal_mem_alloc(). + * Free memory obtained by eal_mem_reserve() and possibly allocated. * * If *virt* and *size* describe a part of the reserved region, * only this part of the region is freed (accurately up to the system