From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0071.outbound.protection.outlook.com [104.47.40.71]) by dpdk.org (Postfix) with ESMTP id A3BD5201 for ; Wed, 14 Dec 2016 07:56:20 +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=sJQFHtx+hQP1z79jwQOlSheUW4LKGAnsqBYG36JBdMI=; b=H1bpNCRfs9Oxk7P2tXJyjGS/u4g2x3GdzBdJN1B+f+nioDHasM8XCAEH8NeK2WCmj5WSIDeYVfx49rZaTuy3nlcMtClp/BVHyY8jMFhGkddq5AP4TdLZhWX5rTM/yrdwnaTpaNoqAGowX60qiVBLV6sUOfNFscwQVvI7E8xHQzg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain (122.166.153.127) by BY1PR0701MB1722.namprd07.prod.outlook.com (10.162.111.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12; Wed, 14 Dec 2016 06:56:15 +0000 Date: Wed, 14 Dec 2016 12:25:54 +0530 From: Jerin Jacob To: Bruce Richardson CC: , , , , Message-ID: <20161214065552.GC21135@localhost.localdomain> 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> <20161208204115.GA13798@svelivela-lt.caveonetworks.com> <20161209151142.GA14536@bricha3-MOBL3.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20161209151142.GA14536@bricha3-MOBL3.ger.corp.intel.com> User-Agent: Mutt/1.7.1 (2016-10-04) X-Originating-IP: [122.166.153.127] X-ClientProxiedBy: MAXPR01CA0005.INDPRD01.PROD.OUTLOOK.COM (10.164.147.12) To BY1PR0701MB1722.namprd07.prod.outlook.com (10.162.111.141) X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1722; 2:YtlmlnYNqd0W5MVgushxddapAKs8OQXPCTbAJdsWdL7QOuEd+XS8okEDLpqAHZggDBpgGcRTd59tBaItrJ7zm7Z3GlHUeepKhbEAflXMYDmwYaD8iDJkBjFsg4VR/4OsP4xpJnzo2jJhfuDMfHmyTfGnPxGXVpm36gPMGj8Z//U=; 3:FPxYGbOVYe+gr9tIDVPmkxqeNuTQIcDCok1FFfxZ17UFAsn5AenLmDvrV/s/PKBP47hdV+6WBYvv5YuUREb0zDVkaP+PXz206xDzwiZZ0n8ObpnHgn8CMUumwmlVmTI5ev2DUDfEH7a9YLmDkolCN+yqesspnVZHQzCNCO3SFjg= X-MS-Office365-Filtering-Correlation-Id: 9848fc3e-010b-4091-a6d7-08d423ee4d92 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY1PR0701MB1722; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1722; 25:oRC8FDrafDXWfqV2vHTmiisaIi/Q4cNTVLrGRs1jDqooKSIbLo513UDL4rCLoAQuzyi8MadCgqLp3n4/BKSHglbOWeSn8xXIaqJvlMS1NWcroql9UOQ3gX76yMX4UC8tn8bytfvByPRJd693K7ny+cWV+QLcYUIMzGIMXBjFd443NnRwp6MhNQMOdTY8EZ++RI6VYcic/g+9YrYgE+dsZUlUUW0PxcPaCPT7E3yYDWKnQ5bw4kuP9OvWu+XjxXe6caYiafGZ90pgm0tlYPOXmtlnSDi1bzc0jJhsYrKhmceuP5tL0pHen3kRPI9QVVMCTs9qjiS9mxuCA4YZqzu2nOElphCJKhS8pg3pJOdE9WDZOyEhGNXwX6sICQKow/hvACDFMSrDUDz1rJWuLDgvwtfxGmtSMMKejld2tpZt9pcdMSXpmFue+gOPgynTR8BLF1bJQptqg7XjtXlUjtjBkNZh2+T7SwCAeT9LZHMALo//QCD0i2/NHX2g1GPDMOujhU/h8Lw/TEOZtgd5HvrFuPqWGJff8ulDLkO9/noS/dPufckT3Ebvr0uYE7wkSG1N3e++9Og+kyHqIqKN25ZZLpSWjSl+4gsYgQ9EdG7JPFBusciJSE/AtBoOpLxDqXiLMvMbQKBcGvqfgYCnWZhgg7w7fHyIQ6qHV/uWkNhVds6ytjYZTgFLmcsjgC0FLaGvip8NHm8EY5UqFA0rlF5m5eBNj5DTBUoHdR01YYzq4VHM1juu48JrUGfbIE2rT7BQszzmF4/u82WTKEcHXW25PmesqOfy79zTHtT56VDHoHY= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1722; 31:kh5YOaEhcxW63JFIS58AGvYQHegWlYak2F5FNCLAB9AtLvwNybDXKG1Pdw5bz5vCAtOk+eVsRd4oUalvxZlBOmmZFCLE/5fDQ2Q+BbbDoux5d753dkxAJJSzhiIJhsXUw4SOLtPVAUuBv/wwHnPdFukQ/rnRovccuoe3G9nxrMcSrTDlwpfP4Pob3s3oK62GeNebRnaejh2kvMIpQ7sBDxjLdjIEsrT1MC0gmq2ruNfiUHXS/mzgwPwXasB5O8cCW5vzWM5whSyRpmrBTD2mrWSi+1G51dtxjZrL8SnZH4g=; 20:+w08k3XoQtCgyBKMQ9fEYNxjyqQ/VEo/z2Wr/VsvA3Xh+zNPz4CbYmZVVYT236u8mlLMfk2yq+az/Y3gkRODoxTInZEYvWXFfK9pkHyC7wRHLMKRqqMuD6jdMadWwApEZ1Bc0ku2pDueFSrDZqWUCHSFMnjtJbhFWJfxyIlbywS4Eb7B8QzCVDUuw/cIedeWtF/fxLGONxkkHUezALLNymhD8KrhlrG9Lv4atHfhQ/XR4SyxcvMNbrmSXQcQv5d6VDblBYqjCvn7TOsjf9aQio3GZs0q/tC1EKSLhojNJRohbYk1wZIcKvI3GzEu9ciMtq/KayiJpl+xkDDgknIvQlsGpJyrWQzQAlla+mi7mMC7Vo4Y5ZbBrVJnJG9YW5K4T9CsJqZrqLYQaj5HgAQ85dQcEjerrxKBkjgE/BmPhlCZpRFs9bLeUEtmzP/4mXwzsIyy18HpccecUkhvt7AwdUNA4UwLVNeWiw44evp91/nop73dy/GxPZ1Y/xgyfdhs/BKrH8noKVJI7eERVzD+zu2fTzEILDmmuSJTJL8Sm6MUUksiFrNaOImDZXKrIQ+wKREcTP4YS1OkXuWChA8Df/v0ezYNpNtgrS/u2PWZ+AY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123564025)(20161123558021)(20161123562025)(20161123560025)(20161123555025)(6072148); SRVR:BY1PR0701MB1722; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0701MB1722; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1722; 4:1/KmcRuQ6xuiGhfQMWkA3gmLzHcdcYyQO4gtiWRkEQ4zoITL43K9vGTkYTg+cwCycaiqkPK0qc9lQHOVKL7X4DoDhAimlTElQnR+Ch3e3XMagC06oXM3A7GjLGzbMg7E9eK3j9cy7zo9JRN++T0zADbyeIwMVp1b+FRoqGM0qc5xKwH2yZXhY1JOULjSpV9NHvQdvtXrggauALmJFlQdN40Np1A/QxTEX2lYGNXs6inCH9O1AwRIPNUluQx53ZAbYnAFfmDun/qRr7VWsj+Ov/uKsvc9swBUbPbSSfP1GhCV7D3JHMX9V5Z6mOry+w/81gg0Mrr4TLBGB7pbZQAGXXhdPBKwBfKm3HiN7HvnyC8lsHOQSh/msCDics7/z8w/DmpMbjYbtQFQvIVuM1Q/PhEIKOoCaUAf98GFLRr5aRMcH3UqeXmz0Nx5Y8M8v81ZDKaRLYvk6cD18604pUuq6sgke/D3Esqxf0mWzs9Ex9BqcSprbwBnaqZi+K/rgr/no7CknPOrfSuhpbN/sfuDppURt5c4q/5NhZuG/H3Y5V3zT20p6TbF/WUf3WKdVvt+WMJxEaA6VXYKTxWXa0ekDDEm3CTJU9dqIqeVfs1nPjE= X-Forefront-PRVS: 01565FED4C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39410400002)(39450400003)(39840400002)(24454002)(189002)(199003)(6666003)(4326007)(97756001)(2950100002)(110136003)(105586002)(83506001)(61506002)(97736004)(6916009)(42882006)(54356999)(50466002)(5660300001)(42186005)(68736007)(50986999)(4001350100001)(66066001)(106356001)(38730400001)(101416001)(23726003)(2906002)(3846002)(8666005)(1076002)(305945005)(7736002)(33656002)(76176999)(93886004)(6116002)(81166006)(8676002)(81156014)(6506006)(46406003)(92566002)(47776003)(189998001)(229853002)(9686002)(18370500001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1722; 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; BY1PR0701MB1722; 23:jgXZsC6vY5COicj8UeHmZeHROoFNKg+wMZOY2MB?= =?us-ascii?Q?EQLDUfMYs2TJQLBWJcMgI/v+En7UfhE6C37StmBiDABl9YIq+bnOJu0shBnS?= =?us-ascii?Q?7l9yUnTtjvbBxC21UaO5pUm2yOFH+zq0JJ63CV5vQLeLCR4hoXxW2ZvMNnJL?= =?us-ascii?Q?p44XO0/AKUEiV4f1qiCDvVOcSWuFPz2dA/v0lfMxg0nqMXbeUTtdN+OGNKTh?= =?us-ascii?Q?QAq3pC3lbo3VX7qTK3y07GA/vpCy3sCyDt/ppPVav+/yqRLXFIsgtQkyhDHj?= =?us-ascii?Q?qk9xYPUnakZFQpQjDKr8KrTL/VpV2YHOVg0OwlpZ03Av0/y8UQz7aDGQuiyQ?= =?us-ascii?Q?RIYWBXeKL7yuinxAYXfrbu7fHdJIRdylg4DQI3+tIKk7xLk38uLbZjoEZhJU?= =?us-ascii?Q?xhLgHQHP80lM5/thCa3SwAz5k4wt8LZ8lLAjN9ZOS4k/eWUPZIZ22RgOzfnx?= =?us-ascii?Q?CgN/CADLRLfpTW0Aa3DbEQRwqwuuTHvE3yikpisq/QFO3FXkdbqQICNW19a5?= =?us-ascii?Q?USXby/4pLc81UnDq1fgv2gcJODKHD4NwZ9+uKrCNPHrr2Y2Tyj7guXuy2SgR?= =?us-ascii?Q?Zcf2cjh/q7ut3G/A+X7UosKgNyAFawfrfEU3pCTfEMDbYX7Iz1PtsGPZM4gg?= =?us-ascii?Q?jhhZTSNrRV+2PNGlK/XKCNJ3PwzAc9nmjTh5yu4pbCObD65H/1KpJ7FZQDbV?= =?us-ascii?Q?BQTkBWSAYkpB4tHiqNKAdJtDX2hBsVS2aU7vsjLMRkRFQniQa1tpAVNtldTs?= =?us-ascii?Q?2qWHSN52k9Sq4kthvN/cv6em1Vo7dcHNKbsL9cPvlNnsIJdNClbxdAQKpxj2?= =?us-ascii?Q?THSHkKsUpmor0rB+x5IF+Bk1+ACfHQe0saIwmoHz/XyeIdmAdMLIVoXh3muF?= =?us-ascii?Q?Iu/pAIJ3KFaHZyq7RbaTc9a2eIgWNIRgHnr6ENRhaCP2RohpFruXLYuenHaF?= =?us-ascii?Q?h9kXxMwkm8Ll54oEQn8n8JbePpRxHK4pN6ggsChgY01CeKB5MnCh1aanV7Wu?= =?us-ascii?Q?AcG6l922NIf8ENI4+f8rR98xY6soYGZTrsQq/mayK9N6Rn902XNeyX1xFp8K?= =?us-ascii?Q?oTEvq1RVCtdpdzgtOhEWXZV1TqhXJujtlHtt3kNknPCJPGis2pT7yHZV55zt?= =?us-ascii?Q?MMRUbb7itHWG+ozPPqZJOTrSGJUwrD/BJXMxXo+YJKANrizK8R1xdLQAUQPu?= =?us-ascii?Q?5+iIsdwgxxWF2VbgQYLgRgABGSbfi8sH97rADh4dTOLqW8zO2AqH0ZIXksps?= =?us-ascii?Q?OoATWuX9c5q6HJqNYdARrolR85UUqAD5e9zYW+Ne1lD+0p9kX6NQ3Gi3WTVF?= =?us-ascii?Q?9MCq6VC2n0C4nl3EaAYMa1bPjIHM0fJcCFGN9UILRRIsCPqpf86Zs9J5uq6O?= =?us-ascii?Q?IcB/9uw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1722; 6:iFOaTmiox28RmPZjioz15FAA9bgrsEcvxF3kkxtvl+Ty6KJ6xNnRlRTo0ZQIg1pGr679+JMO2wWdVUu01p+7H8VO2C7VRureh5nwZJVtJ77LypQc3WsSfgzm5lIUZjxus5mJ8MhB1cA1iYmDJRfJzmFq37yR2c7B8tk3GVDgm5XVHFExEDwdpsCkdTlPUmMSiSo7UVlhSePPQrFHpQmZkDQvJ5Ds8jSayFGTJluN6R2NTn2VOFau9iZRL10mQP7inN2KKtlxwqcQjDzJ7pVbhG6MAn1S8Yx1cBpzZY/9a+FWPEULejh2JyU4lTcj1O60; 5:ZM/uzge9VL6Fs3PzMChXPm0pAzA2EJvNBy8dZUd61N6vrTcKRq4keDSFrBWiBND/Q3PR2SPAPo2RoQRWspIL7S8kRVvDCK70Tnt3xwqCftxvhvR9rnLMnUZwjpQlQquxV1fILeiWeBXXXYtf9F+PUu+LW8MrpgCljZ4BIhjWpA8=; 24:v7nZzCImwTL6lUS7xLthMiGXUno0U9Vk8yGqZ64PLiFJ2/CRdtJgE05KNIrQxki7u95ogdDW8ENRRGKwcmUJ8kEyrgki2tfgwGl7duUDXBg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1722; 7:rz9enFxM9LiOZMcT37yDfgDV5xdfSjvm7kktQTJQhvjiLvITHikWxlp2r5zy4+0Zu+im0CwW6b0BuOR9TNSkA3K2dZ+9p11Jj8uyaYM9+2NWsRZhKFNKqImwtA/qZpHMIj6oXZEdjg6CliJEeaekkHCrcaWZg/FASZoAvTuys3yGSP7HgrPM2Ab0NUuRQ1X0nu5SsFZqNtxbL132FLfjhQsFecr7J8ArMTfNFhR1Sgwt5Aeiy6Dy1NShWca+QVkMZUifsY71e0DUCkNBK9sKI0EWnMzRqLb6H5CLf1s6dQS0cm/ezbHva8tXn5eJAyWzXIUCvLG6NXj09ZA1BgeKTU05K2pMbtjWDUiW1i7eXtU= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2016 06:56:15.0306 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1722 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: Wed, 14 Dec 2016 06:56:21 -0000 On Fri, Dec 09, 2016 at 03:11:42PM +0000, Bruce Richardson wrote: > On Fri, Dec 09, 2016 at 02:11:15AM +0530, Jerin Jacob wrote: > > 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: > > > > > 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 > > > Not entirely. Since our current software implementation pushes the events > from the internal queues to the ports, rather than having the ports pull > the events, the links are tracked at the qid level rather than at the > port one. So having two link operations on two separate ports at the > same time could actually conflict for us, because they attempt to modify > the mappings for the same queue. That's why for us the number of > simultaneous link calls is important. > However, given that this is not fast-path, we can probably work around > this with locking internally. The main ask is that we explicitly Yes, It is in slow-path. IMO, no harm in adding the lock internally and it helps the application too. > document what are the expected safe and unsafe conditions under which > this call can be made. As we agreed and it is a norm in DPDK that operation on same queue id (in our case same port id) _cannot_ not be invoked in parallel. Apart from the above constrain, Let us know what are other constrains you want to add(if any). > > /Bruce