Hi Jerin, <snip>
> +force_inline uint16_t __hot > +ssows_deq_timeout(void *port, struct rte_event *ev, uint64_t > +timeout_ticks) { > + struct ssows *ws = port; > + uint64_t iter; > + uint16_t ret = 1; > + > + ssows_swtag_wait(ws); > + if (ws->swtag_req) { > + ws->swtag_req = 0; > + } else { > + ret = ssows_get_work(ws, ev); > + for (iter = 1; iter < timeout_ticks && (ret == 0); iter++) > + ret = ssows_get_work(ws, ev); > + } > + return ret; > +} If I understand this correctly, each ssows_get_work() call will wait up to N ns, where N is the dequeue_timeout_ns value supplied to ssovf_mbox_getwork_tmo_set() in ssovf_configure(). So in ssows_deq_timeout, the wait time is (worst case) timeout_ticks * (N * (ns to tick conversion factor)) ticks, which depends on the user-supplied N at eventdev configuration time. Perhaps in ssovf_configure, if the RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT flag is used, the getwork timeout should be set to 1 tick? Thanks, Gage