[PATCH] event/dlb2: fix event weight handling in SSE code path

Bruce Richardson bruce.richardson at intel.com
Tue Jan 21 18:11:35 CET 2025


Commit 6e2e98d6775b ("event/dlb2: support independent enqueue") updated
the avx512 code path with support for the event, or "qe" weights.
However, the SSE code path looks to have been missed in the update.
Update the SSE "build_hcws" function to match the changes made to the
AVX-512 version.

Bugzilla ID: 1616
Fixes: 6e2e98d6775b ("event/dlb2: support independent enqueue")
Cc: stable at dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
 drivers/event/dlb2/dlb2_sse.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/event/dlb2/dlb2_sse.c b/drivers/event/dlb2/dlb2_sse.c
index 248d7519d5..f2e1f9fb7e 100644
--- a/drivers/event/dlb2/dlb2_sse.c
+++ b/drivers/event/dlb2/dlb2_sse.c
@@ -190,11 +190,11 @@ dlb2_event_build_hcws(struct dlb2_port *qm_port,
 		qe[3].data = ev[3].u64;
 
 		/* will only be set for DLB 2.5 + */
-		if (qm_port->cq_weight) {
-			qe[0].weight = ev[0].impl_opaque & 3;
-			qe[1].weight = ev[1].impl_opaque & 3;
-			qe[2].weight = ev[2].impl_opaque & 3;
-			qe[3].weight = ev[3].impl_opaque & 3;
+		if (qm_port->dlb2->enable_cq_weight) {
+			qe[0].weight = RTE_PMD_DLB2_GET_QE_WEIGHT(&ev[0]);
+			qe[1].weight = RTE_PMD_DLB2_GET_QE_WEIGHT(&ev[1]);
+			qe[2].weight = RTE_PMD_DLB2_GET_QE_WEIGHT(&ev[2]);
+			qe[3].weight = RTE_PMD_DLB2_GET_QE_WEIGHT(&ev[3]);
 		}
 
 		break;
@@ -205,6 +205,7 @@ dlb2_event_build_hcws(struct dlb2_port *qm_port,
 			qe[i].cmd_byte =
 				cmd_byte_map[qm_port->is_directed][ev[i].op];
 			qe[i].sched_type = sched_type[i];
+			qe[i].weight = RTE_PMD_DLB2_GET_QE_WEIGHT(&ev[i]);
 			qe[i].data = ev[i].u64;
 			qe[i].qid = queue_id[i];
 			qe[i].priority = EV_TO_DLB2_PRIO(ev[i].priority);
-- 
2.43.0



More information about the dev mailing list