From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0085.outbound.protection.outlook.com [104.47.38.85]) by dpdk.org (Postfix) with ESMTP id ACF0411F5 for ; Tue, 29 Aug 2017 15:45:23 +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=3YU5AqfhbyCbUESb4pWWZp2wj5A74KDA25keNW0V0Yc=; b=TKsu/4iR0AXEEiqYw/gCFO5ukVGkkTdaQPwr6swohnFKIo+zzKIxc2I3CH79Az/f3p763cyQppsDwx55QpRRh0jF/rUfAwfTK0iI0RJEPJrobC8bfZHnuFXS8oce/C1MZ7niyeHELQIaxMrHwbWN0PPq2pxOYBfx9NPNYh2IODI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from PBHAGAVATULA-LT (111.93.218.67) by DM5PR07MB3467.namprd07.prod.outlook.com (10.164.153.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Tue, 29 Aug 2017 13:45:21 +0000 Date: Tue, 29 Aug 2017 19:14:55 +0530 From: Pavan Nikhilesh Bhagavatula To: "Van Haaren, Harry" Cc: dev@dpdk.org Message-ID: <20170829134454.GA11730@PBHAGAVATULA-LT> References: <1503501027-11046-1-git-send-email-pbhagavatula@caviumnetworks.com> <20170828113302.GA22141@PBHAGAVATULA-LT> <20170828150946.GA18980@PBHAGAVATULA-LT> <20170828154259.GA20482@PBHAGAVATULA-LT> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0083.INDPRD01.PROD.OUTLOOK.COM (10.174.144.151) To DM5PR07MB3467.namprd07.prod.outlook.com (10.164.153.22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e9b5d4dc-69ef-4b12-6bdf-08d4eee431dc X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR07MB3467; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3467; 3:vr7NUJD5sT/DMdQCXU91wu1WTrosjoXjmuwnGsj2hzrR4H1VSJtEAh6bEKwob74N8lEDiIFU75tPQXO8X+PYzffOfldSMbnonAKoly3VBYHAojLPfzv+tRjuSd8wM5aGtYktUFh14iCTdPI34p+3Xuevjs2XhkTKC51NTXTaQJggDHJ9E7zqiVwKTm/Wl8R+7UX6mFuxg0AU8jsDfyGWuEAfVzkM9aGZkimCvMtPFlS0t5u0UWurCzqcZI1T4nQf; 25:kH0EbtzqE35QFE10mGsszZ2kz+gCD4xksW+jAT33n+9Kw18v0N/yrgOv2LH2fcpib7W1OR8+6Y02Dqk3PzFOWwRzFkgvgUOH94DI3NR0+zATjHKvpFpg/hPWnixvZ0IfKZSeQQqC8IclkMCVBq9uCtXWazN9VGEk2dvhub2z92bXfUhk528dmwKGwMFvNz5swg3tjTWqUuN5S/2Abd0+qY8rpwy7tCo1MinPflfhXpTLn0glCreGETCYzZKReIaXrfVggFJd9mcJYEOadVNPWBgZXUdyoKn0SQH3A5+w6pn8CkN2ywYDj2/9HIQG8dtjYt34hXl4e/w1nNFRCXiv4w==; 31:ZZqiJ3xB/osJJTc8qGR0EA6R6OqZPwAAMUDYyhUARGux0U8kZ2e5JZpcBvW/4lFcWh4qKfkq6nES0YaVU6FnPL2hLMGVAVwifOAakccnjIWbRv/rjJntkZ1jgVD4zEwjEl622EKABqCqmQSYxHQA6D4J92ikgvCbLy130GvN1GopO2RYvCF33cVQrPnMIKUCMAhf1V7DTobKfMW/+yIVMmX1I1n5FKqYwVOQCHTKFbE= X-MS-TrafficTypeDiagnostic: DM5PR07MB3467: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3467; 20:m5OWebShol1jMQ/GMAK7zhJHr8JE6HMO+SG8/ejYuv/8TPjdBY/9JXk/sW/xsmq1pjZWYJiEW4AoYcoAPsICg2FLeeaV+m68HcwSwRvenlCUmjycbf1NkTuWiTV8LDhykhCLypjmxjSjKe5FJzKPE9fYPcxfXGO8uM866hJDns7j5EU6/dSVgR7UTWsAeKS8O9zgwrbzljTbUtiMjI88cx3sdtjMwJbr9xOXyB97wGPPixMllNnYTfW1DMpY2kcqRTSwN7dNJyOtp7oWvPzu2y5Q/BZe3P14rkaOIGSSxNIqT1Jy++IzkZCGDNgVMdIhFhpN6oNHFEYzW5jcy1iHj7+ScTiY25M4C0wFSyXwMT3yU8thC5S2nRtocMbuuCaqnSqign2j93OpQ5Lp8IwpHQDZ4aZSOkzBoZIe0Nl3r0w/NouRl/GJsY4d/cjhYY6v5KkZ9g0G43mlVxQehoY1lp+wca9QByiaYsem4vVV5RrjnilCXQSFrdY69fogyOjAgrHMhwbX3Bxo0XkyDhJ9cUj+K9H1wWlgFZX7bHwRY68lK9F9CMZnunu+6D5+nov293UcAGHENiDBYhog7E2slVYB1etrUYEjtUVNt/gu3Cs=; 4:GIGWeOj2+rNdCOU3AZJXzlC+zsjt4Nw8m9xUIKUB0yu+EY/AAAVbqNIzZ2zl9QUru/Slo/xCFpepXX2OTsZEbaKxqZ/1J72LBwiLjGkURoKMwQoqS1Itt7DQbBOTA/JmCqiVdLGUC2uaVZWhV9urk6VdQp144VXAv6/tFgsE+Q7GgJhMLo5U0aqcGFyTSGs1BsaPIVtl9D+ZLDpoM3njcZ51d+SGHNeOo+dO9yP0IXRdWKAZfFy4bM7u9CxrOJ3yRG4hOC1a1r0JPwKQ0au6EZGJ/Lvw7rRW+KcBP64zqgo= X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123564025)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR07MB3467; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR07MB3467; X-Forefront-PRVS: 0414DF926F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(377454003)(24454002)(13464003)(189002)(199003)(6306002)(9686003)(305945005)(7736002)(6116002)(101416001)(3846002)(5009440100003)(7350300001)(55016002)(23726003)(1076002)(2906002)(42882006)(2950100002)(6916009)(6666003)(53546010)(229853002)(42186005)(76176999)(50986999)(5660300001)(966005)(25786009)(33716001)(93886005)(110136004)(72206003)(54356999)(68736007)(478600001)(106356001)(105586002)(6246003)(6496005)(47776003)(53376002)(189998001)(53936002)(81156014)(97736004)(81166006)(4326008)(8676002)(83506001)(4001350100001)(33656002)(50466002)(66066001)(575784001)(18370500001)(107986001)(81973001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3467; H:PBHAGAVATULA-LT; 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; DM5PR07MB3467; 23:tHMCqpGPBu3HKYNuKf/GyAFvJbXVXKzsIcFlyEHbJ?= =?us-ascii?Q?GB382flsHqSL/JxYrlOCkXtY7XEra2k/ivlS6hGzl2aIoU4zh+wVWpllIMQQ?= =?us-ascii?Q?LacFaLSG78SNpECaarRwFZ+WqfaMpJeIpKFshOZjKBiC7LoAuppIATuW90Bv?= =?us-ascii?Q?Q4SfpJKF/EMtf3/jAq/QRIwMss87q1GDAH79RupA695sdo3DyrKQdlJ0/i1k?= =?us-ascii?Q?LaH9JnIcVYAbeCtAemEPx0Fb+y2eIbhj6WJhk8xoOlX+1s/QYXP+mDkFub5g?= =?us-ascii?Q?03C3rRAEafcc2qgIP8KXUxZJRtjz1DcSZs/EJKoXbRNn8iXUUlTVdLTzrvpd?= =?us-ascii?Q?tk0anvn9z+HQ3YU9UwRAMHY2GaX34PqRAnmlhi+5bqwxDOKXUoocpug6rl1h?= =?us-ascii?Q?Cy9McE+iHBP3x0eMv2AXDntcXgdyI5Piy76ZXsQHpQ6QKvIA60CcWI0hpwjx?= =?us-ascii?Q?FmQ02/4os+tlTnQnUvRiVKk0txzQJAEk2u0YKOVya0VfzwjX3bOwhTuz1UvI?= =?us-ascii?Q?x5v5CJmKT+/7mnMel9zAl3fMsRgw/4TGW7JG0aAlSyciGygxAbzHvf6ro8oS?= =?us-ascii?Q?0WE2odCQM/6+KcIXJIBS+mSUcKCroB3ImtI3hWW1Yas4zDgcgFCAl+QGXSQQ?= =?us-ascii?Q?RahEn9iNilC2p6DUJfIByoXWDH20RZC4F+7pGFbpqoNnDhxgBcdHu7LoAj7Z?= =?us-ascii?Q?1u5+PoaoY1IimZZ7+rdCR0yiDI7ILwd2K4TIGgtzndm0RiVIVH7T40j5rXeb?= =?us-ascii?Q?+KalMyFx+nKAyIV/ajKHX40WscL7Q1xPl6A9i6a/jr8zah3xM2zhYlJVRABA?= =?us-ascii?Q?IaWE0dbV96aPT9BAGHxXHiTPW58V9Jk6vMu9gt5OOEIeZYq2s0oRr14gUX5V?= =?us-ascii?Q?SJgfIrS5RpSuf+8XOAr5ArBv4k1laqRh6p78iyZ693+sQd9w4eq3xOL0Wyv/?= =?us-ascii?Q?ukOp1xU70fsmcBFsfvfb0t0O8DdItc7Mic86VhnLWlydMvd4KH2/v0DMKwK7?= =?us-ascii?Q?pyFLdiNbqYPzhIir6ivLW7kM0IYbe3x4B3CmjTwsvTbN5P5x5DRlfFgvsoq1?= =?us-ascii?Q?pLRVkfgxlvhmkST4Up6Q1TtpVbt0EtBtpshu+2y+HbZ75ZTwctsf5Uuwmcf7?= =?us-ascii?Q?YDd6gzHGdEiKU7eJcLiEeeMnQ3S4Ghzq2UoGPuR/T7COp2PgieUkzQRb35Io?= =?us-ascii?Q?91sK9AK0soidmg/f2W1qfrI/6t4LJBgh/Ffc5OGNCSw7TzBLRl8z38O7MPVc?= =?us-ascii?Q?4/u5CQi/bNDwSEcFUOrDZL1gXP1wL9uYMsZJ5VkJvYAtf545uR30kijBR9/O?= =?us-ascii?Q?YsyXEespW6sQNx0uvNM8yXd/FTyCFYCD8iXaP+1/Xx45xRhS797Jw3vQFMqW?= =?us-ascii?Q?5dnUehZinmcG0AXYhTeVDsOM6XA5mb9HXO4HrxwWMxHsfYyG2UW5E2UGeXDu?= =?us-ascii?Q?/EaV/87TFnSTslIQcLTIhcbdKWJTnm6ka6DHWEtTOv8LVxLDBwB7DykQvGdF?= =?us-ascii?Q?VDNO9AsbR6PgQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3467; 6:srGNL5Gu3WKzTrj5GGWGTDLkyn09ew92fEsoCSY79/6aA917gdlxEU6T0RTD5w1i7n4dZg43DeeIry3B54aM3U+6i7MxyXbrnJ/xQIwvZ5HBMVVxTF8nun+wntNmYrMeWr7aRfwDJ2304AG/Y3GEj11SJV3EsxY9NmlaH5YBTeR2Fsq2JNAF9gMOZk9R/JYYCyyPLFCWswHdddZUPBTVEK1lqo3cui7W5aDVv5gd3n3NU+jB/6U2i2vMqaFA8J1+F0ICc5IQpY/Yc5dgU/EjLNMJx0lQ1wnxmLMKM9seNlro0K1ro+CkmQ4qNEFwDxP52SuuKc4gOrIigoRQIk5V8g==; 5:Lp9MM3Uh6orPXIAAL0D2Bmb/i0wLSeAsAK4FCv/LOf9xEU6G6iCzcN5SB/nTM6MLoNQ8NvdPRSyQEr50Ug7KFHQ2Jofu/YiQ/LYqwcACd7vt5BgB57OWMERSYEeu5tihSEUSyNOrio4NmNq7Nn+VXw==; 24:0KLZhLnNQ1hVjxRcAFYcWNqDI2qmdztO9VDmQEnk8idvb65cxUxgb5CpJuFJJJhLG4VKAzVjGviSzHPGXjigoeOluQwtfhplddlNF8Uxdfs=; 7:XnM4HPGLhyTRBtz5oW3QaYA17Ke39s96JzMRzbhA333OeQB+ymlr3m9900cvoBb28uS6Ue6dBqshwhtcUX6PUZOkb4fIuBHPUolpYivFZumBw8hLRL8lclUPyaKW60/1dmyk5THYmVQAdtBUjxGP4mumNSqDC8tY+lwZ1bFGzRETS96u7ArC9laTO8zEsb7QfT1uLCRe2gQ79VFlLWWcQhUffkExDwzQ6LQnrf+iAY0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2017 13:45:21.0690 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3467 Subject: Re: [dpdk-dev] [PATCH] eal: added new `rte_lcore_is_service_lcore` API. 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, 29 Aug 2017 13:45:24 -0000 On Tue, Aug 29, 2017 at 01:17:18PM +0000, Van Haaren, Harry wrote: > > From: Pavan Nikhilesh Bhagavatula [mailto:pbhagavatula@caviumnetworks.com] > > Sent: Monday, August 28, 2017 4:43 PM > > To: Van Haaren, Harry > > Cc: dev@dpdk.org > > Subject: Re: [dpdk-dev] [PATCH] eal: added new `rte_lcore_is_service_lcore` API. > > > > On Mon, Aug 28, 2017 at 03:24:06PM +0000, Van Haaren, Harry wrote: > > > > > > > > > > -----Original Message----- > > > > From: Pavan Nikhilesh Bhagavatula [mailto:pbhagavatula@caviumnetworks.com] > > > > Sent: Monday, August 28, 2017 4:10 PM > > > > To: Van Haaren, Harry > > > > Cc: dev@dpdk.org > > > > Subject: Re: [dpdk-dev] [PATCH] eal: added new `rte_lcore_is_service_lcore` API. > > > > > > > > On Mon, Aug 28, 2017 at 01:49:37PM +0000, Van Haaren, Harry wrote: > > > > > > From: Pavan Nikhilesh Bhagavatula [mailto:pbhagavatula@caviumnetworks.com] > > > > > > Sent: Monday, August 28, 2017 12:33 PM > > > > > > To: Van Haaren, Harry > > > > > > Cc: dev@dpdk.org > > > > > > Subject: Re: [dpdk-dev] [PATCH] eal: added new `rte_lcore_is_service_lcore` API. > > > > > > > > > > > > On Mon, Aug 28, 2017 at 10:59:51AM +0000, Van Haaren, Harry wrote: > > > > > > > > From: Pavan Nikhilesh [mailto:pbhagavatula@caviumnetworks.com] > > > > > > > > Sent: Wednesday, August 23, 2017 4:10 PM > > > > > > > > To: dev@dpdk.org > > > > > > > > Cc: Van Haaren, Harry ; Pavan Nikhilesh > > > > > > > > > > > > > > > > Subject: [dpdk-dev] [PATCH] eal: added new `rte_lcore_is_service_lcore` API. > > > > > > > > > > > > > > > > This API can be used to test if an lcore(EAL thread) is a service lcore. > > > > > > > > > > > > > > > > Signed-off-by: Pavan Nikhilesh > > > > > > > > --- > > > > > > > > lib/librte_eal/common/include/rte_lcore.h | 18 ++++++++++++++++++ > > > > > > > > 1 file changed, 18 insertions(+) > > > > > > > > > > > > > > > > diff --git a/lib/librte_eal/common/include/rte_lcore.h > > > > > > > > b/lib/librte_eal/common/include/rte_lcore.h > > > > > > > > index 50e0d0f..7854ea1 100644 > > > > > > > > --- a/lib/librte_eal/common/include/rte_lcore.h > > > > > > > > +++ b/lib/librte_eal/common/include/rte_lcore.h > > > > > > > > @@ -180,6 +180,24 @@ rte_lcore_is_enabled(unsigned lcore_id) > > > > > > > > } > > > > > > > > > > > > > > > > /** > > > > > > > > + * Test if an lcore is service lcore. > > > > > > > > + * > > > > > > > > + * @param lcore_id > > > > > > > > + * The identifier of the lcore, which MUST be between 0 and > > > > > > > > + * RTE_MAX_LCORE-1. > > > > > > > > + * @return > > > > > > > > + * True if the given lcore is service; false otherwise. > > > > > > > > + */ > > > > > > > > +static inline int > > > > > > > > +rte_lcore_is_service_lcore(unsigned lcore_id) > > > > > > > > +{ > > > > > > > > + struct rte_config *cfg = rte_eal_get_configuration(); > > > > > > > > + if (lcore_id >= RTE_MAX_LCORE) > > > > > > > > + return 0; > > > > > > > > + return cfg->lcore_role[lcore_id] == ROLE_SERVICE; > > > > > > > > +} > > > > > > > > > > > > > > No header file and Static inline - so this is only to be used internally in the > > service > > > > > > cores library? > > > > > > > If so, the function should actually be used, instead of only added but not used in > > the > > > > > > library itself. > > > > > > > > > > > > > > > > > > > The enum rte_lcore_role_t has ROLE_SERVICE which tells that a particular lcore is > > > > > > a service lcore as well as an EAL thread some libraries such as rte_timer allow > > > > > > specific operations only over EAL threads. > > > > > > > > > > Understood that role of cores is important, and that rte_timer might require this > > > > information. > > > > > > > > > > > > > > > > The rte_timer lib uses the rte_is_lcore_enabled() call to check if a lcore is an > > > > > > EAL thread, Which checks if the lcore role is ROLE_RTE. But it should also > > > > > > allow timers to be registered on a service core as processing those timers can > > > > > > be done on them. > > > > > > > > > > No problem from me here either - although it's the Timers library maintainer that should > > > > check this. > > > > > > > > > > > > > > > > This new function allows such libraries to check if the role is > > > > > > ROLE_SERVICE and allow those operations. > > > > > > > > > > If the timers library requires information about service-cores, it should use a public > > API > > > > to retrieve that information. Having "internal" functions between libraries is not nice. > > > > > > > > > > I think a better design would be to add this function as a public function, (add it to > > the > > > > .map files etc) and then call the public function from the timers library. > > > > > > > > > > Does that sound like a good solution? -Harry > > > > > > > > > > > > > The file rte_lcore.h is in librte_eal/common/include I couldn't find a .map > > > > file for eal/common and also other functions that are present in rte_lcore.h > > > > aren't mapped in eal/linuxapp or eal/bsdapp. > > > > I think it is fine as the functions are static inline. > > > > > > > > -Pavan > > > > > > OK - I was looking at this from a service core library POV. The intent seems to be to update > > EAL in order to allow detection of a core having a ROLE_SERVICE. Now I see your intent better, > > no problem with the approach. Correct that static-inline functions don't need .map file > > entries (cause they're inlined :) > > > > > > One technical issue: > > > > + if (lcore_id >= RTE_MAX_LCORE) > > > > + return 0; > > > > > > This should return a -ERROR value, as 0 is a valid return value that should indicate one > > thing (and one thing only) "not a service core". > > > > The function function follows the same structure as rte_lcore_is_enabled i.e. > > returns either true(1) or false(0). So, I think returning 0 would be fine?. If > > not I'll gladly send a v2. > > I looked that that function too - I'm not sure what's better API design... > Lets stay consistent with other functions in the file; so keep your current implementation. > > Note that these service core patches depend on the Service Cores rework patchset (currently > v2 available here: http://dpdk.org/dev/patchwork/patch/27684/ ) > > @Pavan, if you have time to Ack the patches this one is based on that would be fantastic. Sure Harry will go through the patch set. > > Acked-by: Harry van Haaren Thanks, Pavan.