diff options
author | Nikhil Rao <nikhil.rao@intel.com> | 2018-06-03 17:11:08 +0530 |
---|---|---|
committer | Thomas Monjalon <thomas@monjalon.net> | 2018-06-19 00:07:51 +0200 |
commit | 524dc20023b2e00cd9a021ae60cb4b91f51786e6 (patch) | |
tree | 94567354b50af49d15488ebd723b43c0b4b5125e /lib/librte_eventdev | |
parent | 2a9c83ae3b2ec6a202211101735a21dbf2c766df (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.c | 4 |
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); |