From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id C7349133F for ; Mon, 20 Mar 2017 22:11:38 +0100 (CET) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP; 20 Mar 2017 14:11:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,196,1486454400"; d="scan'208";a="77498717" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga005.jf.intel.com with ESMTP; 20 Mar 2017 14:11:37 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 20 Mar 2017 14:11:36 -0700 Received: from fmsmsx108.amr.corp.intel.com ([169.254.9.46]) by fmsmsx118.amr.corp.intel.com ([169.254.1.111]) with mapi id 14.03.0319.002; Mon, 20 Mar 2017 14:11:36 -0700 From: "Eads, Gage" To: Jerin Jacob , "dev@dpdk.org" CC: "thomas.monjalon@6wind.com" , "Richardson, Bruce" , "Van Haaren, Harry" , "hemant.agrawal@nxp.com" , "nipun.gupta@nxp.com" , "santosh.shukla@caviumnetworks.com" Thread-Topic: [dpdk-dev] [PATCH 19/39] event/octeontx: add support worker dequeue function Thread-Index: AQHSlEPb8f/5MyIYdkCIcNMa0R2Y/aGeUpHA Date: Mon, 20 Mar 2017 21:11:35 +0000 Message-ID: <9184057F7FC11744A2107296B6B8EB1E01E8022D@FMSMSX108.amr.corp.intel.com> References: <1488562101-6658-1-git-send-email-jerin.jacob@caviumnetworks.com> <1488562101-6658-20-git-send-email-jerin.jacob@caviumnetworks.com> In-Reply-To: <1488562101-6658-20-git-send-email-jerin.jacob@caviumnetworks.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.1.200.108] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 19/39] event/octeontx: add support worker dequeue function X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Mar 2017 21:11:39 -0000 Hi Jerin, > -----Original Message----- > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com] > Sent: Friday, March 3, 2017 11:28 AM > To: dev@dpdk.org > Cc: thomas.monjalon@6wind.com; Richardson, Bruce > ; Van Haaren, Harry > ; hemant.agrawal@nxp.com; Eads, Gage > ; nipun.gupta@nxp.com; > santosh.shukla@caviumnetworks.com; Jerin Jacob > > Subject: [dpdk-dev] [PATCH 19/39] event/octeontx: add support worker > dequeue function > =20 > If device is configured with RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT > configuration then use different fast path dequeue handler to wait till > requested amount of nanosecond if the event is not available. > =20 > Signed-off-by: Jerin Jacob > Signed-off-by: Santosh Shukla > --- > drivers/event/octeontx/ssovf_evdev.h | 7 +++++ > drivers/event/octeontx/ssovf_worker.c | 52 > +++++++++++++++++++++++++++++++++++ > 2 files changed, 59 insertions(+) > =20 > diff --git a/drivers/event/octeontx/ssovf_evdev.h > b/drivers/event/octeontx/ssovf_evdev.h > index fac42f5..2cd9147 100644 > --- a/drivers/event/octeontx/ssovf_evdev.h > +++ b/drivers/event/octeontx/ssovf_evdev.h > @@ -190,5 +190,12 @@ ssovf_pmd_priv(const struct rte_eventdev *eventdev) > uint16_t ssows_enq(void *port, const struct rte_event *ev); uint16_t > ssows_enq_burst(void *port, > const struct rte_event ev[], uint16_t nb_events); > +uint16_t ssows_deq(void *port, struct rte_event *ev, uint64_t > +timeout_ticks); uint16_t ssows_deq_burst(void *port, struct rte_event e= v[], > + uint16_t nb_events, uint64_t timeout_ticks); uint16_t > +ssows_deq_timeout(void *port, struct rte_event *ev, > + uint64_t timeout_ticks); > +uint16_t ssows_deq_timeout_burst(void *port, struct rte_event ev[], > + uint16_t nb_events, uint64_t timeout_ticks); > =20 > #endif /* __SSOVF_EVDEV_H__ */ > diff --git a/drivers/event/octeontx/ssovf_worker.c > b/drivers/event/octeontx/ssovf_worker.c > index 7ec78b4..e0d17b9 100644 > --- a/drivers/event/octeontx/ssovf_worker.c > +++ b/drivers/event/octeontx/ssovf_worker.c > @@ -226,6 +226,58 @@ ssows_release_event(struct ssows *ws) } > =20 > force_inline uint16_t __hot > +ssows_deq(void *port, struct rte_event *ev, uint64_t timeout_ticks) { > + struct ssows *ws =3D port; > + > + RTE_SET_USED(timeout_ticks); > + > + ssows_swtag_wait(ws); > + if (ws->swtag_req) { > + ws->swtag_req =3D 0; > + return 1; > + } else { > + return ssows_get_work(ws, ev); > + } > +} Should ssows_deq() fill in the ev structure when swtag_req is 1? I see that= the flag is set when an event is forwarded to the same queue/group it was = received on -- is the expectation that ev will point to that forwarded even= t, such that the user receives it when they next dequeue an event? Thanks, Gage