[dpdk-dev] [PATCH] eventdev: fix missing update to Rx adaper WRR position

Jerin Jacob jerin.jacob at caviumnetworks.com
Mon Jun 11 14:15:44 CEST 2018


-----Original Message-----
> Date: Sun, 3 Jun 2018 17:11:08 +0530
> From: Nikhil Rao <nikhil.rao at intel.com>
> To: jerin.jacob at caviumnetworks.com
> CC: dev at dpdk.org, Nikhil Rao <nikhil.rao at intel.com>, stable at dpdk.org
> Subject: [PATCH] eventdev: fix missing update to Rx adaper WRR position
> X-Mailer: git-send-email 1.8.3.1
> 
> 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


Applied to dpdk-next-eventdev/master. Thanks.


> ---
>  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 dev mailing list