[dpdk-dev] [PATCH v4 10/17] malloc: fix the issue of SOCKET_ID_ANY

Olivier MATZ olivier.matz at 6wind.com
Sun Feb 8 21:00:52 CET 2015


Hi,

On 02/02/2015 03:02 AM, Cunming Liang wrote:
> Add check for rte_socket_id(), avoid get unexpected return like (-1).
> 
> Signed-off-by: Cunming Liang <cunming.liang at intel.com>
> ---
>  lib/librte_malloc/malloc_heap.h | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_malloc/malloc_heap.h b/lib/librte_malloc/malloc_heap.h
> index b4aec45..a47136d 100644
> --- a/lib/librte_malloc/malloc_heap.h
> +++ b/lib/librte_malloc/malloc_heap.h
> @@ -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 *
> 

The documentation off rte_malloc_socket() says:

@param socket
  NUMA socket to allocate memory on. If SOCKET_ID_ANY is used, this
  function will behave the same as rte_malloc().

void *
rte_malloc_socket(const char *type, size_t size, unsigned align, int
socket);


Your patch changes the behavior of rte_malloc() without explaining
why, and the documentation becomes wrong.

Can you explain why you need this change?

Regards,
Olivier


More information about the dev mailing list