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: [email protected]
Signed-off-by: Bruce Richardson <[email protected]>
---
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