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

Reply via email to