From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0060.outbound.protection.outlook.com [104.47.40.60]) by dpdk.org (Postfix) with ESMTP id 3ACAE9E7 for ; Tue, 7 Feb 2017 06:00:21 +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=IV4SUkQrqLFsyOrf7vprJSGTJk4e1Exj/3NGtldI48g=; b=Uz2wQnpOeHVEKVeGs4oGDv+eQpQcRNkvO/LHaOc2cLQSg9DdEX76M9Q0neVEbW80/p32PcuW9B0eYrnAgIhbzn8dAD1LuZljrHz+KyzPV3wCc4jsHxqIr2lfBksbs9A+wz6ZQ7Me6EY6vn+78ffgr8epG2YCkclGCAJ1ghdSMDc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain (111.93.218.67) 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.888.16; Tue, 7 Feb 2017 05:00:16 +0000 Date: Tue, 7 Feb 2017 10:29:57 +0530 From: Jerin Jacob To: Hemant Agrawal CC: Nipun Gupta , "bruce.richardson@intel.com" , "gage.eads@intel.com" , "dev@dpdk.org" , "thomas.monjalon@6wind.com" , "harry.van.haaren@intel.com" Message-ID: <20170207045956.GA5438@localhost.localdomain> References: <1480996340-29871-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482312326-2589-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482312326-2589-2-git-send-email-jerin.jacob@caviumnetworks.com> <20170202140911.GA26986@localhost.localdomain> <6032c262-5cfc-db97-f41e-8704c367bee3@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <6032c262-5cfc-db97-f41e-8704c367bee3@nxp.com> User-Agent: Mutt/1.7.1 (2016-10-04) X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0009.INDPRD01.PROD.OUTLOOK.COM (10.164.137.16) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-Office365-Filtering-Correlation-Id: b6dec046-39b8-4f02-d6e8-08d44f16367b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:m+EodbBfJ0jnxhBNcbevTttdkWUNKziBls08Zmdz64gAJtYhZYrJZ95vsl09UYkdFyGYIHO0rRtP4XHVkGURlbqEEp0rDLM3u46Z9Q3mdu1XKgGnOFfDwV2TGWgqIAluK+9D77VGyNRXCN59jwM5t9Su/0e4VMinL/aDWMNR7KGjvxnZJYWkyV5c5fulQRRYnDSM2TJd8Kd+aPUlAs3f86zDX2PUVCfUNulM4cZuNDN2q650yc3b/MenGFow2GcJv6H8P3fj124Ic6mIXHtHLQ==; 25:mxqCHGIIbqPnVQwfsfkf+Qkg1f3+h9wBjYqn+fUvAB/EnO1r11Tmiak9hCwB5WBQRktPIWUnCRs007SD4aC5aLJeuJVv+m/4xbZuCIamyr2oOmTCLKoylAbju2gsVa0fDPjiN7R7XHkdUZW6nU4y4eI6gQYaPwSO3Jcy4Fs3znR32fI+qx4yeMiY1CAhqKoHHm65XuHqAtweY/eP+NvL+/u78sTUUlAw0qjV3L3k01ajotr6FdepRW57bZbhdi7j6nN4qjMfSiRGi1xOWt1bQuZxHydJtZhBV2jqmgir0bxktNEcoRu0LUgK6sdAZxSDy3wAhDU0FxEH2fsLlSipIfa8wWZpkTMEiLyjdE3t0glHvHwaRFMls/20F6cNFfzGQXPFCSkM5xbfzdrZJVUNS+JEL9Z+JiEp7vTLnsG6TW1r3DaO46k/hYVJFKVz9a1qZNWaSPU4kje+ZcvGeHdwew== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:BbsQe7MTZP9DMIAcoAxckfA6uxB0aWvMiHlbaCgccixZ1kPOKFPiM/OdYr4qxcXZoF1x8+I8HkRHOZGArrJYTJkiLtTEnBwAJDad3MBg9IzvjE8jZ1ZxqcYau5wpsiYK9jdikM+vsa1qr43vFHmTcZFocSXW7WB7sUodc+NfSilsOYUQyN/aNN32JwNoCwtYYoYnEW7+5HfvKnHqKOzD+SH+1pdiuB6DYVerbywc2yI3RIz/UqQ1LuSnfeTkQB+nYqGnL11QxWjTX1hrjahj7pGXwnxt/BXdmtfNgW4S3BM=; 20:EIvF5HtFJRheE0zVWjkrP5EKwU1MD0VzKpChAvNcgk2o0dT3t5aTmQ1HmqLCTDb18Yj8AkWEEf42fxzMMtAkjmIgA9iYG6I+/cpVGVEQC+aeZn1K8Jo56ul3bxeW/LvMvwXPgEQHSjPoKFj0SVMjDTBCbf0sdQVZaz/Z9KCtNbH6p/c8yFliBpTeRyHaVKkGklknXZlfCwhFckF83uyUwu3Qz5J9GNqNbP7jIw9HuX9c+6Xe+emmsAbRcmlE4CkDMq6cxlOT3uJ8DIu3it8YvwhPdNoNFSU3efLfJ1FtdXX2I17F1t7+zPpr2iZElZd6YdgBADgR6IdWDtcRyIH6DZ2VdUcuZ7vXJcYWNt6NjL2GtFLRwCU9KnXd6ptAgnV3S6zutudZt1GHRSEMLOlgQE+/TAW3I5F5w5YhqObfPfzYN1NH6tdefWnJCNeTyn3IouQemGFrd452Eu4wlgdzD3dxwdkAiW0MmbQ4z/kMzNkD0ee/JlcmKOIhrhDtCKKViEiyO/DNYVjvERxee9x4NvvWmj/eqIVM2l3wPwNxMp8gG+Hd01BUfXC124RMXlETZHe4Wy/Wr7KX5Db6WuDj02EuTg1nBE+6dCIJDJoMWrQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(2017020601047)(20170203043)(8121501046)(10201501046)(3002001)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(20161123558025)(6072148); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 4:Ie580yw03B2PRe1o+2ifUc/1ipyxhLUY7jIu6z+nLtlVzSp1nwJ8G+gpKXYXEkKOCNVcbJlBf/l2OlWph64KPYCywtHlKBbPVGDCLbZ0ju0ZdrkJmw85KvPyrvDJTy6+wvcf6HklxAeZSvLj3WKwRH0ioRXUD9CvcZsLHpkK7iLBPh3LXwNiV70Gt6XFCIubmJn2BPdx/TmC85OtawYWm8hGSrUTWN9+udgbhttKYjYhT2uMYnCNwZRrjjgEHAboOXBreHGSuhfXDdvXNpjLNAwbhCLRRmeoECMoiBSDWOr1jnleshv88Sj+c96niQBJt/zHqLG37DMmEgZIxYt2ml9BijwwiTsI9KvOqxgk5X77g9EvFXrZx2k6PrEUACdVsjTfbJCwiEvPEmN9YqKJWjtFV/eranLDyC9M5FY2Y1wdiicWak+xw3Z0KXs7kcijZ1oITxSp720L8ZGNEhxgVcK/vR8DrQY052CDMMn5hlNpByLueJ+rYLF1ac/pQzn81jCbrrFJmWcfdF+DSaVeVambNwiYSPupsGMIT1MzZfPX08adIWHArsRiD6WiPDacfsCKX+7PNjPxZcLHxsK/CaJjtG1QpOdUhCvVg/RT85wwH4OojJglc0oj0YKmNutr6gm16yy9O5rIarKVm1I1C4ccKcTdkyoGEMGVLn10skoXMtqTmGRDXHrtXIHRWzM5cZPLJESLIYi4MvaLxPMgy8hPTypOvEM3IJP07fdxioPsghAKB4+02pmNVqIFk65JhUgk+1EFSyh2K8uzWtHP0Q== X-Forefront-PRVS: 0211965D06 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(13464003)(24454002)(189002)(377454003)(199003)(38730400002)(4001350100001)(97736004)(42186005)(54356999)(6666003)(76176999)(33656002)(83506001)(50986999)(53546003)(6916009)(53936002)(47776003)(6246003)(55016002)(42882006)(46406003)(61506002)(4326007)(2950100002)(229853002)(66066001)(7736002)(101416001)(6506006)(9686003)(3846002)(6116002)(5660300001)(2906002)(81166006)(81156014)(189998001)(305945005)(5009440100003)(54906002)(25786008)(97756001)(106356001)(8676002)(105586002)(93886004)(92566002)(68736007)(50466002)(1076002)(8656002)(110136004)(23726003)(7099028)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 23:MBK88cHOLorBrB8Gs4LbGkL5VTNx0lDortWfDRb?= =?us-ascii?Q?99yuRbpa/T4pvEjxpE9GHwvWAVd2GQ4AgyWd6Nf1KsO9PjzYwCUSTaFdbpei?= =?us-ascii?Q?lkihkuCGBnRJmBymCcbq7swHbxT5ARK5dXotTgjjGe6ijua6lCVdVh/B8F5y?= =?us-ascii?Q?rPW0Xz4H9kZMVfl+BaITlJp2Q8rmcNbfXZ7SafZeV9VlJaKNOs5iYXuYJKXK?= =?us-ascii?Q?hP10LYbm/tayJjLOY0YgLEVcW8zXY1e6DX6/9wAygaV0KkCp6rciROJTC8Sn?= =?us-ascii?Q?8uBYm4kpajiLM44WHi1DYEGad52XbTB5YTY2rPhknsW5WGD772/VQa1nn/FX?= =?us-ascii?Q?8mBI67AhSXSP5WgcBCzfT6kQZNSfRmPSD5iLGsO5Ylvv+1cN4tA45HNfHRRs?= =?us-ascii?Q?R5ha/ZgYaX7A6x8GLDHkncuqjylHF1RQIA5tqm0RhGsrvXuvBQNS9uuXWj7v?= =?us-ascii?Q?Ti+735XQo+yyWIRY3U3tjQccaK9s7Ohld5FIXmPBzX4eMpo2fVC1azj1/ejR?= =?us-ascii?Q?9m2vifmUzl2607tuEW7XWbUzEmH+TlZWKFrPiIT3OMSZ36Mk+3mWTu0gRA31?= =?us-ascii?Q?Pgs/QnkdeNO9Y9Lh5wPzWpl70iehM1qF9u/QGE3ciwSfLdjVRvHy92ufTC+X?= =?us-ascii?Q?y8rApY5aLZJujA5GSSXcGaifnbVFqizAWwVacMj4z/c9YDHUEZZkwM8tS3+7?= =?us-ascii?Q?WtVXGsmwOBZ6Vr17BN5H3Db83slzGylFi3vsdZE3LSb4TnpiqkcjyhGxST6o?= =?us-ascii?Q?mpzpQ78Z1P2xdZK6TdgyuBOfiMO+U/mw1lCpEPn5UlABsug+uHIkAzHK8/rk?= =?us-ascii?Q?FVemLcMXALA99T8IqISqeeF79xIAZoGw6If7EUwXYXZsDn20rBtQKONqX3i7?= =?us-ascii?Q?y9emen5BiUK0B4klaZzlAAx95WUfTDpV/SiX5XKBAhoDNBZyP0rg+cEA6k/D?= =?us-ascii?Q?UmTiKb4E6lABaHmiZD226lun8/VdkPr93V/JffJ85+umEUdBRBkG9QkEHpr5?= =?us-ascii?Q?MnBrxExZ/yVWfMj80m8IniUlkcO+CqWt+IqqLAwGMn9f7GIyQfanFEh5XIVB?= =?us-ascii?Q?p6xXQQnDpcs5kFNTipGtbEkXmqActQ9Z+dxzADlB/x32nxLfWG+2p9revHx4?= =?us-ascii?Q?8SDZZtEHSPA6+HjMOva/QUDnaq+ZZlBXhZ0HBOjeg7R3YFtE8lYoWGUUP6yg?= =?us-ascii?Q?Pqq+N/kZ5ru8Xihpl1L7lx3+9Pf3UquP5NFaXRhBcyOd9rpScHWws07x/FdX?= =?us-ascii?Q?gMcCqgrND5Mb+ZZuGPXVBPZwxu/J1ew/pZkUcnBRLQSqXQM7tg1j25Cy9nfn?= =?us-ascii?Q?0Ip+DA7uvLQ9wRr2XQABGB1fE2gAyb613+NqUDPtN88qqDWauPiGOpg7VFnW?= =?us-ascii?Q?WthElHpphnlBYOFMJZit49xIYU1dnmSUFhHR7EOk489ACeUNzJYwKJ/3MeiO?= =?us-ascii?Q?KbMVB+n+h4L/PsRRyWu/HQIbTrVdcUjTVXaYKLrK9IKpQUJUXkMCv?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:GtNOvwrfLYFKOUDJ+JEPtAm00TZlAklLIOkkqsnOIWxk9fGw0O8CPuycCjNpu+Yq/2z0TxnmMfbptnAqiHB7MExQUQXkx5/1PpjuzmsHHAnX9c1GJSoOOsMXql+/Koa1yyb0XRz0ANqIy8moxiH6jefe6Dh+l2zJxqCWRKVyH7Y/m3Bb1PyAuZj0lAs0WWsMR+wMdaGRx4zM0Bqwbp3vbA9CoPi/szFTjn5upgZtGi1yny47HXppPpf62ocvel6VNoTH9kCQTkASLzXB3E/iFEFOzhRTRaIjacB91/zSo/GmYcFl9XmwKwRSkJJPY7IBI3zkHeIY/pRJ6mf21CBF1IwdWPf3gz3UlP1/0Y9K5j1z81nTSL/IdvTNaUQMDCbCNzsUtdfT0F3Lei4L5ZzRpQ==; 5:qLNPOksUlt5ffklC07DYj5Ss2ywvvHLhRveeKE5daewGofw41+W0EW2giwuXTxAyjcs/CbQpNrdOPKHyEkuPSNZNIBKSDnmkfEKxi1ScoT6v2Nx3tDO8VMvdVonFQrh//W/vwEaV0+wEc9BQA7X/6mKSsEJ49LFYhbg5SFuL3nQ=; 24:dEOPrzPRCekCGJYtXxiFCjQfIrJU2p4wRD+fcq14fNERSxFAqzQdcbN8qa59I0xhtthmCuAeEb8TSkLCelzQRG/JCHSWtXTMTsXnKJKfOPQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:xC+toSaKDDDQPbbcnNxEIw6o5b4SaeRHY076jDf1EMp0fAH5Xq7ULRu2fIVvvicjqwdJhT6sWuZ2S30cAkgWIZhpzDREKa6V2pQ0ZXuOpo/VghXSmJkoFKzoiKFq28Sm5o28cy/tCMdcuRn90BoQjyzzr6oNgi+6puT8Yla+CKJG0NuSFLuUMvnjG7aKjg4xaUtAuSTJQLcXYGX1mOjTyJ4gYBuzX17V5EdmnQ5Y9/0L9Iom7AsfJJJqRd+ohCeIkxnWHswctouZ/nYeES4pXZpBmXasctsjBCX72t8Umzx3lpCmoUts7kBOMviFz0i4vAIOGzhtM9asNCzFo3ifykTHq0g6lAjLo/d3J5USusJpoPdoBiMONGTS8HmbvJiF9XcTsP6MqrrNaji0RVbZBGqCNZwkorDekgqGOwceU/RrB7VPNlRMBHQD+mOizkc6VsTN+5RG/NBqQpx6OC3GDF4PGuO5l94uIn3ytryief2glDG8iISU3cZRBCDyJi3QK0qlAsPrnq93Pduvp+N97A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2017 05:00:16.7894 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: Re: [dpdk-dev] [PATCH v4 1/6] eventdev: introduce event driven programming model 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, 07 Feb 2017 05:00:21 -0000 On Fri, Feb 03, 2017 at 04:28:15PM +0530, Hemant Agrawal wrote: > On 2/3/2017 12:08 PM, Nipun Gupta wrote: > > > > > -----Original Message----- > > > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob > > > > > Sent: Wednesday, December 21, 2016 14:55 > > > > > To: dev@dpdk.org > > > > > Cc: thomas.monjalon@6wind.com; bruce.richardson@intel.com; Hemant > > > > > Agrawal ; gage.eads@intel.com; > > > > > harry.van.haaren@intel.com; Jerin Jacob > > > > > > > > Subject: [dpdk-dev] [PATCH v4 1/6] eventdev: introduce event driven > > > > > programming model > > > > > > > > > > In a polling model, lcores poll ethdev ports and associated > > > > > rx queues directly to look for packet. In an event driven model, > > > > > by contrast, lcores call the scheduler that selects packets for > > > > > them based on programmer-specified criteria. Eventdev library > > > > > adds support for event driven programming model, which offer > > > > > applications automatic multicore scaling, dynamic load balancing, > > > > > pipelining, packet ingress order maintenance and > > > > > synchronization services to simplify application packet processing. > > > > > > > > > > By introducing event driven programming model, DPDK can support > > > > > both polling and event driven programming models for packet processing, > > > > > and applications are free to choose whatever model > > > > > (or combination of the two) that best suits their needs. > > > > > > > > > > This patch adds the eventdev specification header file. > > > > > > > > > > Signed-off-by: Jerin Jacob > > > > > Acked-by: Bruce Richardson > > > > > --- > > > > > MAINTAINERS | 3 + > > > > > doc/api/doxy-api-index.md | 1 + > > > > > doc/api/doxy-api.conf | 1 + > > > > > lib/librte_eventdev/rte_eventdev.h | 1275 > > > > > ++++++++++++++++++++++++++++++++++++ > > > > > 4 files changed, 1280 insertions(+) > > > > > create mode 100644 lib/librte_eventdev/rte_eventdev.h > > > > > > > > > > > > > > > > > + > > > > > +/** > > > > > + * Event device information > > > > > + */ > > > > > +struct rte_event_dev_info { > > > > > + const char *driver_name; /**< Event driver name */ > > > > > + struct rte_pci_device *pci_dev; /**< PCI information */ > > > > > > > > With 'rte_device' in place (rte_dev.h), should we not have 'rte_device' instead > > > of 'rte_pci_device' here? > > > > > > Yes. Please post a patch to fix this. As the time of merging to > > > next-eventdev tree it was not the case. > > > > Sure. I'll send a patch regarding this. > > > > > > > > > > > > > > + * The number of events dequeued is the number of scheduler contexts held > > > by > > > > > + * this port. These contexts are automatically released in the next > > > > > + * rte_event_dequeue_burst() invocation, or invoking > > > > > rte_event_enqueue_burst() > > > > > + * with RTE_EVENT_OP_RELEASE operation can be used to release the > > > > > + * contexts early. > > > > > + * > > > > > + * @param dev_id > > > > > + * The identifier of the device. > > > > > + * @param port_id > > > > > + * The identifier of the event port. > > > > > + * @param[out] ev > > > > > + * Points to an array of *nb_events* objects of type *rte_event* structure > > > > > + * for output to be populated with the dequeued event objects. > > > > > + * @param nb_events > > > > > + * The maximum number of event objects to dequeue, typically number of > > > > > + * rte_event_port_dequeue_depth() available for this port. > > > > > + * > > > > > + * @param timeout_ticks > > > > > + * - 0 no-wait, returns immediately if there is no event. > > > > > + * - >0 wait for the event, if the device is configured with > > > > > + * RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT then this function will > > > > > wait until > > > > > + * the event available or *timeout_ticks* time. > > > > > > > > Just for understanding - Is expectation that rte_event_dequeue_burst() will > > > wait till timeout > > > > unless requested number of events (nb_events) are not received on the event > > > port? > > > > > > Yes. If you need any change then a send RFC patch for the header file > > > change. > > "at least one event available" Looks good to me. If there no objections then you can send a patch to update the header file. > > The API should not wait, if at least one event is available to discard the > timeout value. > > the *timeout* is valid only until the first event is received (even when > multiple events are requested) and driver will only checking for further > events availability and return as many events as it is able to get in its > processing loop. > > > > > > > > > > > > > > + * if the device is not configured with > > > > > RTE_EVENT_DEV_CFG_PER_DEQUEUE_TIMEOUT > > > > > + * then this function will wait until the event available or > > > > > + * *dequeue_timeout_ns* ns which was previously supplied to > > > > > + * rte_event_dev_configure() > > > > > + * > > > > > + * @return > > > > > + * The number of event objects actually dequeued from the port. The return > > > > > + * value can be less than the value of the *nb_events* parameter when the > > > > > + * event port's queue is not full. > > > > > + * > > > > > + * @see rte_event_port_dequeue_depth() > > > > > + */ > > > > > +uint16_t > > > > > +rte_event_dequeue_burst(uint8_t dev_id, uint8_t port_id, struct rte_event > > > > > ev[], > > > > > + uint16_t nb_events, uint64_t timeout_ticks); > > > > > + > > > > > > > > > > > > > > > > Regards, > > > > Nipun > > > >