From: Jerin Jacob Date: Fri, 9 Jun 2017 12:06:50 +0000 (+0530) Subject: event/octeontx: improve dequeue performance X-Git-Tag: spdx-start~2967 X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=520a12b58dc82555c29ed4ce6ebf05e0369d8b4d event/octeontx: improve dequeue performance switch tag wait is a costly operation as it may translate to IOB read if core swtag cache is not updated. Do tag switch wait only when there is a tag request on the same hardware work slot. Signed-off-by: Jerin Jacob Acked-by: Gage Eads --- diff --git a/drivers/event/octeontx/ssovf_worker.c b/drivers/event/octeontx/ssovf_worker.c index fcb5f316cc..4839f06314 100644 --- a/drivers/event/octeontx/ssovf_worker.c +++ b/drivers/event/octeontx/ssovf_worker.c @@ -126,9 +126,9 @@ ssows_deq(void *port, struct rte_event *ev, uint64_t timeout_ticks) RTE_SET_USED(timeout_ticks); - ssows_swtag_wait(ws); if (ws->swtag_req) { ws->swtag_req = 0; + ssows_swtag_wait(ws); return 1; } else { return ssows_get_work(ws, ev); @@ -142,9 +142,9 @@ ssows_deq_timeout(void *port, struct rte_event *ev, uint64_t timeout_ticks) uint64_t iter; uint16_t ret = 1; - ssows_swtag_wait(ws); if (ws->swtag_req) { ws->swtag_req = 0; + ssows_swtag_wait(ws); } else { ret = ssows_get_work(ws, ev); for (iter = 1; iter < timeout_ticks && (ret == 0); iter++)