[dpdk-stable] [PATCH] eventdev: fix missing update to Rx adaper WRR	position
    Nikhil Rao 
    nikhil.rao at intel.com
       
    Sun Jun  3 13:41:08 CEST 2018
    
    
  
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")
Suggested-by: Gage Eads <gage.eads at intel.com>
Signed-off-by: Nikhil Rao <nikhil.rao at intel.com>
Cc: stable at dpdk.org
---
 lib/librte_eventdev/rte_event_eth_rx_adapter.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
index 6f70509..53a3788 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 @@ static uint16_t gcd_u16(uint16_t a, uint16_t b)
 		 */
 		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);
-- 
1.8.3.1
    
    
More information about the stable
mailing list