[dpdk-dev] [RFC 03/11] malloc: index heaps using heap ID rather than NUMA node
Burakov, Anatoly
anatoly.burakov at intel.com
Fri Jul 13 18:08:28 CEST 2018
On 13-Jul-18 5:05 PM, Alejandro Lucero wrote:
>> - /* get pointer to global configuration */
>> - mcfg = rte_eal_get_configuration()->mem_config;
>> -
>> - for (i = 0; i < RTE_MAX_NUMA_NODES; i++) {
>> - if ((socket != SOCKET_ID_ANY) && (socket != i))
>> + for (idx = 0; idx < rte_socket_count(); idx++) {
>> + int cur_socket = rte_socket_id_by_idx(idx);
>> + if ((socket != SOCKET_ID_ANY) && (socket != cur_socket))
>> continue;
>>
>> - malloc_heap_get_stats(&mcfg->malloc_heaps[i], &stats);
>> - if (stats.greatest_free_size > len) {
>> - len = stats.greatest_free_size;
>> - *s = i;
>> + size_t cur_len = heap_max_free_elem(idx, align);
>> + if (cur_len > len) {
>> + len = cur_len;
>> + *s = cur_socket;
>> }
>> }
>>
>> - if (len < MALLOC_ELEM_OVERHEAD + align)
>> - return 0;
>> -
>> - return len - MALLOC_ELEM_OVERHEAD - align;
>> + return len;
>>
>
> Is it worth to set *s to some safe value if no space at all?
No, the value of *s is set externally anyway, and is not used of return
value is 0.
Thanks for other comments, will fix when the next iteration comes.
--
Thanks,
Anatoly
More information about the dev
mailing list