malloc: avoid unknown socket id

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>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
This commit is contained in:
Cunming Liang 2015-02-17 10:08:09 +08:00 committed by Thomas Monjalon
parent 8baacdd30e
commit b94580d688

View File

@ -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 *