summaryrefslogtreecommitdiff
path: root/lib/librte_eventdev
diff options
context:
space:
mode:
authorNikhil Rao <nikhil.rao@intel.com>2018-06-03 17:11:08 +0530
committerThomas Monjalon <thomas@monjalon.net>2018-06-19 00:07:51 +0200
commit524dc20023b2e00cd9a021ae60cb4b91f51786e6 (patch)
tree94567354b50af49d15488ebd723b43c0b4b5125e /lib/librte_eventdev
parent2a9c83ae3b2ec6a202211101735a21dbf2c766df (diff)
eventdev: fix missing update to Rx adaper WRR position
After dequeuing Rx packets and enqueueing them to the temporary buffer towards eventdev, the packet Rx loop exits if the temporary buffer is full but the current WRR position is not saved. Save away the current value of the WRR position, so packets are dequeued from the correct Rx queue in the next invocation. Fixes: 9c38b704d280 ("eventdev: add eth Rx adapter implementation") Cc: stable@dpdk.org Suggested-by: Gage Eads <gage.eads@intel.com> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Diffstat (limited to 'lib/librte_eventdev')
-rw-r--r--lib/librte_eventdev/rte_event_eth_rx_adapter.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
index 273df1e9b3..c2b5d4d83a 100644
--- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
+++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
@@ -517,8 +517,10 @@ eth_rx_poll(struct rte_event_eth_rx_adapter *rx_adapter)
*/
if (buf->count >= BATCH_SIZE)
flush_event_buffer(rx_adapter);
- if (BATCH_SIZE > (ETH_EVENT_BUFFER_SIZE - buf->count))
+ if (BATCH_SIZE > (ETH_EVENT_BUFFER_SIZE - buf->count)) {
+ rx_adapter->wrr_pos = wrr_pos;
break;
+ }
stats->rx_poll_count++;
n = rte_eth_rx_burst(d, qid, mbufs, BATCH_SIZE);