[RFC,06/15] eventdev: use new API for inline functions

Message ID 20210823194020.1229-6-pbhagavatula@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: Jerin Jacob
Headers
Series [RFC,01/15] eventdev: make driver interface as internal |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Pavan Nikhilesh Bhagavatula Aug. 23, 2021, 7:40 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Use new driver interface for the fastpath enqueue/dequeue inline
functions.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 lib/eventdev/rte_event_crypto_adapter.h | 13 +-----
 lib/eventdev/rte_event_eth_tx_adapter.h | 22 ++-------
 lib/eventdev/rte_eventdev.h             | 61 +++++++------------------
 3 files changed, 22 insertions(+), 74 deletions(-)
  

Comments

Jayatheerthan, Jay Aug. 30, 2021, 2:41 p.m. UTC | #1
> -----Original Message-----
> From: pbhagavatula@marvell.com <pbhagavatula@marvell.com>
> Sent: Tuesday, August 24, 2021 1:10 AM
> To: jerinj@marvell.com; Gujjar, Abhinandan S <abhinandan.gujjar@intel.com>; Jayatheerthan, Jay <jay.jayatheerthan@intel.com>
> Cc: Ananyev, Konstantin <konstantin.ananyev@intel.com>; dev@dpdk.org; Pavan Nikhilesh <pbhagavatula@marvell.com>
> Subject: [dpdk-dev] [RFC 06/15] eventdev: use new API for inline functions
> 
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> 
> Use new driver interface for the fastpath enqueue/dequeue inline
> functions.
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> ---
>  lib/eventdev/rte_event_crypto_adapter.h | 13 +-----
>  lib/eventdev/rte_event_eth_tx_adapter.h | 22 ++-------
>  lib/eventdev/rte_eventdev.h             | 61 +++++++------------------
>  3 files changed, 22 insertions(+), 74 deletions(-)
> 
> diff --git a/lib/eventdev/rte_event_crypto_adapter.h b/lib/eventdev/rte_event_crypto_adapter.h
> index 431d05b6ed..a91585a369 100644
> --- a/lib/eventdev/rte_event_crypto_adapter.h
> +++ b/lib/eventdev/rte_event_crypto_adapter.h
> @@ -568,20 +568,11 @@ rte_event_crypto_adapter_enqueue(uint8_t dev_id,
>  				struct rte_event ev[],
>  				uint16_t nb_events)
>  {
> -	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
> -	RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL);
> -
> -	if (port_id >= dev->data->nb_ports) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -#endif
>  	rte_eventdev_trace_crypto_adapter_enqueue(dev_id, port_id, ev,
>  		nb_events);
> 
> -	return dev->ca_enqueue(dev->data->ports[port_id], ev, nb_events);
> +	return rte_eventdev_api[dev_id].ca_enqueue(dev_id, port_id, ev,
> +						   nb_events);
>  }
> 
>  #ifdef __cplusplus
> diff --git a/lib/eventdev/rte_event_eth_tx_adapter.h b/lib/eventdev/rte_event_eth_tx_adapter.h
> index 8c59547165..e3e78a5616 100644
> --- a/lib/eventdev/rte_event_eth_tx_adapter.h
> +++ b/lib/eventdev/rte_event_eth_tx_adapter.h
> @@ -355,28 +355,14 @@ rte_event_eth_tx_adapter_enqueue(uint8_t dev_id,
>  				uint16_t nb_events,
>  				const uint8_t flags)
>  {
> -	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
> -	if (dev_id >= RTE_EVENT_MAX_DEVS ||
> -		!rte_eventdevs[dev_id].attached) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -
> -	if (port_id >= dev->data->nb_ports) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -#endif
>  	rte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev,
>  		nb_events, flags);
>  	if (flags)
> -		return dev->txa_enqueue_same_dest(dev->data->ports[port_id],
> -						  ev, nb_events);
> +		return rte_eventdev_api[dev_id].txa_enqueue_same_dest(
> +			dev_id, port_id, ev, nb_events);
>  	else
> -		return dev->txa_enqueue(dev->data->ports[port_id], ev,
> -					nb_events);
> +		return rte_eventdev_api[dev_id].txa_enqueue(dev_id, port_id, ev,
> +							    nb_events);
>  }
> 

Looks good to me.
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>

>  /**
> diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
> index 1b11d4576d..7378597846 100644
> --- a/lib/eventdev/rte_eventdev.h
> +++ b/lib/eventdev/rte_eventdev.h
> @@ -1745,30 +1745,17 @@ rte_event_vector_pool_create(const char *name, unsigned int n,
>  static __rte_always_inline uint16_t
>  __rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id,
>  			  const struct rte_event ev[], uint16_t nb_events,
> -			  const event_enqueue_burst_t fn)
> +			  const rte_event_enqueue_burst_t fn)
>  {
> -	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
> -	if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -
> -	if (port_id >= dev->data->nb_ports) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -#endif
>  	rte_eventdev_trace_enq_burst(dev_id, port_id, ev, nb_events, fn);
>  	/*
>  	 * Allow zero cost non burst mode routine invocation if application
>  	 * requests nb_events as const one
>  	 */
>  	if (nb_events == 1)
> -		return (*dev->enqueue)(dev->data->ports[port_id], ev);
> +		return rte_eventdev_api[dev_id].enqueue(dev_id, port_id, ev);
>  	else
> -		return fn(dev->data->ports[port_id], ev, nb_events);
> +		return fn(dev_id, port_id, ev, nb_events);
>  }
> 
>  /**
> @@ -1818,10 +1805,9 @@ static inline uint16_t
>  rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id,
>  			const struct rte_event ev[], uint16_t nb_events)
>  {
> -	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -	return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events,
> -					 dev->enqueue_burst);
> +	return __rte_event_enqueue_burst(
> +		dev_id, port_id, ev, nb_events,
> +		rte_eventdev_api[dev_id].enqueue_burst);
>  }
> 
>  /**
> @@ -1869,10 +1855,9 @@ static inline uint16_t
>  rte_event_enqueue_new_burst(uint8_t dev_id, uint8_t port_id,
>  			    const struct rte_event ev[], uint16_t nb_events)
>  {
> -	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -	return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events,
> -					 dev->enqueue_new_burst);
> +	return __rte_event_enqueue_burst(
> +		dev_id, port_id, ev, nb_events,
> +		rte_eventdev_api[dev_id].enqueue_new_burst);
>  }
> 
>  /**
> @@ -1920,10 +1905,9 @@ static inline uint16_t
>  rte_event_enqueue_forward_burst(uint8_t dev_id, uint8_t port_id,
>  				const struct rte_event ev[], uint16_t nb_events)
>  {
> -	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -	return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events,
> -					 dev->enqueue_forward_burst);
> +	return __rte_event_enqueue_burst(
> +		dev_id, port_id, ev, nb_events,
> +		rte_eventdev_api[dev_id].enqueue_forward_burst);
>  }
> 
>  /**
> @@ -1996,30 +1980,17 @@ static inline uint16_t
>  rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[],
>  			uint16_t nb_events, uint64_t timeout_ticks)
>  {
> -	struct rte_eventdev *dev = &rte_eventdevs[dev_id];
> -
> -#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
> -	if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -
> -	if (port_id >= dev->data->nb_ports) {
> -		rte_errno = EINVAL;
> -		return 0;
> -	}
> -#endif
>  	rte_eventdev_trace_deq_burst(dev_id, port_id, ev, nb_events);
>  	/*
>  	 * Allow zero cost non burst mode routine invocation if application
>  	 * requests nb_events as const one
>  	 */
>  	if (nb_events == 1)
> -		return (*dev->dequeue)(dev->data->ports[port_id], ev,
> -				       timeout_ticks);
> +		return rte_eventdev_api[dev_id].dequeue(dev_id, port_id, ev,
> +							timeout_ticks);
>  	else
> -		return (*dev->dequeue_burst)(dev->data->ports[port_id], ev,
> -					     nb_events, timeout_ticks);
> +		return rte_eventdev_api[dev_id].dequeue_burst(
> +			dev_id, port_id, ev, nb_events, timeout_ticks);
>  }
> 
>  #ifdef __cplusplus
> --
> 2.17.1
  
David Marchand Aug. 30, 2021, 2:46 p.m. UTC | #2
Hello Pavan,

On Mon, Aug 23, 2021 at 9:41 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Use new driver interface for the fastpath enqueue/dequeue inline
> functions.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
> ---
>  lib/eventdev/rte_event_crypto_adapter.h | 13 +-----
>  lib/eventdev/rte_event_eth_tx_adapter.h | 22 ++-------
>  lib/eventdev/rte_eventdev.h             | 61 +++++++------------------
>  3 files changed, 22 insertions(+), 74 deletions(-)

I sent this series in a branch of mine, and ran it per commit in GHA.
It caught a UT failure on this patch:
https://github.com/david-marchand/dpdk/runs/3408921022?check_suite_focus=true


--- stdout ---
RTE>>event_eth_tx_adapter_autotest
 + ------------------------------------------------------- +
 + Test Suite : tx event eth adapter test suite
Port 0 MAC: 00 00 00 00 00 00
Port 1 MAC: 00 00 00 00 00 00
Failed to find a valid event device, testing with event_sw0 device
 + ------------------------------------------------------- +
 + TestCase [ 0] : tx_adapter_create_free succeeded
 + TestCase [ 1] : tx_adapter_queue_add_del succeeded
 + TestCase [ 2] : tx_adapter_start_stop succeeded
 + TestCase [ 3] : tx_adapter_service failed
 + TestCase [ 4] : tx_adapter_dynamic_device failed
 + ------------------------------------------------------- +
 + Test Suite Summary : tx event eth adapter test suite
 + ------------------------------------------------------- +
 + Tests Total :        5
 + Tests Skipped :      0
 + Tests Executed :     5
 + Tests Unsupported:   0
 + Tests Passed :       3
 + Tests Failed :       2
 + ------------------------------------------------------- +
Test Failed


Can you double check?
Thanks.
  
Pavan Nikhilesh Bhagavatula Oct. 2, 2021, 8:32 p.m. UTC | #3
>Hello Pavan,
>
>On Mon, Aug 23, 2021 at 9:41 PM <pbhagavatula@marvell.com> wrote:
>>
>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>
>> Use new driver interface for the fastpath enqueue/dequeue inline
>> functions.
>>
>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>> ---
>>  lib/eventdev/rte_event_crypto_adapter.h | 13 +-----
>>  lib/eventdev/rte_event_eth_tx_adapter.h | 22 ++-------
>>  lib/eventdev/rte_eventdev.h             | 61 +++++++------------------
>>  3 files changed, 22 insertions(+), 74 deletions(-)
>
>I sent this series in a branch of mine, and ran it per commit in GHA.
>It caught a UT failure on this patch:
>https://urldefense.proofpoint.com/v2/url?u=https-
>3A__github.com_david-2Dmarchand_dpdk_runs_3408921022-3Fcheck-
>5Fsuite-5Ffocus-
>3Dtrue&d=DwIBaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=E3SgYMjtKCMVs
>B-fmvgGV3o-g_fjLhk5Pupi9ijohpc&m=tO66InX69hLTAjHqOU-
>zyUJUFA4AbnwTf4hFh1Wx2-c&s=awIyoR8T6crX-
>sB4E1_NfLyzBt5zGfhSmfX6CIyw1x0&e=
>
>
>--- stdout ---
>RTE>>event_eth_tx_adapter_autotest
> + ------------------------------------------------------- +
> + Test Suite : tx event eth adapter test suite
>Port 0 MAC: 00 00 00 00 00 00
>Port 1 MAC: 00 00 00 00 00 00
>Failed to find a valid event device, testing with event_sw0 device
> + ------------------------------------------------------- +
> + TestCase [ 0] : tx_adapter_create_free succeeded
> + TestCase [ 1] : tx_adapter_queue_add_del succeeded
> + TestCase [ 2] : tx_adapter_start_stop succeeded
> + TestCase [ 3] : tx_adapter_service failed
> + TestCase [ 4] : tx_adapter_dynamic_device failed
> + ------------------------------------------------------- +
> + Test Suite Summary : tx event eth adapter test suite
> + ------------------------------------------------------- +
> + Tests Total :        5
> + Tests Skipped :      0
> + Tests Executed :     5
> + Tests Unsupported:   0
> + Tests Passed :       3
> + Tests Failed :       2
> + ------------------------------------------------------- +
>Test Failed
>

I just check with v2 (in progress) of my series and test passes, hopefully it fixes something overlooked in v1

EAL: Detected CPU lcores: 24
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: No available 16777216 kB hugepages reported
EAL: No available 2048 kB hugepages reported
EAL: VFIO support initialized
TELEMETRY: No legacy callbacks, legacy socket not created
APP: HPET is not enabled, using TSC as default timer
RTE>>event_eth_tx_adapter_autotest
 + ------------------------------------------------------- +
 + Test Suite : tx event eth adapter test suite
Port 0 MAC: 00 00 00 00 00 00
Port 1 MAC: 00 00 00 00 00 00
Failed to find a valid event device, testing with event_sw0 device
 + ------------------------------------------------------- +
 + TestCase [ 0] : tx_adapter_create_free succeeded
Invalid port_id=2
EVENTDEV: txa_service_adapter_free() line 743: 1 Tx queues not deleted
 + TestCase [ 1] : tx_adapter_queue_add_del succeeded
 + TestCase [ 2] : tx_adapter_start_stop succeeded
 + TestCase [ 3] : tx_adapter_service succeeded
 + TestCase [ 4] : tx_adapter_dynamic_device succeeded
 + ------------------------------------------------------- +
 + Test Suite Summary : tx event eth adapter test suite
 + ------------------------------------------------------- +
 + Tests Total :        5
 + Tests Skipped :      0
 + Tests Executed :     5
 + Tests Unsupported:   0
 + Tests Passed :       5
 + Tests Failed :       0
 + ------------------------------------------------------- +
Test OK
RTE>>

>
>Can you double check?
>Thanks.
>
>--
>David Marchand
  

Patch

diff --git a/lib/eventdev/rte_event_crypto_adapter.h b/lib/eventdev/rte_event_crypto_adapter.h
index 431d05b6ed..a91585a369 100644
--- a/lib/eventdev/rte_event_crypto_adapter.h
+++ b/lib/eventdev/rte_event_crypto_adapter.h
@@ -568,20 +568,11 @@  rte_event_crypto_adapter_enqueue(uint8_t dev_id,
 				struct rte_event ev[],
 				uint16_t nb_events)
 {
-	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
-	RTE_EVENTDEV_VALID_DEVID_OR_ERR_RET(dev_id, -EINVAL);
-
-	if (port_id >= dev->data->nb_ports) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-#endif
 	rte_eventdev_trace_crypto_adapter_enqueue(dev_id, port_id, ev,
 		nb_events);
 
-	return dev->ca_enqueue(dev->data->ports[port_id], ev, nb_events);
+	return rte_eventdev_api[dev_id].ca_enqueue(dev_id, port_id, ev,
+						   nb_events);
 }
 
 #ifdef __cplusplus
diff --git a/lib/eventdev/rte_event_eth_tx_adapter.h b/lib/eventdev/rte_event_eth_tx_adapter.h
index 8c59547165..e3e78a5616 100644
--- a/lib/eventdev/rte_event_eth_tx_adapter.h
+++ b/lib/eventdev/rte_event_eth_tx_adapter.h
@@ -355,28 +355,14 @@  rte_event_eth_tx_adapter_enqueue(uint8_t dev_id,
 				uint16_t nb_events,
 				const uint8_t flags)
 {
-	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
-	if (dev_id >= RTE_EVENT_MAX_DEVS ||
-		!rte_eventdevs[dev_id].attached) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-
-	if (port_id >= dev->data->nb_ports) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-#endif
 	rte_eventdev_trace_eth_tx_adapter_enqueue(dev_id, port_id, ev,
 		nb_events, flags);
 	if (flags)
-		return dev->txa_enqueue_same_dest(dev->data->ports[port_id],
-						  ev, nb_events);
+		return rte_eventdev_api[dev_id].txa_enqueue_same_dest(
+			dev_id, port_id, ev, nb_events);
 	else
-		return dev->txa_enqueue(dev->data->ports[port_id], ev,
-					nb_events);
+		return rte_eventdev_api[dev_id].txa_enqueue(dev_id, port_id, ev,
+							    nb_events);
 }
 
 /**
diff --git a/lib/eventdev/rte_eventdev.h b/lib/eventdev/rte_eventdev.h
index 1b11d4576d..7378597846 100644
--- a/lib/eventdev/rte_eventdev.h
+++ b/lib/eventdev/rte_eventdev.h
@@ -1745,30 +1745,17 @@  rte_event_vector_pool_create(const char *name, unsigned int n,
 static __rte_always_inline uint16_t
 __rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id,
 			  const struct rte_event ev[], uint16_t nb_events,
-			  const event_enqueue_burst_t fn)
+			  const rte_event_enqueue_burst_t fn)
 {
-	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
-	if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-
-	if (port_id >= dev->data->nb_ports) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-#endif
 	rte_eventdev_trace_enq_burst(dev_id, port_id, ev, nb_events, fn);
 	/*
 	 * Allow zero cost non burst mode routine invocation if application
 	 * requests nb_events as const one
 	 */
 	if (nb_events == 1)
-		return (*dev->enqueue)(dev->data->ports[port_id], ev);
+		return rte_eventdev_api[dev_id].enqueue(dev_id, port_id, ev);
 	else
-		return fn(dev->data->ports[port_id], ev, nb_events);
+		return fn(dev_id, port_id, ev, nb_events);
 }
 
 /**
@@ -1818,10 +1805,9 @@  static inline uint16_t
 rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id,
 			const struct rte_event ev[], uint16_t nb_events)
 {
-	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-	return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events,
-					 dev->enqueue_burst);
+	return __rte_event_enqueue_burst(
+		dev_id, port_id, ev, nb_events,
+		rte_eventdev_api[dev_id].enqueue_burst);
 }
 
 /**
@@ -1869,10 +1855,9 @@  static inline uint16_t
 rte_event_enqueue_new_burst(uint8_t dev_id, uint8_t port_id,
 			    const struct rte_event ev[], uint16_t nb_events)
 {
-	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-	return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events,
-					 dev->enqueue_new_burst);
+	return __rte_event_enqueue_burst(
+		dev_id, port_id, ev, nb_events,
+		rte_eventdev_api[dev_id].enqueue_new_burst);
 }
 
 /**
@@ -1920,10 +1905,9 @@  static inline uint16_t
 rte_event_enqueue_forward_burst(uint8_t dev_id, uint8_t port_id,
 				const struct rte_event ev[], uint16_t nb_events)
 {
-	const struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-	return __rte_event_enqueue_burst(dev_id, port_id, ev, nb_events,
-					 dev->enqueue_forward_burst);
+	return __rte_event_enqueue_burst(
+		dev_id, port_id, ev, nb_events,
+		rte_eventdev_api[dev_id].enqueue_forward_burst);
 }
 
 /**
@@ -1996,30 +1980,17 @@  static inline uint16_t
 rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[],
 			uint16_t nb_events, uint64_t timeout_ticks)
 {
-	struct rte_eventdev *dev = &rte_eventdevs[dev_id];
-
-#ifdef RTE_LIBRTE_EVENTDEV_DEBUG
-	if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-
-	if (port_id >= dev->data->nb_ports) {
-		rte_errno = EINVAL;
-		return 0;
-	}
-#endif
 	rte_eventdev_trace_deq_burst(dev_id, port_id, ev, nb_events);
 	/*
 	 * Allow zero cost non burst mode routine invocation if application
 	 * requests nb_events as const one
 	 */
 	if (nb_events == 1)
-		return (*dev->dequeue)(dev->data->ports[port_id], ev,
-				       timeout_ticks);
+		return rte_eventdev_api[dev_id].dequeue(dev_id, port_id, ev,
+							timeout_ticks);
 	else
-		return (*dev->dequeue_burst)(dev->data->ports[port_id], ev,
-					     nb_events, timeout_ticks);
+		return rte_eventdev_api[dev_id].dequeue_burst(
+			dev_id, port_id, ev, nb_events, timeout_ticks);
 }
 
 #ifdef __cplusplus