[dpdk-dev] [PATCH 1/6] bus/dpaa: added event dequeue and consumption support

Jerin Jacob jerin.jacob at caviumnetworks.com
Sat Dec 16 13:34:01 CET 2017


-----Original Message-----
> Date: Fri, 15 Dec 2017 18:38:23 +0530
> From: Sunil Kumar Kori <sunil.kori at nxp.com>
> To: jerin.jacob at caviumnetworks.com
> CC: dev at dpdk.org, hemant.agrawal at nxp.com
> Subject: [PATCH 1/6] bus/dpaa: added event dequeue and consumption support
> X-Mailer: git-send-email 2.9.3
> 
> To receive events from given event port, corresponding
> function needs to be added which receives events
> from portal. Also added function to consume received
> events based on entry index.
> 
> Signed-off-by: Sunil Kumar Kori <sunil.kori at nxp.com>
> ---
>  drivers/bus/dpaa/base/qbman/qman.c        | 90 +++++++++++++++++++++++++++++--
>  drivers/bus/dpaa/dpaa_bus.c               |  1 +
>  drivers/bus/dpaa/include/fsl_qman.h       | 26 +++++++--
>  drivers/bus/dpaa/rte_bus_dpaa_version.map |  5 ++
>  drivers/bus/dpaa/rte_dpaa_bus.h           | 14 +++++
>  drivers/net/dpaa/dpaa_rxtx.c              |  1 +
>  6 files changed, 128 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c
> index 42d509d..f39e618 100644
> --- a/drivers/bus/dpaa/base/qbman/qman.c
> +++ b/drivers/bus/dpaa/base/qbman/qman.c
> @@ -41,6 +41,7 @@
>  #include "qman.h"
>  #include <rte_branch_prediction.h>
>  #include <rte_dpaa_bus.h>
> +#include <rte_eventdev.h>
>  
>  /* Compilation constants */
>  #define DQRR_MAXFILL	15
> @@ -1144,6 +1145,74 @@ unsigned int qman_portal_poll_rx(unsigned int poll_limit,
>  	return limit;
>  }
>  
> +u32 qman_portal_dequeue(struct rte_event ev[], unsigned int poll_limit,
> +			void **bufs)
> +{
> +	const struct qm_dqrr_entry *dq;
> +	struct qman_fq *fq;
> +	enum qman_cb_dqrr_result res;
> +	unsigned int limit = 0;
> +	struct qman_portal *p = get_affine_portal();
> +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__

Use DPDK specific primitive(RTE_BYTE_ORDER)

> +	struct qm_dqrr_entry *shadow;
> +#endif
> +	unsigned int rx_number = 0;
> +
> +	do {


More information about the dev mailing list