From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eads, Gage" Subject: Re: [PATCH 15/33] app/testeventdev: order: launch lcores Date: Thu, 1 Jun 2017 20:54:25 +0000 Message-ID: <9184057F7FC11744A2107296B6B8EB1E01EC6740@FMSMSX108.amr.corp.intel.com> References: <20170528195854.6064-1-jerin.jacob@caviumnetworks.com> <20170528195854.6064-16-jerin.jacob@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "Richardson, Bruce" , "Van Haaren, Harry" , "hemant.agrawal@nxp.com" , "nipun.gupta@nxp.com" , "Vangati, Narender" , "Rao, Nikhil" , "gprathyusha@caviumnetworks.com" To: Jerin Jacob , "dev@dpdk.org" Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 525CC7CCA for ; Thu, 1 Jun 2017 22:54:28 +0200 (CEST) In-Reply-To: <20170528195854.6064-16-jerin.jacob@caviumnetworks.com> Content-Language: en-US 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----- > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com] > Sent: Sunday, May 28, 2017 2:59 PM > To: dev@dpdk.org > Cc: Richardson, Bruce ; Van Haaren, Harry > ; hemant.agrawal@nxp.com; Eads, Gage > ; nipun.gupta@nxp.com; Vangati, Narender > ; Rao, Nikhil ; > gprathyusha@caviumnetworks.com; Jerin Jacob > > Subject: [dpdk-dev] [PATCH 15/33] app/testeventdev: order: launch lcores > =20 > The event producer and master lcore's test end and failure detection log= ic are > common for the queue and all types queue test.Move them as the common > function. > =20 > Signed-off-by: Jerin Jacob > --- > app/test-eventdev/test_order_common.c | 114 > ++++++++++++++++++++++++++++++++++ > app/test-eventdev/test_order_common.h | 2 + > 2 files changed, 116 insertions(+) > =20 > diff --git a/app/test-eventdev/test_order_common.c b/app/test- > eventdev/test_order_common.c > index 935c5a3fd..a7160f3dc 100644 > --- a/app/test-eventdev/test_order_common.c > +++ b/app/test-eventdev/test_order_common.c > @@ -41,6 +41,57 @@ order_test_result(struct evt_test *test, struct > evt_options *opt) > return t->result; > } > =20 > +static inline int > +order_producer(void *arg) > +{ > + struct prod_data *p =3D arg; > + struct test_order *t =3D p->t; > + struct evt_options *opt =3D t->opt; > + const uint8_t dev_id =3D p->dev_id; > + const uint8_t port =3D p->port_id; > + struct rte_mempool *pool =3D t->pool; > + const uint64_t nb_pkts =3D t->nb_pkts; > + uint32_t *producer_flow_seq =3D t->producer_flow_seq; > + const uint32_t nb_flows =3D t->nb_flows; > + uint64_t count =3D 0; > + struct rte_mbuf *m; > + struct rte_event ev; > + > + if (opt->verbose_level > 1) > + printf("%s(): lcore %d dev_id %d port=3D%d queue=3D%d\n", > + __func__, rte_lcore_id(), dev_id, port, p->queue_id); > + > + ev.event =3D 0; > + ev.op =3D RTE_EVENT_OP_NEW; > + ev.queue_id =3D p->queue_id; > + ev.sched_type =3D RTE_SCHED_TYPE_ORDERED; > + ev.priority =3D RTE_EVENT_DEV_PRIORITY_NORMAL; > + ev.event_type =3D RTE_EVENT_TYPE_CPU; > + ev.sub_event_type =3D 0; /* stage 0 */ > + > + while (count < nb_pkts && t->err =3D=3D false) { > + m =3D rte_pktmbuf_alloc(pool); > + if (m =3D=3D NULL) > + continue; > + > + const uint32_t flow =3D (uintptr_t)m % nb_flows; > + /* Maintain seq number per flow */ > + m->seqn =3D producer_flow_seq[flow]++; > + > + ev.flow_id =3D flow; > + ev.mbuf =3D m; > + > + while (rte_event_enqueue_burst(dev_id, port, &ev, 1) !=3D 1) { > + if (t->err) > + break; > + rte_pause(); > + } > + > + count++; > + } > + return 0; > +} > + > int > order_opt_check(struct evt_options *opt) { @@ -185,6 +236,69 @@ > order_opt_dump(struct evt_options *opt) } > =20 > int > +order_launch_lcores(struct evt_test *test, struct evt_options *opt, > + int (*worker)(void *)) > +{ > + int ret, lcore_id; > + struct test_order *t =3D evt_test_priv(test); > + > + int wkr_idx =3D 0; > + /* launch workers */ > + RTE_LCORE_FOREACH_SLAVE(lcore_id) { > + if (!(opt->wlcores[lcore_id])) > + continue; > + > + ret =3D rte_eal_remote_launch(worker, &t->worker[wkr_idx], > + lcore_id); > + if (ret) { > + evt_err("failed to launch worker %d", lcore_id); > + return ret; > + } > + wkr_idx++; > + } > + > + /* launch producer */ > + ret =3D rte_eal_remote_launch(order_producer, &t->prod, opt->plcore); > + if (ret) { > + evt_err("failed to launch order_producer %d", opt->plcore); > + return ret; > + } > + > + uint64_t cycles =3D rte_get_timer_cycles(); > + int64_t old_remining =3D -1; s/remining/remaining/g This spelling also occurs in test_perf_common.c in patch 23.