From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0053.outbound.protection.outlook.com [104.47.34.53]) by dpdk.org (Postfix) with ESMTP id A48B4106A for ; Thu, 8 Dec 2016 21:41:26 +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=NEXJyKSqlLCT6qs6uNblAWnBBx9VCocDRAgbumaSvLo=; b=IUg5RRPWy250T5T94XKWC0KzoPTU2+ahzbrPGX7wWMRItpjjzOYzzSGje5Hdz7JIQjeWLKVtaEKyZL/DNQaFcnfit2H+EJVDiTUENXD/UpujPIDrnC2kE4agvo+hYhYj6drtNIneRmDG0S/wSChil1gnJ3u1JjcnUT6vQ+D0mxY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from svelivela-lt.caveonetworks.com (50.233.148.156) by BLUPR0701MB1715.namprd07.prod.outlook.com (10.163.85.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6; Thu, 8 Dec 2016 20:41:19 +0000 Date: Fri, 9 Dec 2016 02:11:15 +0530 From: Jerin Jacob To: Bruce Richardson CC: , , , , Message-ID: <20161208204115.GA13798@svelivela-lt.caveonetworks.com> References: <1479447902-3700-2-git-send-email-jerin.jacob@caviumnetworks.com> <1480996340-29871-1-git-send-email-jerin.jacob@caviumnetworks.com> <1480996340-29871-2-git-send-email-jerin.jacob@caviumnetworks.com> <20161206165119.GB22224@bricha3-MOBL3.ger.corp.intel.com> <20161207185303.GA7001@svelivela-lt.caveonetworks.com> <20161208093048.GA55440@bricha3-MOBL3.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20161208093048.GA55440@bricha3-MOBL3.ger.corp.intel.com> User-Agent: Mutt/1.7.1 (2016-10-04) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: DM5PR21CA0027.namprd21.prod.outlook.com (10.172.92.141) To BLUPR0701MB1715.namprd07.prod.outlook.com (10.163.85.141) X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1715; 2:mIDB+EUa+cG4VOlMAAfq0neWnn/X4aHUkByl9Adb4/JmYvOX2GKc2GZP8H6MZ+CbeMxe//rWL5Bx1ZVGmftPn8ojmclXg1DBMhATEfNlnPeP60QKSpHFGjyUgLX5xJ6i2a4aRzhAgdES7KcixJ6SlGueDH+ut8vxcd8Zs/51IGY=; 3:ZQqcvtOXLaIRaPshbW17ngjKuFHcPrumMd+MT0ibWLbR/soRhSnRlWHOmNnkacDhQDzAJGZ0UWxtoL9Y5LvtaivhqshEKIPjQpGD5jozzal9Hjog0kOZ7ZqMkGL67MdVPI1uHCMHxMaZzO/d1yTT0nxPgH60NH3G0uwgch8Ad7c= X-MS-Office365-Filtering-Correlation-Id: 28739fe8-74bc-4ab7-e4cf-08d41faa9128 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1715; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1715; 25:JVelaJT41gmTVHVP7uLn9DLMpTuYtpTPqzxZFsvUWx9UFhA6teUSKAR1vSuZaVm9hCdk723kG3nTPXesiqcYKhzS8b9vsSp4ZD3eVUlXmYFFu978zm/m2Zj5HwufLHId5XDh8OEGoKnIOLwYytBnVvxN4WsoFcD5URlZHwOXoKE55zgExG+L3kfIYj4+OwIQMcL+UCAhivIDm1CaycdbdqqmFE4U+XsLUR4hFvP4nJsw7VZFKTHsBW8sJjrn1HxJ2JORWkOHAc06GFYIXEw8aJ9EYlXHkh4uA43Fq8JZe2GiUojUWXNoCRFTFngA5RPxT5cjMUNQPui2gYELA8bxFihM6fYZ5hC6POzsYChefk6hksssGtsKTsaOKI9FhkhXzfICU0xkJdgQfGlzs/QwwU7kM+gkFPPVACW6/HU+tF+aorB/mHJDsYp1ujvWFCHyqtGud/plUbBsGW0KED8h9xUxvwf4mdExCwxpYdx3q8hci5nrmJzQg6kenw9qkplOcstj9o0vQ175wVXNQfBOl803TpqN2Ng/p9c+jWqmOwwMcB6rymTI1FS5tAewbF6HvUU2QvmY5UyDnIZ11lMRvb5h9HV4CW16klUQ6/656OFKIoHbxQlVnkWxiajkdR2hYFRIOcdENOb45rYg5ETinMeXZm81pBladzRhySxXxeayl3B6L6bzy5gjh07aar/8bGf47VWSiBDmiaN3xUQ/8kZ8NXe8H3aslwnaU0iYtv18InMSvMgHydg9c7e3b6wFst0vgh9Z/+aaRI4lLOU1mQ== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1715; 31:7cOxuZvY5cYddos3JQqhTpXAGibWKUqpBpbqcPYuVtggQSaNjaQUnf07H88mcH7CwogW+hz8yrXtd7767tI0+ebzwOVW/7O8pPH0IWmmoF7qWbRRwpT6hQ/5zV+k67gL3eCc4xdnWNQtO9tszhVsckBhLpCGLfucfMTOrFRS0FhjJiMFlT/WKd3XEXpwZ4AMjAfibnbG4JdlnPMyciCD9ZiJZluF0ekVrHUm3qadqbYZMbQKjJnJAcuX6NrjUfJjlIZKE2cUVuASm+NVFSDc/jAmf62kgGvpkVSBLRFAJynoNUMa0GyBc1enG6q8KbEU; 20:pEv8+AE/kTnxjtq98+C1zgjmHApX6nSixvQziLNGg7QFzBfxGnf8lXGKbqg/LtvjMiJnQUEmKkHVgWqCD1ugkHEcBMvK9q0UHBNwMB4XRvPIT8wksLIadDTva8tk5ug/p0G1Gzii+KK+YES8ZUw6B6hG+aenKnxNdRwjguFGkdMkJCyw6pmQWJUl8JK+oTZlqUdIXBQ8HytCsa8WKW7K7nXK8tnogGF+ol0ok551gQnX6A/Ny+yQ2HhecmdeXsOthJSD8TQGlwoWiS/zzyp8UQK5uCaPOAD5n782YxWG01XZ4AFvCCzuNe5Bm6LltF8j7Aqdx9oOC3YliMuv9+GSJxjsRW4oEj5I6IG3YzvH782VaHsnQ7Ml2ESMhosx1Y7RAoWxaUg1USNtI9b8FkAj4J5ad5MYIhGk593s1gANPtYjALfqPxW0cMZDdPNANx+MheQBeQzMRpetY5Jz8qMj1oCzSjWR0pcCYoikDL2LQVQzWLxclDWsL99tFZ70RuO1b2vQfMoCh5/xvjW55/Pn/ihNBlPy5f8IpmeL9VuFrKX6mBrwyI7XnX9dfMLnQwi8Kbqk1AWg2LIdkvtFUl+8W2gmY3MHW8UbChBQdyy3I0s= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(6072148); SRVR:BLUPR0701MB1715; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1715; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1715; 4:I9apezeE2RU7mLfcJ/NFktLlvB3e9VdomNdds79EnpBCjoAQg542bCN9QR4Bo8+tmY4LzmbKBumb7JNSuYK/O/g0RvKS7bbzumNsHjWuCH658qMeutrav7XDbzfK6nbzBRBRG96dLK4r2vM92dH4Mg29VLf30p7mZOfpBLHjGtTtHGFIt40O6Xk61hCoURdQo0YoCVyC4+RzxKuWa858HUERCmKxxPUx50vjJNizdAPDj1XzY0kYin2dI+byxqFkuHduxKAfx/gNq4OwRB+cO+Aq+rZjPyIue5bsJVa0fg1umVhy/h7idRTw28ZAEFb3al3QHbQ4oUrzS0VLQxK94F3+5JabcEE/+uQFH8Yvx4+YctDWtdJmrW+yB185F9LI+7ziHL1KpUzkNsVhv/po/LXiXWlAxpBXg0kihoMoVh3of7+PucPEzG+CuThrS16Greior0Jhm/exW+N+C75sQ5tc3jX1PPuwJgCXSV7g4Z3Itm1HiwPdhz1cSBsM4hiCGzcDqSc4sQKNTMdkogLNi42n97bJubm/sTVg52SAmAEPucC3cC5cHOaxMEscxlZheHWdHT4h+p8/zKQg9x0+VmaftSUMTI/IQRR4WqmHRQFbeBGKEMgxdpfEO+G9748q X-Forefront-PRVS: 0150F3F97D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(39410400002)(39840400002)(39850400002)(189002)(24454002)(199003)(50986999)(8666005)(733004)(6666003)(4001350100001)(76176999)(4326007)(81156014)(23726003)(66066001)(6506006)(46406003)(189998001)(6116002)(97736004)(93886004)(305945005)(92566002)(229853002)(7736002)(101416001)(9686002)(2906002)(33656002)(106356001)(83506001)(2950100002)(38730400001)(81166006)(8676002)(1076002)(68736007)(110136003)(42882006)(5660300001)(6916009)(3846002)(97756001)(50466002)(69596002)(105586002)(42186005)(54356999)(53416004)(47776003)(18370500001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1715; H:svelivela-lt.caveonetworks.com; 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; BLUPR0701MB1715; 23:PJWnjSoC8gOFjC4c1rsdGnscDc14+HelbfJqB3j?= =?us-ascii?Q?p27Ikqd/MGMVmRCEtaWJ8q9oRvOBmkZCIgQZUcWSGmCiT+dkeFP8dpjBgPyv?= =?us-ascii?Q?IGNY9pDoTgYIq4wqV2fYat5YnqBeDT30Rn8qPXmlNBkWMjgAEqSKjh7TKJtd?= =?us-ascii?Q?hGpip+J3V0f2thVM9NvPCr4IhdKuaEz5PsWcdAhrUj/2qhtcTGHAY/HgZfqi?= =?us-ascii?Q?o71tYsmccMNerau2+kz17aXKcD83x5lt5zr3MvMi5uOfmq2YLpaenMku3shw?= =?us-ascii?Q?tGZsOUd8fKjHd6BQy14XJQQTgaq9eO+W0kh2PQlB5/nN5uSDkbuW0anLi5rb?= =?us-ascii?Q?LyZzt24uqDY4O8vFTU+H3l0Pvoe+UaAKfr6ukaCDIWiysrYeQo37yG1N2spl?= =?us-ascii?Q?8/J2wAzSeskOPXA4H8hXtce3DgqtsM9MR9u7NKE8JXkA5kerg87MQ9TEapzZ?= =?us-ascii?Q?r5RJS85FiC8Uf0pDIS9+/7jQR8vX71TGbLHbLr3mVGXXMrUkvPCmxcy+IA6T?= =?us-ascii?Q?ku/pTfUlvaRTwEgP5FixxXSO62OApBjSfNnPTur0iuC9TDk1coku9vJYxIXO?= =?us-ascii?Q?uuM1ZSIp5WqF4s5wF3gLzJnInQ+0xUtTAgsp4JV3SIreZCkAuAgclvsRU686?= =?us-ascii?Q?cPXI0VYT0HSpzuCbz0/gkJezQPywgVUdpuQM5XwrDMR1WtImSk3T5FSZlLMP?= =?us-ascii?Q?+Oc7z7lKX5lhQ7MmT+qa+Z3xlj6RAU3KCJ4F4fiIknbU/76DJP3w/j/GwIMg?= =?us-ascii?Q?7SH1TmmORT/2UdbOx1GP5dZ3rhDJEdkmIaVaWTFe51LOLrXaVIPQZUcElaWo?= =?us-ascii?Q?e/nsmn90j+YN3wbOrHcXjrW8ui6ePR+4Am9MPzzxsUp8SmmcaeUX4pjForGS?= =?us-ascii?Q?N9NAxLM1Fzso6GTdOuCMhJpegkZFQCXILjjpgpXDbUmkoKuS3xEqpI4oXXA6?= =?us-ascii?Q?3pfqyYr0vEAwY47z2mTjlRMTTWNeZXRN+twjIzCKcodwIp6BwkDgvWrAVLKn?= =?us-ascii?Q?88VR1Yhcz0V7TRG4UFi/1BZrbyVp/wtl/46ItcdvcYtSl/Q1H5YlZ7r8uVs6?= =?us-ascii?Q?IPda9/Bo5l+6hNgD87VXxehghbf6QpOHGAZUlZ81jRzPzMv0ShhPJOldGp+w?= =?us-ascii?Q?izhsVvZbyDRLO37yai+VZK+iXEGQl0aExYOhskLu1CEqn1rmo9AqcQDRRmx+?= =?us-ascii?Q?XhWjhOfmveNkNmzp+28i+Y9LBjpwqTkEhTwhCkl9A5AKLYKywqnkAJknZR66?= =?us-ascii?Q?Pmo5Aa59cX7IYy/5SzeJvtBNqKpSu85fL7buk7lDDzRVtigNp9781lk+yrdw?= =?us-ascii?Q?WRrgPN9L5aJoGBg9WPeL7dGWMF8kvWy03eN1wWi+5itG/I7Sj+h5Bl1/EQ53?= =?us-ascii?Q?+jARVBo8Aa37BMGY6PDJ0pq8t6kFgEy3i2xJJyEPkqoTpP/hE?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1715; 6:J/zOd3vGxlMh7ObOVX9SiPY9lOMbdRXofHEkQSPKxE4DMPpvVjFNX4YPjlnmdsW5jGOuzNJ71idJ6Q+lFTpq3jD+to1aWIvMC1RibjlKAW+cxmvfXlxnjfc9ujfTHuSSZIz3/9w7R+2IkI7PflzDasCs0Q1ydw9kgguAJAwKYrkp9O94XzPSssY1iwJbpe44NNmxme4saK2WwP20vFhuhQ1LIfUFAYTsE3FcXaxUR4D3LPp1HTpuhO8fTFjCGISrh3VwY0ZFQfiF5ZnZ3NeQG8PcKkbOh6cpeueWklGDyQMuppGfZq61jt5T6M7RoTEWsYggqvkiXEiX4XPhCaIAA2xCYVmbxE/goc/UzwbxyRM=; 5:0iOVhivqTEZFXBmRzdCzuKCRjn1AA6lgCSxxCZnN2lKqy5uyIx3kgb7h7TVpEBoXglhm41nRn9WuUVcQOkhKRJn+piJnj85pojteK0LSPjgzhcwKrOaCy5pKYvfhoKi1nUBux//Bu/2zxD2qPpDpyA==; 24:aCAVNI5bMGGR28zTysYtg209BKjSVdPEPjSU7L1R/8mEr/D0qjzgr9OKfXdkzKn0ToEASVo6aoNQlGIFJnvA71/57YEkwHgEOWBF7mffmoo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1715; 7:7RQCeUUZO0bQlyXgPD1mzZFyVXYKwp+AA5W9aV0WwtjCOZ9ii3wuRFtjAOQ/KlBMvczQX7yQBzVeU4y/lhKXzr9SCzAkysJa1+mcwEQTucmEJ7WlYDqjR6CsLgB+5LEl6xNIBJSADdH+RQl51sLYsX+LJNoWXILlkbay30MRgM4ribhaz4crgMmO6wYlfQ2np3cX0ud6Ub/AzUERKEadPGAVVTL4ZcIM70VmU1eVpEp92Y3asYZQysi7RcH3O8YN9TdRKYqRiE4RrodhmHtVx+6Cu45uIdcypDDDvZh0esJin2CmVDiHlf40QJeUDxR55HCKV1wYE+chpvUpHZsfb+86DVhPGRT3rlXb7aL9QQM= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2016 20:41:19.9243 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1715 Subject: Re: [dpdk-dev] [PATCH v2 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: Thu, 08 Dec 2016 20:41:27 -0000 On Thu, Dec 08, 2016 at 09:30:49AM +0000, Bruce Richardson wrote: > On Thu, Dec 08, 2016 at 12:23:03AM +0530, Jerin Jacob wrote: > > On Tue, Dec 06, 2016 at 04:51:19PM +0000, Bruce Richardson wrote: > > > On Tue, Dec 06, 2016 at 09:22:15AM +0530, Jerin Jacob wrote: > > > > 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 > > > > --- > > > > + /** WORD1 */ > > > > + RTE_STD_C11 > > > > + union { > > > > + uint64_t u64; > > > > + /**< Opaque 64-bit value */ > > > > + uintptr_t event_ptr; > > > > + /**< Opaque event pointer */ > > > > > > Since we have a uint64_t member of the union, might this be better as a > > > void * rather than uintptr_t? > > > > No strong opinion here. For me, uintptr_t looks clean. > > But, It is OK to change to void* as per your input. > > > > > > > > > + struct rte_mbuf *mbuf; > > > > + /**< mbuf pointer if dequeued event is associated with mbuf */ > > > > + }; > > > > +}; > > > > + > > > > > > > +/** > > > > + * Link multiple source event queues supplied in *rte_event_queue_link* > > > > + * structure as *queue_id* to the destination event port designated by its > > > > + * *port_id* on the event device designated by its *dev_id*. > > > > + * > > > > + * The link establishment shall enable the event port *port_id* from > > > > + * receiving events from the specified event queue *queue_id* > > > > + * > > > > + * An event queue may link to one or more event ports. > > > > + * The number of links can be established from an event queue to event port is > > > > + * implementation defined. > > > > + * > > > > + * Event queue(s) to event port link establishment can be changed at runtime > > > > + * without re-configuring the device to support scaling and to reduce the > > > > + * latency of critical work by establishing the link with more event ports > > > > + * at runtime. > > > > > > I think this might need to be clarified. The device doesn't need to be > > > reconfigured, but does it need to be stopped? In SW implementation, this > > > affects how much we have to make things thread-safe. At minimum I think > > > we should limit this to having only one thread call the function at a > > > time, but we may allow enqueue dequeue ops from the data plane to run > > > in parallel. > > > > Cavium implementation can change it at runtime without re-configuring or stopping > > the device to support runtime load balancing from the application perspective. > > > > AFAIK, link establishment is _NOT_ fast path API. But the application > > can invoke it from worker thread whenever there is a need for re-wiring > > the queue to port connection for better explicit load balancing. IMO, A > > software implementation with lock is fine here as we don't use this in > > fastpath. > > > > Thoughts? > > > > > I agree that it's obviously not fast-path. Therefore I suggest that we > document that this API should be safe to call while the data path is in > operation, but that it should not be called by multiple cores > simultaneously i.e. single-writer, multi-reader safe, but not > multi-writer safe. Does that seem reasonable to you? If I understand it correctly, per "event port" their will be ONLY ONE writer at time. i.e, In the valid case, Following two can be invoked in parallel rte_event_port_link(dev_id, 0 /*port_id*/,..) rte_event_port_link(dev_id, 1 /*port_id*/,..) But, not invoking rte_event_port_link() on the _same_ event port in parallel Are we on same page? Jerin > > /Bruce