From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH 2/8] app/eventdev: modify app setup to support ethdev Date: Sun, 10 Dec 2017 17:26:23 +0530 Message-ID: <20171210115621.GC11770@jerin> References: <1508330348-30060-1-git-send-email-pbhagavatula@caviumnetworks.com> <1508330348-30060-3-git-send-email-pbhagavatula@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: bruce.richardson@intel.com, harry.van.haaren@intel.com, gage.eads@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com, nikhil.rao@intel.com, santosh.shukla@caviumnetworks.com, dev@dpdk.org To: Pavan Nikhilesh Return-path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0057.outbound.protection.outlook.com [104.47.32.57]) by dpdk.org (Postfix) with ESMTP id BFA2C2952 for ; Sun, 10 Dec 2017 12:56:46 +0100 (CET) Content-Disposition: inline In-Reply-To: <1508330348-30060-3-git-send-email-pbhagavatula@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" -----Original Message----- > Date: Wed, 18 Oct 2017 18:09:02 +0530 > From: Pavan Nikhilesh > To: bruce.richardson@intel.com, harry.van.haaren@intel.com, > gage.eads@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com, > nikhil.rao@intel.com, santosh.shukla@caviumnetworks.com, > jerin.jacob@caviumnetworks.com > Cc: dev@dpdk.org, Pavan Nikhilesh > Subject: [PATCH 2/8] app/eventdev: modify app setup to support ethdev > X-Mailer: git-send-email 2.7.4 > > Modify app setup to accommodate event port and queue setup based on the > number of ethernet ports. > > Signed-off-by: Pavan Nikhilesh > --- > app/test-eventdev/test_perf_atq.c | 18 ++++++++++++++---- > app/test-eventdev/test_perf_common.c | 27 +++++++++++++++++++++------ > app/test-eventdev/test_perf_common.h | 1 + > app/test-eventdev/test_perf_queue.c | 21 ++++++++++++++++----- > 4 files changed, 52 insertions(+), 15 deletions(-) > > diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-eventdev/test_perf_atq.c > index 0e9f2db..f6fd5d9 100644 > --- a/app/test-eventdev/test_perf_atq.c > +++ b/app/test-eventdev/test_perf_atq.c > @@ -185,10 +185,20 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) > { > int ret; > uint8_t queue; > + uint8_t nb_queues; unnecessary space between uint8_t and nb_queues. > + uint8_t nb_ports; > + RTE_SET_USED(test); test being used down. So RTE_SET_USED may not need here. > + > + nb_ports = evt_nr_active_lcores(opt->wlcores); > + nb_ports += opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ? 0 : > + evt_nr_active_lcores(opt->plcores); > + > + nb_queues = opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ? > + rte_eth_dev_count() : atq_nb_event_queues(opt); > > const struct rte_event_dev_config config = { > - .nb_event_queues = atq_nb_event_queues(opt), > - .nb_event_ports = perf_nb_event_ports(opt), > + .nb_event_queues = nb_queues, > + .nb_event_ports = nb_ports, > .nb_events_limit = 4096, > .nb_event_queue_flows = opt->nb_flows, > .nb_event_port_dequeue_depth = 128, > @@ -208,7 +218,7 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) > .nb_atomic_order_sequences = opt->nb_flows, > }; > /* queue configurations */ > - for (queue = 0; queue < atq_nb_event_queues(opt); queue++) { > + for (queue = 0; queue < nb_queues; queue++) { > ret = rte_event_queue_setup(opt->dev_id, queue, &q_conf); > if (ret) { > evt_err("failed to setup queue=%d", queue); > @@ -217,7 +227,7 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) > } > > ret = perf_event_dev_port_setup(test, opt, 1 /* stride */, > - atq_nb_event_queues(opt)); > + nb_queues); > if (ret) > return ret; > > diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c > index 9d2865e..f7961be 100644 > --- a/app/test-eventdev/test_perf_common.c > +++ b/app/test-eventdev/test_perf_common.c > @@ -88,6 +88,18 @@ perf_producer(void *arg) > return 0; > } > > +static int > +perf_producer_wrapper(void *arg) > +{ > + RTE_SET_USED(arg); arg has been used in next line. > + struct prod_data *p = arg; > + struct test_perf *t = p->t; > + /* Launch the producer function only in case of synthetic producer. */ > + if (t->opt->prod_type == EVT_PROD_TYPE_SYNT) > + return perf_producer(arg); > + return 0; > +} > + Other than that, it looks good to me Acked-by: Jerin Jacob