[dpdk-dev] [PATCH] malloc: fix size annotation for NUMA-aware realloc
Maxime Coquelin
mcoqueli at redhat.com
Thu Jun 10 14:19:19 CEST 2021
On 6/10/21 2:09 PM, David Marchand wrote:
> __rte_alloc_size is mapped to compiler alloc_size attribute.
>
> Quoting gcc documentation:
> """
> alloc_size
> The alloc_size attribute is used to tell the compiler that the
> function return value points to memory, where the size is given by
> one or two of the functions parameters. GCC uses this information
> to improve the correctness of __builtin_object_size.
>
> The function parameter(s) denoting the allocated size are specified
> by one or two integer arguments supplied to the attribute.
> The allocated size is either the value of the single function
> argument specified or the product of the two function arguments
> specified. Argument numbering starts at one.
> """
>
> In rte_realloc_socket case, only 'size' matters.
>
> Note: this has been spotted by Maxime trying to use rte_realloc_socket
> and compiling with gcc 11.
>
> Fixes: 17b347dab769 ("malloc: add alloc_size attribute to functions")
> Cc: stable at dpdk.org
>
> Signed-off-by: David Marchand <david.marchand at redhat.com>
> ---
> lib/eal/include/rte_malloc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/eal/include/rte_malloc.h b/lib/eal/include/rte_malloc.h
> index 3af64f8761..895bb6e849 100644
> --- a/lib/eal/include/rte_malloc.h
> +++ b/lib/eal/include/rte_malloc.h
> @@ -160,7 +160,7 @@ rte_realloc(void *ptr, size_t size, unsigned int align)
> __rte_experimental
> void *
> rte_realloc_socket(void *ptr, size_t size, unsigned int align, int socket)
> - __rte_alloc_size(2, 3);
> + __rte_alloc_size(2);
>
> /**
> * This function allocates memory from the huge-page area of memory. The memory
>
Tested-by: Maxime Coquelin <maxime.coquelin at redhat.com>
Thanks!
Maxime
More information about the dev
mailing list