[dpdk-dev] [PATCH] examples/eventdev_pipeline: add Tx adapter support
Rao, Nikhil
nikhil.rao at intel.com
Wed Sep 19 04:54:01 CEST 2018
On 9/5/2018 7:15 PM, Pavan Nikhilesh wrote:
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
> ---
> This patch depends on the following series:
> http://patches.dpdk.org/project/dpdk/list/?series=1121
>
> examples/eventdev_pipeline/main.c | 62 ++--
> examples/eventdev_pipeline/pipeline_common.h | 31 +-
> .../pipeline_worker_generic.c | 273 +++++-------------
> .../eventdev_pipeline/pipeline_worker_tx.c | 130 +++++----
> 4 files changed, 186 insertions(+), 310 deletions(-)
>
> diff --git a/examples/eventdev_pipeline/main.c b/examples/eventdev_pipeline/main.c
> index 700bc696f..95531150b 100644
> --- a/examples/eventdev_pipeline/main.c
> +++ b/examples/eventdev_pipeline/main.c
>
>
</snip>
> static void
> do_capability_setup(uint8_t eventdev_id)
> {
> + int ret;
> uint16_t i;
> - uint8_t mt_unsafe = 0;
> + uint8_t generic_pipeline = 0;
> uint8_t burst = 0;
>
> RTE_ETH_FOREACH_DEV(i) {
> - struct rte_eth_dev_info dev_info;
> - memset(&dev_info, 0, sizeof(struct rte_eth_dev_info));
> -
> - rte_eth_dev_info_get(i, &dev_info);
> - /* Check if it is safe ask worker to tx. */
> - mt_unsafe |= !(dev_info.tx_offload_capa &
> - DEV_TX_OFFLOAD_MT_LOCKFREE);
> + uint32_t caps = 0;
> +
> + ret = rte_event_eth_tx_adapter_caps_get(eventdev_id, i, &caps);
> + if (ret)
> + rte_exit(EXIT_FAILURE,
> + "Invalid capability for Tx adptr port %d\n", i);
> + generic_pipeline |= !(caps &
> + RTE_EVENT_ETH_TX_ADAPTER_CAP_INTERNAL_PORT);
> }
>
> struct rte_event_dev_info eventdev_info;
> @@ -406,10 +386,10 @@ do_capability_setup(uint8_t eventdev_id)
> burst = eventdev_info.event_dev_cap & RTE_EVENT_DEV_CAP_BURST_MODE ? 1 :
> 0;
>
> - if (mt_unsafe)
> + if (generic_pipeline)
> set_worker_generic_setup_data(&fdata->cap, burst);
> else
> - set_worker_tx_setup_data(&fdata->cap, burst);
> + set_worker_tx_enq_setup_data(&fdata->cap, burst);
> }
The generic_pipeline flag is set here and therefore, aren't the
subsequent checks in generic_opt_check() and worker_tx_enq_opt_check()
redundant ?
Thanks,
Nikhil
More information about the dev
mailing list