[PATCH v2 05/10] baseband/acc: enhance SW ring alignment

Maxime Coquelin maxime.coquelin at redhat.com
Tue Oct 8 09:51:40 CEST 2024



On 10/3/24 22:49, Hernan Vargas wrote:
> Calculate the aligned total size required for queue rings, ensuring that
> the size is a power of two for proper memory allocation.
> 
> Signed-off-by: Hernan Vargas <hernan.vargas at intel.com>
> ---
>   drivers/baseband/acc/acc_common.h | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
> index 0d1c26166ff2..8ac1ca001c1d 100644
> --- a/drivers/baseband/acc/acc_common.h
> +++ b/drivers/baseband/acc/acc_common.h
> @@ -767,19 +767,20 @@ alloc_sw_rings_min_mem(struct rte_bbdev *dev, struct acc_device *d,
>   	int i = 0;
>   	uint32_t q_sw_ring_size = ACC_MAX_QUEUE_DEPTH * get_desc_len();
>   	uint32_t dev_sw_ring_size = q_sw_ring_size * num_queues;
> -	/* Free first in case this is a reconfiguration */
> +	uint32_t alignment = q_sw_ring_size * rte_align32pow2(num_queues);
> +	/* Free first in case this is dev_sw_ring_size, q_sw_ring_size, socket); reconfiguration */

There is a copy/paste mistake in the comment?

>   	rte_free(d->sw_rings_base);
>   
>   	/* Find an aligned block of memory to store sw rings */
>   	while (i < ACC_SW_RING_MEM_ALLOC_ATTEMPTS) {
>   		/*
>   		 * sw_ring allocated memory is guaranteed to be aligned to
> -		 * q_sw_ring_size at the condition that the requested size is
> +		 * alignment at the condition that the requested size is

This comment is really unclear "aligned to alignment"

>   		 * less than the page size
>   		 */
>   		sw_rings_base = rte_zmalloc_socket(
>   				dev->device->driver->name,
> -				dev_sw_ring_size, q_sw_ring_size, socket);
> +				dev_sw_ring_size, alignment, socket);
>   
>   		if (sw_rings_base == NULL) {
>   			rte_acc_log(ERR,



More information about the dev mailing list