Hi Maxime, > -----Original Message----- > From: Maxime Coquelin <maxime.coque...@redhat.com> > Sent: Tuesday, October 8, 2024 12:52 AM > To: Vargas, Hernan <hernan.var...@intel.com>; dev@dpdk.org; > gak...@marvell.com; t...@redhat.com > Cc: Chautru, Nicolas <nicolas.chau...@intel.com>; Zhang, Qi Z > <qi.z.zh...@intel.com> > Subject: Re: [PATCH v2 05/10] baseband/acc: enhance SW ring alignment > > > > 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.var...@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?
Thanks, yes. We missed it in the rebase somehow. > > > 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" Unclear indeed when reading it again. Should be "aligned to the variable `alignment` ..." Ie the change is purely to use now the new variable `alignment` instead of `queue_ring_size` Thanks > > > * 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,