[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