[dpdk-dev] [PATCH] examples/eventdev_pipeline: add Tx adapter support

Pavan Nikhilesh pbhagavatula at caviumnetworks.com
Mon Sep 24 11:51:18 CEST 2018


On Fri, Sep 21, 2018 at 01:14:53PM +0530, Rao, Nikhil wrote:
> 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(-)
> >
> > --- a/examples/eventdev_pipeline/pipeline_worker_generic.c
> > +++ b/examples/eventdev_pipeline/pipeline_worker_generic.c
> > @@ -119,153 +119,13 @@ worker_generic_burst(void *arg)
> >       return 0;
> >   }
> >
>
> >   static void
> > -init_rx_adapter(uint16_t nb_ports)
> > +init_adapters(uint16_t nb_ports)
> >   {
> >       int i;
> >       int ret;
> > +     uint8_t tx_port_id = 0;
> >       uint8_t evdev_id = 0;
> >       struct rte_event_dev_info dev_info;
> >
> >       ret = rte_event_dev_info_get(evdev_id, &dev_info);
> >
> > -     struct rte_event_port_conf rx_p_conf = {
> > +     struct rte_event_port_conf adptr_p_conf = {
> >               .dequeue_depth = 8,
> >               .enqueue_depth = 8,
> >               .new_event_threshold = 1200,
> >       };
> >
>
> We should restore the dequeue_depth to 128 for the port config passed to
> the Tx adapter. Doing so takes the performance from 5.8 mpps to 11.7
> mpps for on my test setup (test setup uses the SW PMD). Restoring
> enqueue_depth and new_event_threshold (64 and 4096 respectively) had
> no noticeable effect.

We replace the above values with the defaults passed by the driver

        if (adptr_p_conf.dequeue_depth > dev_info.max_event_port_dequeue_depth)
                adptr_p_conf.dequeue_depth =
                        dev_info.max_event_port_dequeue_depth;
        if (adptr_p_conf.enqueue_depth > dev_info.max_event_port_enqueue_depth)
                adptr_p_conf.enqueue_depth =
                        dev_info.max_event_port_enqueue_depth;

Still I missed setting it to configurable defaults used for worker ports as
below

        struct rte_event_port_conf adptr_p_conf = {
                .dequeue_depth = cdata.worker_cq_depth,
                .enqueue_depth = 64,
                .new_event_threshold = 1200,
        };

I will send the v2 soon
>
> Thanks,
> Nikhil

Thanks,
Pavan.


More information about the dev mailing list