mem: do not check for invalid socket ID
We will be assigning "invalid" socket ID's to external heap, and malloc will now be able to verify if a supplied socket ID is in fact a valid one, rendering parameter checks for sockets obsolete. This changes the semantics of what we understand by "socket ID", so document the change in the release notes. Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
parent
72cf92b318
commit
f473b6d191
@ -123,6 +123,13 @@ API Changes
|
||||
for any users of memseg-walk-related functions, as they will now have to skip
|
||||
externally allocated segments in most cases if the intent is to only iterate
|
||||
over internal DPDK memory.
|
||||
``socket_id`` parameter across the entire DPDK has gained additional meaning,
|
||||
as some socket ID's will now be representing externally allocated memory. No
|
||||
changes will be required for existing code as backwards compatibility will be
|
||||
kept, and those who do not use this feature will not see these extra socket
|
||||
ID's. Any new API's must not check socket ID parameters themselves, and must
|
||||
instead leave it to the memory subsystem to decide whether socket ID is a
|
||||
valid one.
|
||||
|
||||
* mbuf: The ``__rte_mbuf_raw_free()`` and ``__rte_pktmbuf_prefree_seg()``
|
||||
functions were deprecated since 17.05 and are replaced by
|
||||
|
@ -120,13 +120,15 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((socket_id != SOCKET_ID_ANY) &&
|
||||
(socket_id >= RTE_MAX_NUMA_NODES || socket_id < 0)) {
|
||||
if ((socket_id != SOCKET_ID_ANY) && socket_id < 0) {
|
||||
rte_errno = EINVAL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!rte_eal_has_hugepages())
|
||||
/* only set socket to SOCKET_ID_ANY if we aren't allocating for an
|
||||
* external heap.
|
||||
*/
|
||||
if (!rte_eal_has_hugepages() && socket_id < RTE_MAX_NUMA_NODES)
|
||||
socket_id = SOCKET_ID_ANY;
|
||||
|
||||
contig = (flags & RTE_MEMZONE_IOVA_CONTIG) != 0;
|
||||
|
@ -651,7 +651,7 @@ malloc_heap_alloc(const char *type, size_t size, int socket_arg,
|
||||
if (size == 0 || (align && !rte_is_power_of_2(align)))
|
||||
return NULL;
|
||||
|
||||
if (!rte_eal_has_hugepages())
|
||||
if (!rte_eal_has_hugepages() && socket_arg < RTE_MAX_NUMA_NODES)
|
||||
socket_arg = SOCKET_ID_ANY;
|
||||
|
||||
if (socket_arg == SOCKET_ID_ANY)
|
||||
|
@ -47,10 +47,6 @@ rte_malloc_socket(const char *type, size_t size, unsigned int align,
|
||||
if (!rte_eal_has_hugepages())
|
||||
socket_arg = SOCKET_ID_ANY;
|
||||
|
||||
/* Check socket parameter */
|
||||
if (socket_arg >= RTE_MAX_NUMA_NODES)
|
||||
return NULL;
|
||||
|
||||
return malloc_heap_alloc(type, size, socket_arg, 0,
|
||||
align == 0 ? 1 : align, 0, false);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user