[PATCH v4 19/27] net/iavf: avoid rte malloc in RSS configuration

Bruce Richardson bruce.richardson at intel.com
Mon Feb 16 18:24:41 CET 2026


On Fri, Feb 13, 2026 at 10:26:30AM +0000, Anatoly Burakov wrote:
> Currently, when configuring RSS (redirection table, lookup table, and
> hash key), we are using rte_zmalloc followed by an immediate rte_free.
> This is not needed as this memory is not being stored anywhere, so
> replace it with regular malloc/free.
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
> ---
>  drivers/net/intel/iavf/iavf_ethdev.c | 4 ++--
>  drivers/net/intel/iavf/iavf_vchnl.c  | 8 ++++----
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c
> index 70eb7e7ec5..d3fa47fd5e 100644
> --- a/drivers/net/intel/iavf/iavf_ethdev.c
> +++ b/drivers/net/intel/iavf/iavf_ethdev.c
> @@ -1554,7 +1554,7 @@ iavf_dev_rss_reta_update(struct rte_eth_dev *dev,
>  		return -EINVAL;
>  	}
>  
> -	lut = rte_zmalloc("rss_lut", reta_size, 0);
> +	lut = calloc(1, reta_size);

As with i40e, can we make this (and the key allocation below) static based
on max sizes supported?

>  	if (!lut) {
>  		PMD_DRV_LOG(ERR, "No memory can be allocated");
>  		return -ENOMEM;
> @@ -1574,7 +1574,7 @@ iavf_dev_rss_reta_update(struct rte_eth_dev *dev,
>  	ret = iavf_configure_rss_lut(adapter);
>  	if (ret) /* revert back */
>  		rte_memcpy(vf->rss_lut, lut, reta_size);
> -	rte_free(lut);
> +	free(lut);
>  
>  	return ret;
>  }
> diff --git a/drivers/net/intel/iavf/iavf_vchnl.c b/drivers/net/intel/iavf/iavf_vchnl.c
> index 9ad39300c6..55986ef909 100644
> --- a/drivers/net/intel/iavf/iavf_vchnl.c
> +++ b/drivers/net/intel/iavf/iavf_vchnl.c
> @@ -1159,7 +1159,7 @@ iavf_configure_rss_lut(struct iavf_adapter *adapter)
>  	int len, err = 0;
>  
>  	len = sizeof(*rss_lut) + vf->vf_res->rss_lut_size - 1;
> -	rss_lut = rte_zmalloc("rss_lut", len, 0);
> +	rss_lut = calloc(1, len);
>  	if (!rss_lut)
>  		return -ENOMEM;
>  
> @@ -1178,7 +1178,7 @@ iavf_configure_rss_lut(struct iavf_adapter *adapter)
>  		PMD_DRV_LOG(ERR,
>  			    "Failed to execute command of OP_CONFIG_RSS_LUT");
>  
> -	rte_free(rss_lut);
> +	free(rss_lut);
>  	return err;
>  }
>  
> @@ -1191,7 +1191,7 @@ iavf_configure_rss_key(struct iavf_adapter *adapter)
>  	int len, err = 0;
>  
>  	len = sizeof(*rss_key) + vf->vf_res->rss_key_size - 1;
> -	rss_key = rte_zmalloc("rss_key", len, 0);
> +	rss_key = calloc(1, len);
>  	if (!rss_key)
>  		return -ENOMEM;
>  
> @@ -1210,7 +1210,7 @@ iavf_configure_rss_key(struct iavf_adapter *adapter)
>  		PMD_DRV_LOG(ERR,
>  			    "Failed to execute command of OP_CONFIG_RSS_KEY");
>  
> -	rte_free(rss_key);
> +	free(rss_key);
>  	return err;
>  }
>  
> -- 
> 2.47.3
> 


More information about the dev mailing list