[dpdk-dev] API in dpdk to get total free physical memory

Venumadhav Josyula vjosyula at parallelwireless.com
Thu Oct 5 07:56:44 CEST 2017


Hi All,

Like 'rte_eal_get_physmem_size' api to the total size of the physical memory. Is there an API to get to get total free memory physical memory available ?

We want such API we are planning to implement such API for the same

/* get the total size of memory */
uint64_t
rte_eal_get_physmem_free(int socket_id)
{
                const struct rte_mem_config *mcfg;
                unsigned i = 0;
                uint64_t total_len = 0;

                /* get pointer to global configuration */
                mcfg = rte_eal_get_configuration()->mem_config;

                for (i=0; i<RTE_MAX_MEMSEG; i++) {
                                if (mcfg->free_memseg[i].addr == NULL)
                                                break;

        if (mcfg->free_memseg[i].len == 0)
                                                continue;

        /* bad socket ID */
                                if (socket_id != SOCKET_ID_ANY &&
                                    mcfg->free_memseg[i].socket_id != SOCKET_ID_ANY &&
                                    socket_id != mcfg->free_memseg[i].socket_id)
                                                continue;

                                total_len += mcfg->free_memseg[i].len;
                }

                return total_len;
}

Thanks,
Regards
Venu


More information about the dev mailing list