[v3] eventdev: fix Rx adapter event flush logic
Checks
Commit Message
The Rx adapter flushes events only if it has BATCH_SIZE
events buffered where BATCH_SIZE is set to 32, e.g., if a
single packet is sent, it is never passed to
eventdev. Fix this issue by adding an event buffer flush
either when a Rx queue is found to be empty or the adapter service
function has processed the max number of packets for an invocation.
Bugzilla ID: 277
Fixes: 6b83f5935543 ("eventdev: add event buffer flush in Rx adapter")
Reported-by: Matias Elo <matias.elo@nokia.com>
CC: stable@dpdk.org
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
---
lib/librte_eventdev/rte_event_eth_rx_adapter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
v2:
* add Bugzilla ID
v3:
* add stable CC
* replace boolean check with check for > 0
Comments
Any review please?
10/05/2019 10:08, Nikhil Rao:
> The Rx adapter flushes events only if it has BATCH_SIZE
> events buffered where BATCH_SIZE is set to 32, e.g., if a
> single packet is sent, it is never passed to
> eventdev. Fix this issue by adding an event buffer flush
> either when a Rx queue is found to be empty or the adapter service
> function has processed the max number of packets for an invocation.
>
> Bugzilla ID: 277
>
> Fixes: 6b83f5935543 ("eventdev: add event buffer flush in Rx adapter")
>
> Reported-by: Matias Elo <matias.elo@nokia.com>
>
> CC: stable@dpdk.org
>
> Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
> ---
> lib/librte_eventdev/rte_event_eth_rx_adapter.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> v2:
> * add Bugzilla ID
>
> v3:
> * add stable CC
> * replace boolean check with check for > 0
>
> diff --git a/lib/librte_eventdev/rte_event_eth_rx_adapter.c b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> index 8b6e69d..b60674b 100644
> --- a/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> +++ b/lib/librte_eventdev/rte_event_eth_rx_adapter.c
> @@ -872,7 +872,7 @@ static uint16_t rxa_gcd_u16(uint16_t a, uint16_t b)
> break;
> }
>
> - if (buf->count >= BATCH_SIZE)
> + if (buf->count > 0)
> rxa_flush_event_buffer(rx_adapter);
>
> return nb_rx;
>
On 2019-05-10 15:30, Thomas Monjalon wrote:
> Any review please?
>
Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
Mattias Elo reported "Thanks, I’ve tested this patch and can confirm
that it fixes the problem." for the (nearly identical) v2 of this patch.
> On 2019-05-10 15:30, Thomas Monjalon wrote:
>> Any review please?
>
> Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
>
> Mattias Elo reported "Thanks, I’ve tested this patch and can confirm that it fixes the problem." for the (nearly identical) v2 of this patch.
I’ve now tested also the v3:
Tested-by: Matias Elo <matias.elo@nokia.com>
13/05/2019 06:20, Elo, Matias (Nokia - FI/Espoo):
>
> > On 2019-05-10 15:30, Thomas Monjalon wrote:
> >> Any review please?
> >
> > Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
> >
> > Mattias Elo reported "Thanks, I’ve tested this patch and can confirm that it fixes the problem." for the (nearly identical) v2 of this patch.
>
> I’ve now tested also the v3:
>
> Tested-by: Matias Elo <matias.elo@nokia.com>
Applied, thanks
@@ -872,7 +872,7 @@ static uint16_t rxa_gcd_u16(uint16_t a, uint16_t b)
break;
}
- if (buf->count >= BATCH_SIZE)
+ if (buf->count > 0)
rxa_flush_event_buffer(rx_adapter);
return nb_rx;