From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0086.outbound.protection.outlook.com [104.47.38.86]) by dpdk.org (Postfix) with ESMTP id 34B41567F for ; Tue, 21 Mar 2017 12:07:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=VXjjMLjnvIh9V24Bro0mzriHf0y42oiPAjnvRbyD9Ck=; b=EZr2PidUWTH7WXSDQ2mIac2gY6sfx3iI63pyMu1SIBxT4ufKAwhFtuPf8V8TDv61r1uGeQqqEsE3ks+Uos6cc6J2QRJBe+71kE5CjmST7Gser2phLnz9W4l0rZk5bpmPtn1xFYEOqTsDxP/JmprUqrLICk+05JVVINAkAhrm5AA= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (171.76.73.90) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Tue, 21 Mar 2017 11:06:55 +0000 Date: Tue, 21 Mar 2017 16:36:26 +0530 From: Jerin Jacob To: Gage Eads Cc: dev@dpdk.org, bruce.richardson@intel.com, hemant.agrawal@nxp.com, harry.van.haaren@intel.com, nipun.gupta@nxp.com Message-ID: <20170321110624.uknv46c2k7k4eh4r@localhost.localdomain> References: <1489695139-13111-1-git-send-email-gage.eads@intel.com> <1489762288-4710-1-git-send-email-gage.eads@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1489762288-4710-1-git-send-email-gage.eads@intel.com> User-Agent: NeoMutt/20170306 (1.8.0) X-Originating-IP: [171.76.73.90] X-ClientProxiedBy: MAXPR01CA0004.INDPRD01.PROD.OUTLOOK.COM (10.164.147.11) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-Office365-Filtering-Correlation-Id: 163873c2-28dc-4122-1417-08d4704a6571 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:n2fxmZDz4Y8svU3ONSwhewYgu7Hy02OzwAGJq04/JRGdcchr0e9lnJZgWsQbx++mm7dN4d9bNBTpaJyHkCOCQA2t+4gjQCRhqf85ett2jF4ByGlcbQ0O5kr81b7afSq+5X9q6AkU9Xh6g/cE18zLfJ/02NQFMmMTsol23FdIrsIP2dg4BWFI7l+00lsCx6gYZ1O5S+e0hJInp4YquCVGSbLHftQqJ6wNeKwqHZIjWBjL7NOr8Fv0BRrfQmK4WqAjhwz8Jb/snb9pvEqcVq8o+w==; 25:KgmRnUWUlLl85abS1XLNS5FWdvWmUWVRS347744fwcBnRbkgE5pTIcMeso30bFoLVEssBxD7qf4WGTIKqkHxG7FI8YDY1cvwfsZ66oKFcOkUnccvmo/+HILEEVRUcG4cSnWIyhkB/9w9Lzsotzt4XaH4uHCTmrjRiIw7aE2ov+R9p1AVXMY2v79rzDmV3B9yBPJPk4tcSCSD/nLNsFLGw32IwSuvBPIZWzq4fjFaOZqIEDLQOYV2U3pXWwOnq6/TJtrSBEgzWhyEd8TOTpzX+YQP81IUU3fFSXvfCme6rWu9tsf9XdITxJEx54Cvzvv+bGP3CDUsjtR2Fe5D2kiSHDbLUmKc/r103NZKrxMwifiOCeKOzSbXPmZZtTINQ8THxoOPbYSl2Eylj+//vcx+wQACSCTNWuPxw6lbJpeZf6PDWZIGSUgARy5Xas95sDoP1zuY29dQidd5V7/cT/xq5w== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:rlOcHEi+tnt4DaIsgYhjmzDm1wAnbuhIDoBrwrVQFUmPknsMwjR8l+MKeQhNsbst2EIMqxPoiGbWQLFJFpaM6nUgt1e2mNZLZB6hv13tYD9crmTfM0d/Pc+N0OlfF01enq813zLavJuJbmlPYYo6aUNSXQlY7JiFngNpfYLXNJpDpexqKhE7LlAi+l4R7gzy+91OmrzJQbux2NNPvsIsOqIuIWo3WJ2cBJ/kkGOcSCJFdK3OMwKPWNA/8ULtqdoOBDG92azHMmMfCexIIXpTDF7nqt0yaKpaJzTbhgPPcBE=; 20:LYZ2BUT4YoYnfNwJuJ5zRVnuicr29+Ws4yK9zzqF77QKPv9baqde9FH/+awlyDjYVMM5oLSEWqf7Z1750yCHGWMoa2SDsVUuw4FY6bDvVoQPT8V7s9C/7HwMuTYUZMlLhMz48GWDwEzgAxHNXVVVNckVXJajB9wK1n2LsLv6Fb73WiieGYB5wndc2oI5ZH9N9Q6cQv3yZ2fcsS4fD8G2tIJ/Yv41on07Q/wdS14NDs5x3c4O2AaOIVsbfSorUezGYhyDQ91BBFXDD4cUeVYJwVD2LEKc0G70p0HgBJH7fFdC721+vfmm5vuBEk4L+3WDq6+x+aAnrd9+e/nIC1U6oET+VBxbW6c1p+a9BZYX21FkoR44T6XNK1XAeGQSY6hwPC5GEIaoahZgVk5ot/zIpFROOiMGG4wKpLIUdqzbVDKgeEReLRShNbb2rGSP/nI6DqEUd24PB/S/afbd71RfUgDXy5wexiaWW0/0g4KemmTyyFaoHMVxmhFi4tySNfrL0+bRICtmrfV2/vD/w6mR4+7IFH2U/x/OLSLHIAS2kSvC4mAqNusPuvEhnF3SiFvb63LkaxE5XXStkbLY6XNFr3W6aUNt0mRip8Kb3aXb4iI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123560025)(20161123555025)(20161123558025)(20161123564025)(20161123562025)(6072148); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 4:dG3uyQMfaI+qgbF1UAmSqLkp/+p7Rbfrk7RkaUsvorl9OzKOsV0pNupncA+k6EFJiQ+dJ6NNa9lKghQXOZv9xYe3BcVcz1/IDKO7XSp21eEWykmZqTWDvZ1Z/GlR5LBvlOBvuHzGl9rhRX4bA1WB8GJEZGTp0SfyFzam+HlL+NtENyACePyeell/BVFNWyzIDpixd/v+RSlJtowaZ+j6IONaKW1ajRq0yNpsmKqMs3/1xiGm2FId3e/ij1IhJTyThQSgQNh3zfg7w4xr6n+a7umj3zPCY3mNhS76tcSdNiVi9tHDPOXSC/82vXVi090cMoE6v4/4XJJx4m9TGrM+j8rJ4t7fPy+HBDyelhJ4FwQUTkdIHNNZyfMQUfkknfEXo9xqm323t/+cIgWuhPAhdh5mNU3XrwSH+3Eq58eRMevLCoZa/Lf3+s152mdbjISmBdbAVgvVK4p7ZD7ZdtMxWI8jrQgrB1JzfCvwq1dJ8qtibmuvC452WkJWYEhpOm75oeODCVJuYR/q9VBrHeGbK9nAzdCq/Q1udntl/PuNOBrGJx1pQKb9sKNgsrOedE8djvETG+JbFuTO7RB/56fgjDj63no+CvdTcvFyodduGZcxGKvODhv7AQVa8tSoHz08dXZ7BD6383EJ+NFmLwN7hg== X-Forefront-PRVS: 02530BD3AA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39410400002)(39450400003)(24454002)(76176999)(81166006)(8676002)(54356999)(50986999)(53936002)(6306002)(9686003)(55016002)(5890100001)(4001350100001)(966004)(50466002)(7736002)(6506006)(305945005)(189998001)(8656002)(33646002)(5660300001)(110136004)(6666003)(61506002)(2906002)(53376002)(23726003)(38730400002)(229853002)(47776003)(4326008)(66066001)(83506001)(6916009)(42882006)(2950100002)(6116002)(42186005)(6246003)(3846002)(1076002)(25786008); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 23:/582VPYzuJlpXln7v6d8o7ZWY8GI/cYedrwDCJl?= =?us-ascii?Q?d1YzA65N4xQgNW9n3idOT+p3vCQMSW3hpZqhBHRUjwNAupElRriH+XvyoV7R?= =?us-ascii?Q?0YA8kitePHfn6jJbwPvVvE08lUipvzWKRyy1hkWYP0PRDI80s08LrhdyvkZL?= =?us-ascii?Q?2Mee6Hc31oVxiU4mG0QU54XUrcS56VKBvo75+6YpeSP4f39KESAH0MpsaQMJ?= =?us-ascii?Q?FDXraH+FsNWFgx7ajc4qwvTSxWUfPPLb2QACT0pnDKpd0ySjC8eK1bdRyZrm?= =?us-ascii?Q?fDORnRZZTMkijmyktW93ahMPu7ZYuW8ufhFNGE13/W7DVPmLziQdq0UFg98V?= =?us-ascii?Q?Jy/7+4to1gBMbPiGft+DMnrMq/Smwyblm7Xy+4zQ+BoCZBvS/v2PahVlbnLA?= =?us-ascii?Q?rQiFEyR5Q2vIStZ2F4VhFHPEE22oGJGpxE7Pg/CTFkB6TVZLPpqIXObH67SA?= =?us-ascii?Q?9HHUou+CgeN+NL14MOHGw1a+rzya4hXZ5NoiXX7a4WaXFfSHnNzAacx/x9ld?= =?us-ascii?Q?Hz4GAtYb/28smtiVHQSNQ25k6gkpL0cwmhEMg1rNRvO5aMNUro7HMhABwblt?= =?us-ascii?Q?q+R89ZcAejgNrzT7RPpMURYcmWME/KM9EdfYQ+IApKOnHtZN6DXKgU2+fUdt?= =?us-ascii?Q?+z9deHV2mBi8q5W7hfroF+Nfb2ycgpOp2rPFHOwZzuXVRCqMOTqX4yT0QgQZ?= =?us-ascii?Q?zeTYeFqMyPewUY7SlmlQX5XHAvHROIDTAuXLJe8kPnXlUDudpmoF0g/tXylY?= =?us-ascii?Q?o+KmQJemILlj75ZPyFEf/98/uA9+st9vuZ3ayciKemP0icAXNgEVqS8TKs7p?= =?us-ascii?Q?IRy6BGMHMj4/mT2nFhRpfMriDlw+XF0LlIHMYaZn7HamfzdRrZQiS9jfyAKF?= =?us-ascii?Q?IWXbaVBiYPrIK67eeZq+HlLAroZmoCm4+MAta3e2OGwRnQeFJaVhu4G8rE2O?= =?us-ascii?Q?opI6+f+uJc27gAN/GaEiDr4PjjYE4CpNtS+JXnc2DA/VxCDZK16ozlqfc3wp?= =?us-ascii?Q?AI5vYlJ1zaMNlkCpm8KGX8uFVLksANC0NZFiVEsAf7S1Ktw3jeMXo1KCYJou?= =?us-ascii?Q?T1WtnNQ4w6vtuny2xDT1vqUPB9Nml91wEjAfPNlCAiSQPfPANgAyR64FNweA?= =?us-ascii?Q?BA1VcXEYUYG+UhkT7osyL2C3Pe8LQ6fiv?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:i7gzWnK++NJGi6WrUATo9LSglUNYiBfwzRXTWdfkBUj8a50f7ivPHuY7HxFubogUEvt47WumvVj0qodG1/2lYf+wwX2wVdJS59uUV5kn48OybvwQN0UbKZoLiS3Xy81ecHaV+VqPir2YFGm3GLS+2fu2+5Ljuqsa+YgVvSxNMZ5rYZBfoaC74lNQv118rErDImAjjAOipgc0IX+sKxkYLDl3gNZYJ5WtguYsJZk14R1yRvgDpw6U0e8G5TJgTldH+E7fVv2FpfNQM3Krb+f4BSme3HwMCV3+v7bM9wLFDK4i7vwYt6CB/fTCgnwBanwt9My/ud5QqcqkoFyMdV26RlavqPiLB1DCe1N658wqVBGDWC/QmnRXytyBq10vE65Na/hmZ08fWGKjaRyjWqdAvA==; 5:M0z2aXGFZGYBbfL8r0cqWlNawAzQaH5CYITT8Q+EvTATpHwsTdGvIZTSjwq1BX7As+zHUTJo0EvwcRyGg9zTegnt+IJLOLFeQAreDVPhEDAQLB3Cnk4Hr8bcuwlaLKtUeXT37EORla/mYSntYpEVyw==; 24:AvTviGXGhhWu9YPYJ9f4hhxE/RY97FbHJ081pzA6wlncrz08CrPuHuBuNC6xrDUaXom2zoSyVUulGyHns14IT/6X4fsz0qGUT3mG3kT4ZYM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:N010YtAl//MKxFE0y2pwqoVjnl23+Hopv0Ul+9gkr2/AzyPsFIst6tcSl1UEYVo7z5cdiEh0NLpejYRyQaH0JDgyd7Odb7pTL5tW2EJq0M2Eke20hvM7fjhDxmm6pwAzNCNq3ze62M3ypks6sOGFVPgZrotRxWtRePQ9BP49ImjVh+16gd456A2M8PykdhNZJ95NRjEH8IqSIjB0edfPregorrQSMuLi5NQj8wfaA6U6Y+wBnJp+C1uVN1EULK5TWQyqx+FX7o0S0t0V+jsEcbGjLQvd7bddHCNjesT3WiIapyCu6WBor7SNtkP1WC85DwYInA6kzOVF8mfnPBX87A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2017 11:06:55.9828 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: Re: [dpdk-dev] [PATCH v4] eventdev: add errno-style return values 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: Tue, 21 Mar 2017 11:07:01 -0000 On Fri, Mar 17, 2017 at 09:51:28AM -0500, Gage Eads wrote: > From: "Eads, Gage" > > This commit adds rte_errno return values to rte_event_enqueue_burst() and > rte_event_dequeue_burst(). > > These return values allows user software to differentiate between an > invalid argument (such as an invalid queue_id or sched_type in an enqueued > event) and backpressure from the event device. > > The port and device ID checks are placed in RTE_LIBRTE_EVENTDEV_DEBUG > header guards to avoid the performance hit in non-debug execution. > > Signed-off-by: Gage Eads > --- > Changes for v2: > - Remove rte_errno initialization > Changes for v3: > - Fix checkpatch and check-git-log.sh errors > Changes for v4: > - v3 was incorrectly based on v1, v4 is instead based on v2's changes > > lib/librte_eventdev/rte_eventdev.h | 40 +++++++++++++++++++++++++++++++++++--- > 1 file changed, 37 insertions(+), 3 deletions(-) > > diff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h > index 2b30a35..a45c81a 100644 > --- a/lib/librte_eventdev/rte_eventdev.h > +++ b/lib/librte_eventdev/rte_eventdev.h > @@ -245,6 +245,7 @@ extern "C" { > > #include > #include > +#include > > struct rte_mbuf; /* we just use mbuf pointers; no need to include rte_mbuf.h */ > > @@ -1118,9 +1119,14 @@ rte_event_schedule(uint8_t dev_id) > * The number of event objects actually enqueued on the event device. The > * return value can be less than the value of the *nb_events* parameter when > * the event devices queue is full or if invalid parameters are specified in a > - * *rte_event*. If return value is less than *nb_events*, the remaining events > - * at the end of ev[] are not consumed,and the caller has to take care of them > - * > + * *rte_event*. If the return value is less than *nb_events*, the remaining > + * events at the end of ev[] are not consumed and the caller has to take care > + * of them, and rte_errno is set accordingly. Possible errno values include: > + * -(-EINVAL) The port ID is invalid, device ID is invalid, an event's queue > + * ID is invalid, or an event's sched type doesn't match the > + * capabilities of the destination queue. > + * -(-ENOSPC) The event port was backpressured and unable to enqueue > + * one or more events. Some reason you haven't addressed the comments in v2.i.e add a note that -ENOSPC applicable only for *closed system* http://dpdk.org/ml/archives/dev/2017-March/060352.html > * @see rte_event_port_enqueue_depth() > */ > static inline uint16_t > @@ -1129,6 +1135,20 @@ rte_event_enqueue_burst(uint8_t dev_id, uint8_t port_id, > { > struct rte_eventdev *dev = &rte_eventdevs[dev_id]; > > +#ifdef RTE_LIBRTE_EVENTDEV_DEBUG Some reason you haven't addressed the comments in v2.i.e Not fixed the build issue. http://dpdk.org/ml/archives/dev/2017-March/060352.html You can reproduce it by setting CONFIG_RTE_LIBRTE_EVENTDEV_DEBUG=y in common config. We have two approaches to fix it 1/ Pollute lib/librte_eventdev/rte_eventdev.h header with implementation specific header files Or 2/ Have neat pmd debug common function in rte_eventdev_pmd.h.Let all PMD driver call it by including rte_eventdev_pmd.h > + if (rte_eventdevs[dev_id].attached == RTE_EVENTDEV_DETACHED) { > + RTE_EDEV_LOG_DEBUG("Invalid dev_id=%d\n", dev_id); > + rte_errno = -EINVAL; > + return 0; > + } > + > + if (port_id >= dev->data->nb_ports) { > + RTE_EDEV_LOG_DEBUG("Invalid port_id=%d\n", port_id); > + rte_errno = -EINVAL; > + return 0; > + } > +#endif > + > /* > * Allow zero cost non burst mode routine invocation if application > * requests nb_events as const one > @@ -1239,6 +1259,20 @@ rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event ev[], > { > struct rte_eventdev *dev = &rte_eventdevs[dev_id]; > > +#ifdef RTE_LIBRTE_EVENTDEV_DEBUG > + if (rte_eventdevs[dev_id].attached == RTE_EVENTDEV_DETACHED) { > + RTE_EDEV_LOG_DEBUG("Invalid dev_id=%d\n", dev_id); > + rte_errno = -EINVAL; > + return 0; > + } > + > + if (port_id >= dev->data->nb_ports) { > + RTE_EDEV_LOG_DEBUG("Invalid port_id=%d\n", port_id); > + rte_errno = -EINVAL; > + return 0; > + } > +#endif > + > /* > * Allow zero cost non burst mode routine invocation if application > * requests nb_events as const one > -- > 2.7.4 >