From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0061.outbound.protection.outlook.com [104.47.36.61]) by dpdk.org (Postfix) with ESMTP id 9BC275A6E for ; Tue, 2 May 2017 18:01:11 +0200 (CEST) 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=2T6a02R+mbvzr00v2ntzBpISquP/yeM48dA/yoG4m+A=; b=FsIwlHNykr430FkQwpaaPHTFF+8aQVcAmsxlHVIOl7THmZ2KuvwqvP1oAg+hh4Bv2bXlcVIvmvVZQOiNPRAahdQWwPaTp7sn+HcybvBqWi6lZyJr2JEoqmP6Qbp9lzzw/FsL+DsUERhjGRDNmnkgCYCLC4Yi2MptxpzkqQBGoAc= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin (106.201.122.214) by BN3PR0701MB1718.namprd07.prod.outlook.com (10.163.39.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12; Tue, 2 May 2017 16:01:06 +0000 Date: Tue, 2 May 2017 21:30:43 +0530 From: Jerin Jacob To: "Eads, Gage" Cc: "dev@dpdk.org" , "Richardson, Bruce" , "Van Haaren, Harry" , "hemant.agrawal@nxp.com" , "nipun.gupta@nxp.com" , "Vangati, Narender" Message-ID: <20170502155920.GA2664@jerin> References: <20170418132307.1888-1-jerin.jacob@caviumnetworks.com> <9184057F7FC11744A2107296B6B8EB1E01EA280D@FMSMSX108.amr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E01EA280D@FMSMSX108.amr.corp.intel.com> User-Agent: Mutt/1.8.2 (2017-04-18) X-Originating-IP: [106.201.122.214] X-ClientProxiedBy: MA1PR01CA0032.INDPRD01.PROD.OUTLOOK.COM (10.164.117.39) To BN3PR0701MB1718.namprd07.prod.outlook.com (10.163.39.17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 811e3a09-7b3d-4683-4ae5-08d4917472e7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN3PR0701MB1718; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 3:tovxwsOKQFlQst79+lVoQwjLUOuW7ZduK2+P0uxppzJS1N81HN4BopoJadlREVEGKQfKpVhoxIWAollQ0TLKojaaSdQnbzt/E0CKoYy4xIwGi4wNjHTvc5k+NwOxEQrXK+LinadmdrN9m8o4VTrMejoPZfYY4+z9juLOhPQ/CleH7ccHkcJPF1FVXoJHblHsfEEL5YowExGIg0MAqLL8Odtt4z7a+rx7MEBTbd0DInZJiInljnkdpm5DX4rO0OoRqLgtlaIuC4dVv+LSki19BKt+SFdc6jExlvbXegkZ4SXT2YmC6j8NW6sPx/JeM4LAfsRPYGXqjxcJFr5+a2rp7w==; 25:UKx1ScJMssAIppWGdrYa/jUxSYA5fY4aNNDdpiW5uj8jqyygjcjKgmrbPhzH8TQrM6TfIP8bzJXlHLiPWyKqIjuX3VoGtd+GSkXEJWn8BtkHPjkuZcU/1Khfcb/eHuPzo83KIygaT/FYTjAvvHJaOd2zMsH5Re0Yqef6EBXQ0tZTKjOrPgSjDrF8xiwxzTiw1Cz8X0OVfWjuRW+GKPNlp8jJstbcENKS4jaDtfbbKtNM+n41ZzE+BZgsQqED6hqhqmsrZuRhp7dNgwj4JwXloxL2ZC6KgF3vKNaFRTgl0rTtjDzOh1MR8AEWnkYhihKrGkvqL/fl/4woO3VB6VoNXxn8rmwnC+JoFXF4eows/lOGWSWZR5L9s2uehFrS2BnSYzrFIoczOQFDPj0uPNaP892oAaG0DzMrztz7VujhwTXBPhRFfZ+PVmOIhPvmGvFR8bM3l6mOwEg22xBQ0xSY1g== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 31:mwmgU4rXxlxn65MRtbTM05042u3ixxXPr/Y+/Tw/hOklRvEupvIHcMgdAaD3pfm0FXPVDEjhKTDWMRnz6eSAcXNA+wN8wXSwGov/Psh4wQzp7RZi1YlgzOQR7QnoDUmuY3/ZPV/OJZmVfbdQGDp2XyG9UqlTR/RPvQNb4MzCcAC6la/ojM/B41r2bQSb74PqjhGacFE87WQegnlsdq0TO3KYXgqr/GQeah6pvK5YMEcXqTlJJFnSg8pkUls0Ob/ImS6/V4bjerY7f9gA27nqxA==; 20:DFKnqk97UR20h5vs53Heg4t8QCY8ewQriBJWGvrB9buT94Wr5KQaW+4ph4ShrCOzvThEy8d+O+p+yTc5rgD0MbJjWwRy/8ojL95E+aSDpM1xpT/c8GaakdmcmLB6ZfBOYTseFSsRRhOuRmk5GRAh2I90dg5DVpDYQ6Kmqmk1gAXaTU7sNAAlf+xQjLUs4vhVRD2LJr27VaVl/MgWqdvjc57iRUoc9c8FUrqG6z/n7DcS/ZPtCKnsHCXjuU4QdAD80f9TPtt8oHekiLqdIKenkib/+wbd4iuj9H6rzZhnkuzNZlIngUgGzAkznrPoQBAoIdl1jMpXnm3AA2arUED6/EIlVAnoIVCQCmB3gWG997EZPsBa3AGZfsBTabrQtkDiQux0GedUmYJmngyp3qlVh17DKoP+1SbG+eMvK+DBIuVX7z/dmnd9SHR8oM1T6YK24+JeHjT2kCkDeIbjjtoxx+IhS4X0ZScA3cpStB1m3Yc8T2+PMFi38OJWsUGPvg2UlDXGU4DMCT/k0lTXk0b1ZsdnqGcRsSiWTJNQEUedY0rq+H8rRH9KpeWZ5NfgfwtkqXvRcG7jopGRGxitIWv6H9pz02o8fUk+ETkzYlM831I= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148); SRVR:BN3PR0701MB1718; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1718; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 4:Xg2KvRrElZ6SYT3z8Cg5cJGffx4kbkI+8abLGLX5AwnOGyVdrXIM+0ZAYiDKC0w4wSY2H8fwljkYiEPulmx8FeDyeVPayy+FDMrxjjJWgT72HcdywvU5HE6Vg7j0ywlJjV6lYfVuV/Ad6rTioJwY++DGO+yCk1EojAHAPP3hNGzy3BRmACcGc0AECw0H1xPfTamc+EXlk2oUuhpOI53gfhyqvwwFLjbl+NlkMucSuojSpAmkwaLi0vib01rP2noZOsC37G+jvADzRu7pJRUKjN5mPfcZcFhGTU7Ofr+mlgM6xbDbQ+XLgz2+DhgoTIgKNQIT5a4/bRflgf7htlfLtY+YAJoh6F2csCHqlHrBvKiOmERHCBO7ITQxlWTKsMsQEYOit6ZJW6ys25kDM8cFu5qy/SJ/NGNu7DC+gr/gqOMM3YCgM0DtyqNrxgl455DnE8MkDQnMXgt2ME9WB9y+RwYJmPywYTaBvYvKk4kkmN+XFAwfwZoRWc+fkd3WY/VlvyeDPncia4okTJGsnYxolTndQKlRQb9No9+yXjVikykQAhXsqnHmDq4klhUty30UYbsjmwsRZY1gJv8outX1QNj5Vt2oOhcVZl1+WKzkGXLZSSyGxhg/Hk1/yJ284xsBRgKsIl6rP73CCe3dXPDGrbFIZPOyZWxprkZiS+o1L2Mxys8EZsRWAQd5TYF3G3baQpW5U5hxQh6qrJkrZ6lnC89SActJoqwZYpOqsEIUyoIz8kxpBKafC7W03HifLJ97lXyOlWV/Icz/Q6gPG61gGizTHAbmEvvaqp1acMMazPiHVjghXeCH4ve8L0ojEZD1rDjQy5HvKG1PJPUv96rbgQxGfK6YK4aONT+ofBb2nunQl0LI7v58ZOT6anweRGvC X-Forefront-PRVS: 02951C14DC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39850400002)(39400400002)(39840400002)(39450400003)(13464003)(50084003)(51914003)(229853002)(42882006)(54906002)(33716001)(55016002)(966004)(6666003)(2950100002)(6916009)(189998001)(8676002)(4326008)(54356999)(50986999)(47776003)(83506001)(6496005)(8656002)(66066001)(6246003)(53376002)(5660300001)(9686003)(38730400002)(50466002)(478600001)(53936002)(110136004)(6306002)(76176999)(7736002)(33656002)(25786009)(2906002)(4001350100001)(305945005)(6116002)(23726003)(5009440100003)(3846002)(81166006)(561944003)(42186005)(1076002)(533714002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1718; H:jerin; FPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1718; 23:CTdqXg6shMZUkWOkk+A+Z1BVyde8XMaeS9dqOPW?= =?us-ascii?Q?0LZ1yj6TmschMaRg2yQmGyVdprj9leHHmU1+HszlnYmG31DxvcNwjHXUsKms?= =?us-ascii?Q?UypSutV4GcIs0j+MiyaGB/m95LzoLiphfeLjN2ISSn8cTzuil1Z1Q589Qa22?= =?us-ascii?Q?UEW+hR6o2ETClsW+ymcw1dbvaVAe0QwKx2mZSFxdlMKGvzSTytrgRhxkGxfw?= =?us-ascii?Q?8kAS3IfxfttPuZ2FCzdxhCbnRZwcsPy5hbAUwmR2cBFJ+/S0juJUl7t7c464?= =?us-ascii?Q?ChKRWI82PSUwvt8GpfXAX1eDRY8QE0flLONHW3CEvI7xZ22JqvQyzfqLz9T/?= =?us-ascii?Q?yUpjhosSQxrT1qRfmJE6gv2CWpZ25+jmLmrhUGSDeMVyttguCsArapjcNhAF?= =?us-ascii?Q?qXXCC3iV/9Scj1d8D3XxqfWHCZ4KPnRe57R7d6oVX9+4pNvDNEvxJMVuj0sK?= =?us-ascii?Q?VQ6v0ryhmdZ6+3wbpPBSOTHgXwhUxpy8FCQcE71B6VakTIR7+1QI8bQpp7VD?= =?us-ascii?Q?dBP8PBOdLu7HOyV7dPWSMqxQnP6Cs2W4849lifzObBDN+eIh7fOmyt0MnczP?= =?us-ascii?Q?WPViqVt8VgfQArioh52nV0UZ7hGLV296NWJVljDtqmTCXmaFYbND1pYGfW7B?= =?us-ascii?Q?+oYCauPY1ugyDb4i4HgBoZ5YNCaRWJlDScfTLKs7DZUUGFlpYjXTkKP8i7Jf?= =?us-ascii?Q?jnaCdWWxuQYf5+CUTkMsjW6C+lRE5Pd0Zg6YLbRugdf1cdeuhGhagB1iJAGX?= =?us-ascii?Q?RHRZsQKLH7skRIZRDpvnyKGbGEo1vok+7zFpPCmFlEBhT5AR3bR8JDq4RiAS?= =?us-ascii?Q?GC5f4yS4wACkhPS4KcLPOH++Riwuy3+nPSCAQ2Bhw3VWZc+9fAlaX70QOmCE?= =?us-ascii?Q?9KkpnJY5PWesLe0vXvpS7qhaPjGydSCyEQU9WHlFlHYGR/XA6RHjPEVh+PVE?= =?us-ascii?Q?0plXNPEvHgEeCP+eKvdXaoCWuj0TivpwStvCdzkQduRGNa2NFGwFGpNnt5P4?= =?us-ascii?Q?Zj+iVpMLSWC/qqo3kTvGMyCXtqjNXBGlyRoh0e5OI2kjSWf5uQSsfHZ7EykB?= =?us-ascii?Q?M4LLeC97TzTH6gwWzctUpfTEGDR7YQEKVMk/9P2t6i3XSDGvduoQvadg4MR4?= =?us-ascii?Q?Dg/br4CFejCzlM/6IJu+reiCxqZ0oyV4jiaLFfGSHBbgWfTNCnEJEnQtUsF4?= =?us-ascii?Q?qzevlEWx6c12L+byDQ2MDEEDcVzQBvSdmuEgWQpjjMY5Bimi8I+8beT2RfMW?= =?us-ascii?Q?L/1mGBJoCsQx9xcvDDT7Xw1sHnUEPxSrn4zWYSbMpbvbVqYG+IW6r3E2Yc7v?= =?us-ascii?Q?DGolF/mCRiHrzMDPbuIrdfo+ziHM2me4mSl4d0dYAXxlSc1bwNtJi+aLmK8k?= =?us-ascii?Q?R83yF2nu/qwq3e9FL7kFqvEEI/yg=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 6:0ss7Pzy8aF52vlFpYjJtMG9INVwQDw/2Q8jnPnvL6Fn1v3HaxTaVH8cHk2URMTgCb5//n1Ju2zVuizqtT5sqXFRCoXgDdx6EymB6NabLviPNeMdDIxNFFrTzfLPwCNY6IGxc+7pBwuAMpURMBQRVepPedrkPI7oKr4dZ+qarodEVGZwHeF6R8fzQOJB3fVf/L5nJY1DQQyB2Ew1/wMrM1eqL2Vk4+kb/Pgh96rTgC/6q9R3ivCb38nWSx9l/PSngWuG75I7Vxf1LoOHAllzyic0GnyN7KKsPKuPlEIBmO/wsJ3p8uoUMOwIn+El1nBz/vZSSEHGQ5q7/qBq0Ty2tZEF+H+vkzj0thKuTG1Du4e/qqILjNJIEzWXq8w4rahYDiQKf+y/0qITM65ds2bIPtPEhA8geuANTQ8NVTsxbn/rV8BTvOmjqIeytR85I+uPUnPBL/rx8jjXovZVnb+0VS4TJQY0o8n61IcXK6dCGYcewTEj3e5n8Z2rdGlZmvivpGZzNxWM4b+hsAZ+fh/UMFA==; 5:FM70SbjLDa+zVjrBmR3wAWeEIuThjFKGYdwT6KBeWdhx1PxGnUgCWuqJGdE8ksW00sws3UTiO9KCCnJP9eFP1Af0dggMcPOqsFdkjKu1+0fVE9UWtAtc+FkKmD2VI8R28s//Hoior9ksO0N1hzpRDw==; 24:FBqEvly0411FMUHuXD9JQb3rMPx8kaC8SqfaS4s4KqTJUnjjPnoUM4OITm8VGyClcOARasuVNo9TPw8UKcQPT23wBM/tZt0HeM1GXMTet18= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 7:ke19c5J76kgL7vSfeUpHIIF6eOBqg/yv1tJI8XYj2J5TO5JnTqVumq63CHr+EHX+G9LM4jdfML7soIASxEpUAVVvypJ69KULJB5NyacGROHFy+CtvBMd2rCJC+V6ncMWp/xU0PQZME9JciP7LmP8kkwUPBmO5eeIbO9Q7Dat2EvEZPO7dBbwpbueHf74GOtn32J4zU/mYHCA8FrIiMCxYw4+3kR3BOV1casVTPlMfOo4BKl1jxl9ILQq5HnRwJLHuDcTXyKAgRGsIs9XVmppppXHT2Ek042fY/HuUkkwV0MfdwTkT9eGtAIdlz06pxGIR6s5O7MU/457mwqGjQYeKA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2017 16:01:06.8576 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1718 Subject: Re: [dpdk-dev] [RFC] [PATCH] eventdev: abstract ethdev HW capability to inject packets to eventdev 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, 02 May 2017 16:01:13 -0000 -----Original Message----- > Date: Fri, 21 Apr 2017 22:31:52 +0000 > From: "Eads, Gage" > To: Jerin Jacob , "dev@dpdk.org" > > CC: "Richardson, Bruce" , "Van Haaren, Harry" > , "hemant.agrawal@nxp.com" > , "nipun.gupta@nxp.com" , > "Vangati, Narender" > Subject: RE: [RFC] [dpdk-dev] [PATCH] eventdev: abstract ethdev HW > capability to inject packets to eventdev > > Hi Jerin, Hi Gage, > > Thanks for getting this ball rolling, and I agree that we need a solution that covers the three cases you described. OK. Half problem is solved if we agree on problem statement :-) > We've also been thinking about an environment where devices (NIC Rx (or even Tx), crypto, or a timer "device" that uses librte_timer to inject events) can plug in eventdev -- whether through a direct connection to the event scheduler (case #3) or using software to bridge the gap -- such that application software can have a consistent view of device interfacing on different platforms. Make sense. Yes, The NPUs can produce events from NIC Rx, NIC Tx, crypto, timer device sources without SW service functions. > > Some initial thoughts on your proposal: > > 1. I imagine that deploying these service functions at the granularity of a core can be excessive on devices with few (<= 8) cores. For example, if the crypto traffic rate is low then a cryptodev service function could be co-scheduled with other service functions and/or application work. I think we'll need a more flexible deployment of these service functions. I agree. > > 2. Knowing which device type a service function is for would be useful -- without it, it's not possible to assign the function to the NUMA node on which the device is located. I guess we can use rte_eth_dev_socket_id() on requested port to get NUMA id. > > 3. Placing the service core logic in the PMDs is nice in terms of application ease-of-use, but it forces PMD to write one-size-fits-all service core functions, where, for example, the application's control of the NIC Rx functionality is limited to the options that struct rte_event_queue_producer_conf exports. An application may want customized service core behavior such as: prioritized polling of Rx queues, using Rx queue interrupts for low traffic rate queues, or (for "closed system" eventdevs) control over whether/when a service core drops events (and a way to notify applications of event drops). For such cases, I think the appropriate solution is allow applications to plug in their own service core functions (when hardware support isn't present). I agree. I think, we can have reusable producer code as static inline functions in librte_event with multiple event producing strategies and let application to call respective one if HW support is not present or not adequate. I will work towards this theme in RFC v2. > > Some of these thoughts are reflected in the eventdev_pipeline app[1] that Harry submitted earlier today, like flexible service function deployment. In that app, the user supplies a device coremask that can pin a service function to a core, multiplex multiple functions on the core, or even affinitize the service function to multiple cores (using cmpset-based exclusion to ensure it's executed by one lcore at a time). Thanks for the sample application.I could make it work with NIC + HW eventdev with some tweaking. I will send the review comment on that email thread. One thing, I noticed with cmpset based scheme is that, at given point of time it can produce at most up to the events one LCORE can support.May not be well suited for low end cores.I think, we need multiple event producer strategy code as common code. > In thinking about this, Narender and I have envisioned something like a framework for eventdev applications in which these service functions can be registered and (in a similar manner to eventdev_pipeline's service functions) executed. That will be useful. I think it will be not just restricted to eventdev applications, I guess, New traffic manager's SW implementation or any future offloads need a framework for service function registration and invocation. > > Thanks, > Gage > > [1] http://dpdk.org/ml/archives/dev/2017-April/064511.html