From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0058.outbound.protection.outlook.com [104.47.42.58]) by dpdk.org (Postfix) with ESMTP id 37A3069A5 for ; Fri, 24 Mar 2017 03:38:28 +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=K+XKxentYjF75qcSO84o3JI75SSweO1yHza15xbu6qw=; b=A4C2Uv3ZZUkIwT6JyjMLtG1zRf2cfbjvauN1ebU8b0RSJlxc5UimnvPBDDz2iohSw7818IVWfm9FGNQR1apCUqUBsTxbhn1t5YaQ3GehUZwmckNe0m1hoj/+qDDXwaUXC2UsZDG5/4xelyBFxdbDc2PDELGmxk83W8+m0lb1Nj4= 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.89.237) by CY1PR0701MB1728.namprd07.prod.outlook.com (10.163.21.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Fri, 24 Mar 2017 02:38:24 +0000 Date: Fri, 24 Mar 2017 08:08:07 +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: <20170324023806.pt3zwazljxdjb2zz@localhost.localdomain> References: <1490194680-25484-1-git-send-email-gage.eads@intel.com> <1490308220-22603-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: <1490308220-22603-1-git-send-email-gage.eads@intel.com> User-Agent: NeoMutt/20170306 (1.8.0) X-Originating-IP: [171.76.89.237] X-ClientProxiedBy: BM1PR01CA0095.INDPRD01.PROD.OUTLOOK.COM (10.174.208.11) To CY1PR0701MB1728.namprd07.prod.outlook.com (10.163.21.142) X-MS-Office365-Filtering-Correlation-Id: 688942c1-cf59-4bd5-0304-08d4725ed97c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0701MB1728; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 3:dpT+9CD84hrVhqHmDBKVxK+hWURQw3J2lPe5bO9d3XnQEt7Qd8Ye1kuiv3fDh7f/NuenfXHh0zulojmVIrJSsTJhUUwRJ/bjP1ll6zKeCDg4a6kkQ6KngoZZ7nvLlK3FnNDqNvKnbzgIOlmTu8nMBZKYMLhFqDSF9KKtStajLnPIbie6/gqT0XPA0cVj9IN+azMqZujkoAfZRnp2G0tAXugfAJAwcZJKkkunOMwYqUx3YUbfIvZVuXudY2qWnDzfj80oeb/MU9jMMPmv57CE8A==; 25:aHx1bQzXdUkPvA14/HdQZuR6l5omVqeErbRn8HxsuZaRK5J14WW23BiCEwKshHHYvlhieeVEvWm1qE+mOl2V4ROoj4HPMuK8I8vb4E9HYby0XZX6Ni9mCWiTyJO6gUUpyZR4bqJCk2KOzXndmGryPKJS1WtNMI+nu/Ri4aTioGRr/3sLWmBwUnrBUJshOwjtkh467bXrLQg1rtIAThq1wlJAZMjpK7MCP5Z8L94QdHf1/ifAmpkYgRimX97qn1YJ2Rq62L8Dayt8b26HunujQxGUYS+FTUg7f+Xtuj093JvshpnQa9C//iOdvDwe1JjJSnyNZGFWwWmvFLbDlJnOOeBOLj8GcfhZzy6IUasaOWtka0o1Zw5dmieSHR6Y08xmVP32Tp9gttYBWAjEfJp4lFGcLqh20VbBRXaGpULsleq/ozwaiXaJJVXHbpbfJvmZqIiux3RKccWBded0ta/5Mg== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 31:4SJRvN7hcxiXFX1Gi/32uy6WlG0QKHv7tbNRPG9te2AsuVPSR7hfuJyGjWwn7qpW6tsPhGZiY9wWmDuqdNmMXS69hmC9QQAG1j5yuNmBE5RG8U4+aXFQLBNdVs2827NTdaCU3tvcXd8L1GsOqTInxEuHkCQxXDqCf8yj26s0+6zRV+KZxLp4GchjIpApFqztD0ZlwV4Sd6vsw02NBySkPg3CAR9+anT1QWiz6KQLOcQLowvostoDs3u9fruIM8nddKTOHnmqsppb7TaSxhHP2Q==; 20:4/01Ogfcqz7knTMIVwhEugLUciGOc7k19kB6DrbxIX4E/W2VI5RVBYcI8oyLqjhRGnU6+rIjrL6rudktcp9gFW/04ladW/536tuOvaDmzzyYvHNYckiZXokcA68YC8Z1yo4vLrTI6e776mzi4gpJdWTMv3x/ZSKsa7sJSXFLsoL6hbziKfPdfrVrsbO+/vIEoKlVP/Y8NfK46zJUe4hVsJy7O/bN1xxlz26hJNRURPY1Xs78DkhgxoXB3JCPCfv2IgPBvRHDgnNWdm6n+Xb+BwW3X6v7GXl6Dv4tsypKMAKp/KwC4HWvKRftTVy3IPJ2jsUAGuLjFp2loUGXEAE+hiRGrvEw9CLazyFIdd2EJVece0TBBniN7aqDWdjS4XwCQG43PGil99+d5DU/1lHPfiMh3EmWn+aLo6qA3cTaFGbG9RbwCzZum85XOW7PDegVRTlrjb2o6n8Ac/HsJI4/MWTgSLceHab5r/pBbWRq3eJ0ho/Chg317EOoLugKcQVOW4diSRxO4jbWpiWW+qCR96qgIYzPiBSESmUylzKkT4heKqf5QOjEZ7tHcOrKRz2s065SItJT0IPTBAKAr+hh55IhzK7Kqs9m+Z2AZdT4FZI= 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)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123558025)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(6072148); SRVR:CY1PR0701MB1728; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0701MB1728; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 4:MchPBxCncF7wV3B1t+bml21b6bwtJb/ZHsim9NYvOzwRktYYHLsfkXmbZ8JVG/X5IWFEOxa6H6vPXxBbEbeT2DntqdXQV2nJ2jWkYPD3F6xx5/QTw/Be/IKq8eSGFBaFYZT+IM7m17LuIfrH0HxfyP2CDzfLmmfacAfUVM8GOAExWnUwRYeNqQ7FcaMMcNeYD4BSox827qMkOCY0WLx89PVQ6DMABG6QK2WpdrOHTHeRfUYFm7W73uMlV9Tmy+3mrqjtHnChi7wSGO7QSqi3sSOaclevsBbmrHlaBjx8gnKOatssi3keYRrr9YTgWikcRH+V6BUiAcZFLHmWWlAG+XGksa6dlEogeO++IgTjxRgVCkPWbz4oAKXSr8IWrHxeqDYKGt1o7J4X5o04Qx5zBUNi8zcnUovZLO6Kw2Zh+PKpuAhVHyNCZVExxLqUQgXfrfVLP9U9maJFiTCqvEX8it5xv7LgKDns2nLNbWeWXjxcu9UVM96iNFHubC+3Ilf5eOrKp2KBJcieLOAwSdvlsblAtv72dJwYba7aMFIPW0sPxN80utqiCxPZfeZ2J6m20BYyCmbVPmjMyZk2seS5GzFZVkM9CwEjOmegGtDHxQU1vxm6fs88/9604M2kcOeW9hd22TqdYdcc67izZnvSTA== X-Forefront-PRVS: 0256C18696 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39410400002)(39450400003)(39830400002)(24454002)(43544003)(42186005)(6116002)(23726003)(3846002)(5660300001)(25786009)(305945005)(7736002)(8676002)(1076002)(83506001)(189998001)(50466002)(53936002)(4001350100001)(33646002)(5890100001)(38730400002)(4326008)(81166006)(54356999)(50986999)(61506002)(2906002)(9686003)(6666003)(55016002)(42882006)(2950100002)(6246003)(6916009)(110136004)(229853002)(8656002)(6506006)(66066001)(47776003)(76176999); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1728; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1728; 23:u3WCigUGxYwKtS0VeF/Hsd7OpRp3GF/5RRuga9Y?= =?us-ascii?Q?GuLM4aYeiK7ahAf0ysLP1gXcCpUPn8yWDarlPox9v4uhvyySCGaM+MhHlXoa?= =?us-ascii?Q?qVY18AVrHWThNaUoz7sZm/fE303Kbhq9kf+EhDNYcTVAhpHiXhRPV1Ya5zYK?= =?us-ascii?Q?IIgiDDDfkkBok6dn9IunU3tWSVEobLuyEE42vVmxzhUBdO4QxNnJcYtZAeg1?= =?us-ascii?Q?uo053uPFJABLBKtIIx7317hwpbJwTE0KVoqvFJeBnJyLTmUnbzluCrGnLPYL?= =?us-ascii?Q?OcCtbISeLpZY2j7Kdq9Aj7fyMgwM/JKX+6rjOzmhTJJQYJulFe29RrQHcE8I?= =?us-ascii?Q?s7T1EGM2IdgEakGbxLRYo2ZZZoQjxl1N3gP6iY0OhpcO0mL2hBnn0AckHjWV?= =?us-ascii?Q?3rG9gE7TTMP/TaLYLbKFR6mUECQ7dRb+dppdX545OAy2AmqtO1dHtTlegd6j?= =?us-ascii?Q?Fg4aB328/VeTu5ekXKR2rMel97m/osuEShzDJO9ri0faQ/ynUUcbA37AmOm2?= =?us-ascii?Q?tpvBveVUUd3L160E4JeGyZ1tpjSkbpl5Csdg//CQtXZus0CxwdCyFnKkVt8t?= =?us-ascii?Q?05lhv4JcE046qmvq3XXQfEPLv6REVl8zVO8RM1cTohTFXeCJAcvNrl4RMYye?= =?us-ascii?Q?j4cbG+/CY3nx7G1xkdRaMGqX4P1YjzkI9baFCYYN+rGoVPR8uS64Xc5w3YAJ?= =?us-ascii?Q?WaATpvaXRYI76val6o+q9BgHwN0eqjRCbXyuyZORlvRs2Dmc0OEAEjoAiFO4?= =?us-ascii?Q?ODAS8a8BxxdP/Jj8KoK/PSjlDYG2e7ldsLBVJQHxhikwjACQtdsll/MRslvP?= =?us-ascii?Q?Ohy5NvAqSGfxxMHsLLCjFgZ6OP1eOG2cgtYdjum7gXoNd4xG40BfkzG5Rimk?= =?us-ascii?Q?rhULcvM7z06QjFRvT54nlGWqtQrCbxC5IPxbj+VsOUwgFWwNgY7NnmZf+5ty?= =?us-ascii?Q?SBDJdP9Wor7LxJPIP8adoNwcRkKYeUVFR1SMCXeFGYuxeLiU7lcdlD4d7Luj?= =?us-ascii?Q?onU1uKy8dqUHmA2rqadY6ejzgDfesrLz8xVvr0AIuF5CUmKtYi8dF/KJvRhJ?= =?us-ascii?Q?1xbEoLfSECqfGL5Kvz+HctuVMPpWCpG2tpTZqLZpH35dw16VArne9/kvXvNa?= =?us-ascii?Q?sEC0TUyTlVjVG9rnBBnHvv26fo0Sd5eFo?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 6:Wr31I/N3gsLKFwwOoC6sU63jGwyl1dk4TSG98WxxfQVGWx/saCkGSGtreNgPbutKTkebIMNova4Oeq971Suav8nUFEfvnRfcZT1y5K6qnPt/rB7x5Fi/TG5Nl7Y23sFGLhw2pAF9ULKplFrFXJRaGQvBygMYThhV4KE9F6jzOh3NjKwliEl2SEMyiaUeh8NjDEjg5RA1pUN3nUEA0ZB9xSKr0BaKBUpEl+DQUeefcWEk2Vw5LgC+e3TlYlgjABMcS4r/KsqhfvuEWSNd/PlkutDlBiTPujqGWGFBzw4B6W7ZMvs/AixqhOFFJJZdqmOXVKhJ7OJEsyB0aCHUoTxgsBoiEOCMyLKQSIYhZ51cxWPP+pj+6lqPk+y1alk4rE+UvAAJ6yQSUTH3uha1Y0T5ew==; 5:yDhdMJC2lytAwpCB29ngN5izOiEiMJ8MvzllUrVhndtWLnlHhJnb3+vD8ZiRWBXjca3kBm8Y3OBvVR36rAR7RCjSKRtTqrg402Hat33M/5xy7HdWC6gDW41ROxQwUkqhIOPN7Yk3Qov0jixzme14cQ==; 24:I35g1JyZ2DVPz0NU29rvmbh998Pv+mFRYVgEop8GuIu2trTVoLrChRQ7FlE8Amui9cq9ye7ZpWk4Lzl4hyLOuOkmIgu73BHssYPra53qNWM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 7:B9q5QhcpHQhCCeYLRB14DssMsxZVebLnHpf0av23i7zHgQ68EQJZXquNQP5TR3PncI9KiRdOE0ia9lorFgjwcOvUbXFQ1qwFqlB+0I1Ao5XwHx24lKDuIgvW6SjgDktpOFbLxV0gpYxvdIDgo9CjlUTaxqnf9s+iIFvIf551ExbRXXE2l4/Yd6yLOEF3lDRV5rJiER00YRRfT5m59If1nJ/7LUBLQ6ZPxMAD3jFt2sr7LWxxPwoHpq+Q88W5qBsvG0ZPa+xgnG3JpnJ6atfxUTkBNOkNUSHTDm3pYrjxpDlZLiqteZTD7fazQaVR0T6dHM+vIoUpxK5+V9uqGTdODQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2017 02:38:24.2066 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1728 Subject: Re: [dpdk-dev] [PATCH v6] 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: Fri, 24 Mar 2017 02:38:28 -0000 On Thu, Mar 23, 2017 at 05:30:20PM -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 Acked-by: Jerin Jacob > --- > 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 > Changes for v5: > - Clarify -ENOSPC description and fix compilation errors > Changes for v6: > - Fixed html doc rendering of bullet points for errno values > > lib/librte_eventdev/rte_eventdev.h | 37 ++++++++++++++++++++++++++++++++++--- > 1 file changed, 34 insertions(+), 3 deletions(-) > > diff --git a/lib/librte_eventdev/rte_eventdev.h b/lib/librte_eventdev/rte_eventdev.h > index 5ce2f33..9971937 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 */ > > @@ -1119,9 +1120,15 @@ 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. This error code is only applicable to > + * closed systems. > * @see rte_event_port_enqueue_depth() > */ > static inline uint16_t > @@ -1130,6 +1137,18 @@ 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 > + if (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { > + rte_errno = -EINVAL; > + return 0; > + } > + > + if (port_id >= dev->data->nb_ports) { > + rte_errno = -EINVAL; > + return 0; > + } > +#endif > + > /* > * Allow zero cost non burst mode routine invocation if application > * requests nb_events as const one > @@ -1240,6 +1259,18 @@ 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 (dev_id >= RTE_EVENT_MAX_DEVS || !rte_eventdevs[dev_id].attached) { > + rte_errno = -EINVAL; > + return 0; > + } > + > + if (port_id >= dev->data->nb_ports) { > + 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 >