[v1,3/5] baseband/acc: move memory barrier
Checks
Commit Message
Moving memory barrier so that dequeue thread can be in sync with enqueue
thread.
Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
---
drivers/baseband/acc/acc_common.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
On 4/22/24 17:40, Hernan Vargas wrote:
> Moving memory barrier so that dequeue thread can be in sync with enqueue
> thread.
>
It is a fix, so please pass Fixes tag and Cc stable ML.
> Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
> ---
> drivers/baseband/acc/acc_common.h | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
> index fddeb0737b8b..e249f37e38fe 100644
> --- a/drivers/baseband/acc/acc_common.h
> +++ b/drivers/baseband/acc/acc_common.h
> @@ -1112,6 +1112,9 @@ acc_dma_enqueue(struct acc_queue *q, uint16_t n,
> req_elem_addr,
> (void *)q->mmio_reg_enqueue);
>
> + q->aq_enqueued++;
> + q->sw_ring_head += enq_batch_size;
> +
> rte_wmb();
>
> /* Start time measurement for enqueue function offload. */
> @@ -1122,8 +1125,6 @@ acc_dma_enqueue(struct acc_queue *q, uint16_t n,
>
> queue_stats->acc_offload_cycles += rte_rdtsc_precise() - start_time;
>
> - q->aq_enqueued++;
> - q->sw_ring_head += enq_batch_size;
> n -= enq_batch_size;
>
> } while (n);
@@ -1112,6 +1112,9 @@ acc_dma_enqueue(struct acc_queue *q, uint16_t n,
req_elem_addr,
(void *)q->mmio_reg_enqueue);
+ q->aq_enqueued++;
+ q->sw_ring_head += enq_batch_size;
+
rte_wmb();
/* Start time measurement for enqueue function offload. */
@@ -1122,8 +1125,6 @@ acc_dma_enqueue(struct acc_queue *q, uint16_t n,
queue_stats->acc_offload_cycles += rte_rdtsc_precise() - start_time;
- q->aq_enqueued++;
- q->sw_ring_head += enq_batch_size;
n -= enq_batch_size;
} while (n);