[dpdk-dev] [PATCH 05/37] bus/fslmc: rework portal allocation to a per thread basis
Ferruh Yigit
ferruh.yigit at intel.com
Wed Jul 1 09:23:40 CEST 2020
On 5/27/2020 2:22 PM, Hemant Agrawal wrote:
> From: Nipun Gupta <nipun.gupta at nxp.com>
>
> The patch reworks the portal allocation which was previously
> being done on per lcore basis to a per thread basis.
> Now user can also create its own threads and use DPAA2 portals
> for packet I/O.
>
> Signed-off-by: Nipun Gupta <nipun.gupta at nxp.com>
<...>
> @@ -229,7 +264,7 @@ dpaa2_configure_stashing(struct dpaa2_dpio_dev *dpio_dev, int lcoreid)
> return 0;
> }
>
> -static struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(int lcoreid)
> +static struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void)
> {
> struct dpaa2_dpio_dev *dpio_dev = NULL;
> int ret;
> @@ -245,108 +280,83 @@ static struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(int lcoreid)
> DPAA2_BUS_DEBUG("New Portal %p (%d) affined thread - %lu",
> dpio_dev, dpio_dev->index, syscall(SYS_gettid));
>
> - ret = dpaa2_configure_stashing(dpio_dev, lcoreid);
> - if (ret)
> + ret = dpaa2_configure_stashing(dpio_dev);
> + if (ret) {
> DPAA2_BUS_ERR("dpaa2_configure_stashing failed");
> + return NULL;
> + }
> +
> + ret = pthread_setspecific(dpaa2_portal_key, (void *)dpio_dev);
> + if (ret) {
> + DPAA2_BUS_ERR("pthread_setspecific failed with ret: %d", ret);
> + dpaa2_put_qbman_swp(dpio_dev);
> + return NULL;
> + }
>
> return dpio_dev;
> }
>
> +static void dpaa2_put_qbman_swp(struct dpaa2_dpio_dev *dpio_dev)
> +{
> +#ifdef RTE_LIBRTE_PMD_DPAA2_EVENTDEV
> + dpaa2_dpio_intr_deinit(dpio_dev);
> +#endif
> + if (dpio_dev)
> + rte_atomic16_clear(&dpio_dev->ref_count);
> +}
There is a build error on patch by patch build [1], just moving
'dpaa2_put_qbman_swp()' static function above the 'dpaa2_get_qbman_swp()' (where
it is used) solves it, and indeed next patch does it.
If you will make a new version can you please fix it, if there will be no new
version I can do while merging.
[1]
.../drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:292:3: error: implicit declaration
of function 'dpaa2_put_qbman_swp' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
dpaa2_put_qbman_swp(dpio_dev);
^
.../drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:292:3: note: did you mean
'dpaa2_get_qbman_swp'?
.../drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:267:31: note: 'dpaa2_get_qbman_swp'
declared here
static struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void)
^
.../drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:299:13: error: static declaration
of 'dpaa2_put_qbman_swp' follows non-static declaration
static void dpaa2_put_qbman_swp(struct dpaa2_dpio_dev *dpio_dev)
^
.../drivers/bus/fslmc/portal/dpaa2_hw_dpio.c:292:3: note: previous implicit
declaration is here
dpaa2_put_qbman_swp(dpio_dev);
<...>
More information about the dev
mailing list