[dpdk-dev,v8,12/19] malloc: fix the issue of SOCKET_ID_ANY
Commit Message
Add check for rte_socket_id(), avoid get unexpected return like (-1).
By using rte_malloc_socket(), socket id is assigned by socket_arg.
If socket_arg set to SOCKET_ID_ANY, it expects to use the socket id to which the current cores belongs.
As the thread may affinity on a cpuset, the cores in the cpuset may belongs to different NUMA nodes.
The value of _socket_id probably be SOCKET_ID_ANY(-1), the case is not expected in origin malloc_get_numa_socket().
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
---
v7 changes:
reword comments
lib/librte_malloc/malloc_heap.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
@@ -44,7 +44,12 @@ extern "C" {
static inline unsigned
malloc_get_numa_socket(void)
{
- return rte_socket_id();
+ unsigned socket_id = rte_socket_id();
+
+ if (socket_id == (unsigned)SOCKET_ID_ANY)
+ return 0;
+
+ return socket_id;
}
void *