From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0047.outbound.protection.outlook.com [104.47.42.47]) by dpdk.org (Postfix) with ESMTP id C256B2C8 for ; Fri, 7 Jul 2017 12:46:12 +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=q78q2gKDCd2Y45zVyVV8JQMcGFJuT1fT0Hf/SxrrDWg=; b=RpEtzRKhdvLPX9rqVsKF4miSIsh0Bc5heJEDzEtGQ9sY6g5rjW4WwdcaZ7obK1kYM7G/Z8W0MrkX8oOSFyxFt1WAe3daidb46Zey4upj+39Kd3fVaKjbau0FbcfMgL5vJciQ3NXKEgNdiQw0hPtJGeBDi2UQwHZEzNt2PoG2tas= 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 (111.93.218.67) by BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Fri, 7 Jul 2017 10:46:07 +0000 Date: Fri, 7 Jul 2017 16:15:30 +0530 From: Jerin Jacob To: "Van Haaren, Harry" Cc: "dev@dpdk.org" , "thomas@monjalon.net" , "Wiles, Keith" , "Richardson, Bruce" Message-ID: <20170707104529.GA24514@jerin> References: <1498735421-100164-1-git-send-email-harry.van.haaren@intel.com> <1499031314-7172-1-git-send-email-harry.van.haaren@intel.com> <1499031314-7172-4-git-send-email-harry.van.haaren@intel.com> <20170704124548.GB14921@jerin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.8.3 (2017-05-23) X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0071.INDPRD01.PROD.OUTLOOK.COM (10.174.144.139) To BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 07f7c37b-04e1-4c20-a454-08d4c5256094 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 3:V6QXPCVeXRIM0OxvbLnkggISo9IucksP6o7GhLd810sMF0eBrM7v1AUGXnCs1mtroELwqvL/Rvdv3mkiRctLgE2EDquuAAmBZMeg9UEnYkJC0sImk8bSNe9MBFa/4C6RgL9Pq+okfkKXuTFJDEMeqn4NjUei517IKiJcfGVDrQmZpsMwieWITTYz4wumSQddudwKaB7KZkdFMPTttqQ0LWrTabJF8OvrEgEOBzvYd11V5ZRtv/zHIfaiGeIaJx6zpVsnaHeZYYTtgllDU6aAUi/JL1HXp0cAUpuoFo/TTLpD5Oq3kwQJXCfVHmlIm2uY9aX25YnDT5n5LUNjxEInAKiuvkUzFv7K65OFK5eMMeZXzk8hoOp7tPzG8W2Qo2W987gYXdFxEnAUma4bRdjXP73DyrfIc8FFr8C2+VIAK7i84ENqa7AtI6sDAnlREwIP1q+GpNIxRVDCt6i1uIFtvpd1jEMZE5ScQAvnXBfYUn4vv7OSVIZfLKJf6c9h9Y/cxKgo3My8Vdey7blwPYRXt9sHCM3KHlj0GXexjVkpeKhFQh63GpsxrU84F6Uc+XqwlOymznU3bSwOGFJval3ICe7XvNkqd6XiQHIPyM26XubfxSTmfJgKOIuUbD1Jkzj1ztM4dVSTxIoW2W57TjxY9kFVLJfHhqFKiAKrxyDU1HIXlFQ4BI5Qtji/qP+K+BqrtlLCYkQaeecyKzXP120Oc+OocSXBgL8V/Fqb0CLqQmSsgICsSY7fjT/pp/15gwLK X-MS-TrafficTypeDiagnostic: BLUPR0701MB1713: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 25:gd+LZnOXePeC+cgN7t+D8Hbb6buUkFcZybQ41Ampq5wwP1Xtv/gzE0KN+OhfCnuurpEHB0D9dMcwiLE+fgNAuiYRrLLDnZT3s0r52eZM6uyeATpDntE4Ufmo0svRJbhMPw6dNMo1ZjPoIRdK4ogoVIIyR/6LPR/eGfPAti4s9rty868sFrZbinCbechLJz8rRWTV1vx0fyaFnBm3+ofKiq2tArB7zYVH2Ufu1F50qS9bELfePZC8R2x/KsNa0mh7ZbtQGTKOA6/aztO8Cgop6ZvDVxlNhs4ECwQhE+ukEYJcVtnD/5MXd5kG5HXI7+BAfg4AnBfe08NAj3UcfqkK/ofLR6HChuWn1PGAPiNfOzp89/6i8mraJsSFR6i3yDO8CI4L5JkAQ3oHG/d9TuJvSHjnOJDIi9xUBl1FtXfHFqxUJuLMEkNezwi3QauwcpaaV+vzfvyWOnvvm76zfGYu9vgQNS/K+jU+RXlrg5j+cHSTDFOjGAsXZGH8/c9n5hFDNY0kQWgjHMOtKHGYAnA41Z6NKpg/v81MhekEXsUnp4eaGLizmQxhYpHjrjWtQW4esgjiE+QjxSEtKRKKAoJh6cXhoEUTaWu8pAzLJwt7I0xJW3ASzzvU2htUZ9OlI/p5fkAoBBzLzXZj2ugr6pISnYxKy0NjCIYH4Uh/4GD/N597BOrmuH7GYBo1oZlnpH4cuVXwHNqK0fQcuIItvWRk4RjvahazVngkBDZbXrCM3joxK+kIFW09Mey+sXG2JSTv922PrIh94Srj8GUR2WcB5VLMZmUIMYS+uxJ2OT8u5hRLMZ4vJmVOtT42y41iblVpjY58ddsvOwMJRp5x5LzhJoKMHUThF9ssCnx6OPf7d5K6ZStw6F9oWH21J6DaiVNpxyWd31SausC55RP02vQ/LRt95IWgFAQEdfZK6sLUmXQ= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 31:8KM3ym0+XRBysSQiXxseOLQpbBxUxJe3UfvJ991FhoeGTiDLGmeyAQYcknsUamgTM1Ss50GdSLH4LpLsl4bip3ORP2oIKsdkEFZqtclpkqrYp9zYmCVynce3isnR4Q4nhEux6nw4Fn8fQ60Ng6GI7oFDYfluP97EA5UiF8Pb+wZkMjL+D3aVP/Txmb76U/B1d8cSbeXRPcP2WksaHuhrJ29paXZya4qEENkoNisagHJCD0/IQQUzpvoAkc2c9KhhB2oEKhhYTvnbv/+YYv+99PBimCPAANdj2V/YNmWInYdKsuZNqdvXDwScGScIf3MkC0wd56Utefa52IoHIemMjLm5DWCPvAi66J2n/CncDDN2OtS/zMk8CbHcmcBH///PcNljkf2EcRgtzPkE4xbAUQJRMK6HMHW4VxTcHT/nNnPuIvFZj5ktyZ/lFOyLr0qrTwiS/gnom8+riOJwdtHHi30Uh81XkRWmVvCSGjOuJ5oecEx08bJkA+WeklHJiw17YwjBjndwM/tal+S/MNbhINNpuBoWQOwcyf0hDcVX9oG2fLuHgsCDL+uC1XGY7UhwLOFOj9gjAXchn1TU5bXpBxp/rdUnZeyvZzn+zjNnjEhHmchPHznnClRalzUFFYAmmYv6LFYrDsMjmLXG/vvXd2c8fDXzQLh62B5Bw15FJpsxWOA6xdMDToYy+TsOhl32ogkp8u0yZ56w8hHrmJx10A== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 20:ZLT8z5CTILHSZLmj7JUkyJzirpG01m89zw77FAqXTj9phLR28Byf5pem3GlOwRdQUIxyh43pDE7nSOR9SCTo3okr1M5J+yG75qg/pP6PhjeZRPX14FFiBNlqJMdD7fIE4qyX1mUWGIivKRa5kJ5aaXI0VKunzEptnflQmfngv1fJmRglvLub9VuuYw+U+yx6XboukMYFEhHks24twu0+SnbrmvbSjRHub3eVlHEunu308Kh5bi8lXMNlZKxVpVHmebEC3PBgN7Sjgtskrc/1WXEWl5ubrlPDrT+UPe4LdP6GRm0hb8+6TGKX0zuuLINY7RRMxL8A7o52qSNC3LwH/iKsKOQ3cT4gFJnbt6i3Q4Ajxg+GYCm2cxjp0FAQ5NwyBS+fFFImYXvfg2JRIRC2ijIoasmmwp4oM8unkaKvBurt5nhcbYV3fuXvi9eCYWHfw46CexgISuUQZwfHfYGXoisK/0o37ebuyfDMPWZQPqILAVXdUlv4wgcbu9RSseqYcNDZfBy1T7GqORLEWDx8yBJeLvCM3aks48gXYcIXUUUDbgCMi1/2K/dqmb+Kkl1SMO0g9Bvl9N1dCx64Iqq8lEg/O7sJjJhmB10nA4x+qK4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(167848164394848)(228905959029699)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(2017060910062)(3002001)(10201501046)(93006095)(100000703101)(100105400095)(6041248)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713; 4:XAUw0FtWxox3rWqb/zXufPQx3YKwP7Z4BLDuTA/Y?= =?us-ascii?Q?MTPhNwFNYEGj0/dOLRWENEpyhRYxdVowKcFI6RYSMcl7D8lfiiyQ+EhhUTqi?= =?us-ascii?Q?r8krVd9+qmGF7QgUr6dN1fJDm47i9XJ5Hr0i2k9EbmEC4urREA/Kd5ev2Z9C?= =?us-ascii?Q?hoBARUmdInWSmyd9A7vEG6wZ5gHXBKMTS6Ss1gCcpW2gTIkBrUbX5vvUMdJ1?= =?us-ascii?Q?0/T7LoWlmx0oftm1VPS6ASS6aTIoJptljnS0m9UYNmEYMA3Zd7xrFAaoIvi/?= =?us-ascii?Q?stQsEwdUGdHMjlwFe9bpxT6I8mruDUaMnR/JVPXmEZxSD5r1ZA0cb7sTfQzW?= =?us-ascii?Q?2+S3FQzBUQuJ/OQIS9+cxSWgj9BjUuFaz0OM7lzjCfKdBJx8qultlQrb+set?= =?us-ascii?Q?tThvNJqXg9LntvCYNGPvD8PDv9qlNk1QGKwVTXHkpvoCfNCv8GrMIog+qzZJ?= =?us-ascii?Q?pG0+ko3NiaUaWLSkOsmYYb9PSWBoQrGh6lj1uB3oTlDXU7/9ojTWQNiGRQ2k?= =?us-ascii?Q?6SrJ7+alPcWJe2qgbY/C2cquB2xGnMj+hkDihfg0DdRMHkI4DDMuAPueE8xp?= =?us-ascii?Q?Xg6uUV7eYmoKY1qGVTdFDEhip3JwrZbtwi615M1QoKTz1nTW068/ZBMyjKXP?= =?us-ascii?Q?k12aBv7rv2vkPI3IiL6qCc6UVZtD53te+Jv6vUjL84T9p9MdscfNtpw3oD4s?= =?us-ascii?Q?MwjUzaNCTamuRLVWRet1eQsaA7yqU/jkGn12QWWTpDVt4h+j6pI0KZapsTNv?= =?us-ascii?Q?NmMtBfJUXJPmUNoc/CWuwLWMDfNElpvZglS8AsFyRo4gW0ZGSnQ9HlnGrHZ+?= =?us-ascii?Q?5LPWmXhe7VASUdoWWFFmq3fEaVSj4R7wkbxbRIlUtG44ar9ru/a2dZ4lprQs?= =?us-ascii?Q?ODkkbI68Nks+ukUetKp3HqLDqWHJuuMK1sQgoxm+bEcPrzUfSyIhszBJgkFl?= =?us-ascii?Q?uhXAS4fTnIQYcocUfrPsh8Ga8onRD64ep9MrUFXZ2lNCZNi9a/cxi+m/Vykh?= =?us-ascii?Q?PHDlYr8XMBENGFFszwazaFSONM4nWOA40mHcv7KjpycqtL3RIhWvWhKjc/oO?= =?us-ascii?Q?NTixCEnf/8YY54me9WWbgPyv50N5BgbvmEk9GlLiic50YQA2nTyF6889vL2N?= =?us-ascii?Q?qp2PnxAs2mQqMRekEv6PURVDf850u+zGAi8fuM40ERoO73CX4GbquIZJwQUP?= =?us-ascii?Q?2EDwlbQEBqXZhaHq2ttKiMh99GqGZPOLhU8ksr/IIYwfZq9GcV3JjmWgv56R?= =?us-ascii?Q?iKikjMj2qki7FwmJS6vz6WP/19sFLv4zbkvbVae6Fwmofe+vCH+n1394yINq?= =?us-ascii?Q?RuwZiWh+zAubfpIu+tGb6D6xHb8ZE7naCoBj4jLSaH5x?= X-Forefront-PRVS: 0361212EA8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39400400002)(39850400002)(39840400002)(39410400002)(39450400003)(377454003)(13464003)(23726003)(33656002)(66066001)(5660300001)(42882006)(2950100002)(6666003)(76176999)(7736002)(47776003)(189998001)(6916009)(5009440100003)(50986999)(6496005)(4001350100001)(72206003)(2906002)(54356999)(478600001)(229853002)(50466002)(305945005)(53546010)(6116002)(42186005)(9686003)(6246003)(3846002)(25786009)(110136004)(55016002)(4326008)(1076002)(53936002)(81166006)(83506001)(8676002)(54906002)(33716001)(38730400002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713; H:jerin; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713; 23:/rQGprGR4Bbsv6GN1Xq7ChPRJdtjy1P38LzxwTu?= =?us-ascii?Q?P40K2C1c+j6jYnOAnT3vWkQrKgcQpQm1sEuI54wHm4xtyhIrKADuq83Vn2GJ?= =?us-ascii?Q?qep/FbzWvU4iuQA6CjjTuRR5cVh9xVIatpJpWYYS6t50MW/uN99KSoKZuFHV?= =?us-ascii?Q?AKT/3v2vSA0qWomsieeMG3hvIGm3X2N6r0/UcYADe/4D4QTdYhNRBMORLb3R?= =?us-ascii?Q?vgoyG/W5Q64audB63aFq8+7pYQKbjltt3HxBBqmlS7yNZp0kPO5HA8sYrYhN?= =?us-ascii?Q?xK6bK8t8TyhpTRrU2sUdvRUcgLJtu296BvnWQKFQJzkHGFOQgDvuXxdf/br3?= =?us-ascii?Q?Uich2O7wLNBi4/fjKtmIkiIUtuaYW8bc0m/tFaCnNVK2wnuomApNNmC+XzJa?= =?us-ascii?Q?7P3k0H5ybNPUk/U9pILbQEQYOr0pM5kgJjPcOstWasJxmKF9ka5TqgcJb74e?= =?us-ascii?Q?gBUMq2mWSJtz+kl58WPlMfybiAoJS5g27fSpjmCqExrvufe+Mz+bxmCs6x/G?= =?us-ascii?Q?JdAdShRSc+/RW/hVzpPdXQk8cYNuKVkD918qjF75D8b0Pt2Qh2hJcf6nNFKP?= =?us-ascii?Q?rtGw3j1ecDJ87NQkIGC4AAPOpBUczB9QBT+q7WJI3G9P/jHvRnbrTbAcIdS7?= =?us-ascii?Q?Ekbt491MCytnH8PMBTX8h1f1cZmLe8eW49vqo55YssbG/KVDyzgBS5eg7zwP?= =?us-ascii?Q?tkZDNJHA/BqkqeGD5f+UrOVHnNX6+laDM2E5VEjplo/y/K847SkzHl77Gupy?= =?us-ascii?Q?yy/m/m2yT10MhPftpPB5aeHVY1JAYprGozXMMYsgCFkyYoROo1EzmuCHGMSu?= =?us-ascii?Q?FEAUUVNhVPh26TCyWklHhTx2kgDelY0V8Vv895e/Bkcc1x/7AM87+TGsRM4C?= =?us-ascii?Q?fgYeNPewVZchO8EjQF2dDGU1A/0Vti7K8cX2xhglcAq1fWGNaGhVWfrLDfFr?= =?us-ascii?Q?oFO4XUgtzeTpq963SzIK32E9cOEg7vy7LJGPqemiu+z8P8LWzZYfJ124deeT?= =?us-ascii?Q?1B/NqO0df5ziDzn3RoZiDevBmVku7aIfP94uAtq8iTAvvc6XHWj+NY/pxwn8?= =?us-ascii?Q?ng+wQVSsAz7/mw+g7MjjF3k1J0PhI6JO1N/SkYUCg3b1XhOLw+Dju3TxOqoi?= =?us-ascii?Q?mWdBBFCjIuTOXjBSfrvpWNgcUHrBNcw+nmF2xRrrS9p2KREiomj/2x0pMHEb?= =?us-ascii?Q?fFksHKWrGl1zyS59z5yK34znrEPXwYGdS9S4kEV20hSLKIdouckek8D+32wH?= =?us-ascii?Q?50ruskBB7I8K2domnC6PTQFh1ufV6NOBSPhYAlmdA?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713; 6:f3oodnPeEzNOHGillBImYUxnJVWDUzZmJ2TM1JbR?= =?us-ascii?Q?QjZfaZ/IG6aouwNtq8p0ZIqbXSheS8XpAAnqh2ue6NJOpHND//N+UrXDBfdq?= =?us-ascii?Q?rxTF0OxbNVJOgczbUtQpvYdHg62TnMlJZLjuiKoua7MVC4YJmW40g3/W0A6J?= =?us-ascii?Q?Wq3osYmDvCHMfsxr5mPaUIUO5lre9MAhdBOu/Ul6HSmpig/6fRWyKyJxmCJu?= =?us-ascii?Q?ILv68ONKz9j0a8ggCQqNTraJ/XKOBinCVHxopJuNgAk01HcKun1alpFKSHwZ?= =?us-ascii?Q?bdEw9pnXBf046NnR+JuZ/EOieIojsjwDdECMuUZ1rHnRhKhXNsyusPNByEPx?= =?us-ascii?Q?zAfgtOotKkRKChfStDTre5pNejS842lw8p/t8na3o7yWmHK8MDw3nidnYNXh?= =?us-ascii?Q?D403pidOPQ6aPH0d+HqdFs6zRq25SsfT1Pks54lvDbix+j9kQ6URX34HPWN/?= =?us-ascii?Q?COsJzOgjSgbAXdKEwCpOuY6x5DTTEeOV4gvr4deSfMSEVeUtrvE4QCvcH1o1?= =?us-ascii?Q?J2ThqWh9LheWJnu7bkZtWU/AcFaVfx4ryQUKnGJYt96nE0G5MPZM4SKcGH9V?= =?us-ascii?Q?2cUSMikclYxzMtJy1UdHqZqXsYYkA39ZI+JuGSvETO+oZQFOlq8YAHp4XNiH?= =?us-ascii?Q?ChPbYKvXWZhLe2P44HFX99NFQ3qXkv3QawMjf/o0W0AGm1p99AvlUnLHXu/r?= =?us-ascii?Q?RnJmOgmN8r+7ZMBn9QiApt3DggardVjtcQzG0UmGnKxn2n6otHi8iv/u7MPX?= =?us-ascii?Q?xIFqjzjf1VmJBjLO4ZkP3GdiPIos5BdvhLqepu5tGRp9Swqn/bGH7PjeKwmW?= =?us-ascii?Q?C/j1AxNQK2L03/KGg1cjyIszb5fs+/0w49o0bI30woGv2LBd/ZFPMmr4v51I?= =?us-ascii?Q?9HorxQrtnNyWPZGsYQ/R6uwtQaZGvos27qWmYMS6tfnt6Jwbw6h9QOkIFnkl?= =?us-ascii?Q?d8Duw7rSyCuD63LXRMR5CgpLVja7eZBCLepUdshiTHBSzmRZkrR29/N1vAsd?= =?us-ascii?Q?qvU=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 5:VlLvnPz8FOmgDbQrzFWdYjV6P8amMoI32dcy+3hnwauMifffHBZjYrfCSP7/yHP6XRGdWzt9g0JThsuaeH5I/P3y3uzoX1pKMOsNMgM77AFTRTfGnazjHrzIcVDw0QK+s596q5has21yp2bw3ABezldIwxV9Zrjj7EFAw1EtLkeeeRqIC1fjWv9EChU18VbnLDG5mtqff5dwQwoWUrpMKbHI6dhLmN+FBMsN9NSTA50uI3MVDoFTVwvKMEOrs/EpFw0eXPwRs7mkBUZTwtdWU0akHA21uDvMfw7pKvdB8RW6vhgMyVqMHJlPDLS3YRL3Sq4DXyBiAuoJ7xoNRwDHXhpCVV4qnThsKY5XnppoAtqCNcZ+2dmSbu1LIamS8kcYuLCy5aEGSZLeliSGjsuCWbuguaCi7vqhMwTAKLOi62MY/Qb0WpCP5WM/HlFBF/GcZbYi8LSAfoxpn4pYg3pfn6idBMV15y/FcCKlmD3atWmsenJtd253TNh2EkLg0I0b; 24:guM49C2UtE7Ow7zkyoSQj2E925KvHZ55Bc03xK6n5mwwhL52qErTtlv5Z34sXMXS76KqkEVfEajcJ1q3gqqaElFLQuMsPKZ4BQ5/MewdwZ0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 7:wKD6m6/Jx4iBjjF3W3RgqLZeTWifoj2a+Zs8DCzmjSGNtDlMzNvmwvolmlNeNiCJE4J4F+jaRB0jaXT4SE3VSfC6o0LJpXk+T/tAwImbIQfXCjOx24t5plbc+UsfP3WhJtzs+u684woFekrPmgxynYM4Ficq08D/pWlPB6soiWdIYj9MSwRmFcr48u8l/fFXKgjahCL+uOJAG6IETa0BEdXHSmpvFIsSYWKLaqDHflLZ/ac/by7fFYWjqLoqJiNM9VjFkSYswO7FRaAgaIe8dFsNvcLLqnXT0D9ryPqkvb0Nc4QnDx3vqet5YmFq3t990njIegftZEnDXiwNDhRcYS/PqnxBIYJrY+Aqnl6KjOQTFRVjoGErqMxxJKi2o09Zm4qJ0sRo3+gBG3wI9cZFLOwbLMmMnM5RBey+/9UUH9nwcMJ+d7Tovf/JSCwQn8CI7ZdTjZlKUY13Py6rasShSBuP/XTLG15ZZ5KXzT8dk4o5l1VPVWx2vpBxsrW/FL9QyGg/fzxZ9SPbQgYNcpbDOJvofNsWjZ1Yg5twNPONqXMReBVgo1jdHOZ5avig0arRgkqgr2Ipstf5xcrrA++wem4fTbwrn5uN+XG/NKdo8gSAC5cd4M7Us6V9zAjbByMd4ODX+ArJeb6x3Stq/ElQ86stG4ARhWOSIpbYDXcNIjUVQNWkdBtCpu0dv0jDHbupwTuGNX9xounCoGJR10UeUJm1hBwBAGP7/SxEu7v/lJiQaCK2H7WFP8e8xOxYiwbOerzXEqmMW8Nu6uBeFeF2ZdIJfeuCB26XlY1COh57VWo= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2017 10:46:07.3085 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1713 Subject: Re: [dpdk-dev] [PATCH v3 3/7] service cores: coremask parsing 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: Fri, 07 Jul 2017 10:46:13 -0000 -----Original Message----- > Date: Thu, 6 Jul 2017 14:47:20 +0000 > From: "Van Haaren, Harry" > To: Jerin Jacob > CC: "dev@dpdk.org" , "thomas@monjalon.net" > , "Wiles, Keith" , > "Richardson, Bruce" > Subject: RE: [PATCH v3 3/7] service cores: coremask parsing > > > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com] > > Sent: Tuesday, July 4, 2017 1:46 PM > > To: Van Haaren, Harry > > Cc: dev@dpdk.org; thomas@monjalon.net; Wiles, Keith ; Richardson, > > Bruce > > Subject: Re: [PATCH v3 3/7] service cores: coremask parsing > > > > -----Original Message----- > > > Date: Sun, 2 Jul 2017 22:35:10 +0100 > > > From: Harry van Haaren > > > To: dev@dpdk.org > > > CC: jerin.jacob@caviumnetworks.com, thomas@monjalon.net, > > > keith.wiles@intel.com, bruce.richardson@intel.com, Harry van Haaren > > > > > > Subject: [PATCH v3 3/7] service cores: coremask parsing > > > X-Mailer: git-send-email 2.7.4 > > > > > > Add logic for parsing a coremask from EAL, which allows > > > the application to be unaware of the cores being taken from > > > its coremask. > > > > > > Signed-off-by: Harry van Haaren > > > > > > diff --git a/lib/librte_eal/common/eal_common_options.c > > b/lib/librte_eal/common/eal_common_options.c > > > index f470195..cee200c 100644 > > > --- a/lib/librte_eal/common/eal_common_options.c > > > +++ b/lib/librte_eal/common/eal_common_options.c > > > @@ -61,6 +61,7 @@ const char > > > eal_short_options[] = > > > "b:" /* pci-blacklist */ > > > "c:" /* coremask */ > > > + "s:" /* service coremask */ > > > "d:" /* driver */ > > > "h" /* help */ > > > "l:" /* corelist */ > > > @@ -267,6 +268,73 @@ static int xdigit2val(unsigned char c) > > > } > > > > Missing the --help update for service coremask details. > > > > I think, EAL arguments are documented in another area of doc directory > > as well. Update the documents. > > Will double check / fix this. Replying here now to advance discussion below; > > > > static int > > > +eal_parse_service_coremask(const char *coremask) > > > +{ > > > + struct rte_config *cfg = rte_eal_get_configuration(); > > > + int i, j, idx = 0; > > > + unsigned int count = 0; > > > + char c; > > > + int val; > > > + > > > + if (coremask == NULL) > > > + return -1; > > > + /* Remove all blank characters ahead and after . > > > + * Remove 0x/0X if exists. > > > + */ > > > + while (isblank(*coremask)) > > > + coremask++; > > > + if (coremask[0] == '0' && ((coremask[1] == 'x') > > > + || (coremask[1] == 'X'))) > > > + coremask += 2; > > > + i = strlen(coremask); > > > + while ((i > 0) && isblank(coremask[i - 1])) > > > + i--; > > > + > > > + if (i == 0) > > > + return -1; > > > + > > > + for (i = i - 1; i >= 0 && idx < RTE_MAX_LCORE; i--) { > > > + c = coremask[i]; > > > + if (isxdigit(c) == 0) { > > > + /* invalid characters */ > > > + return -1; > > > + } > > > + val = xdigit2val(c); > > > + for (j = 0; j < BITS_PER_HEX && idx < RTE_MAX_LCORE; > > > + j++, idx++) { > > > + if ((1 << j) & val) { > > > + /* handle master lcore already parsed */ > > > + uint32_t lcore = idx; > > > + if (master_lcore_parsed && > > > + cfg->master_lcore == lcore) > > > + continue; > > > + > > > + if (!lcore_config[idx].detected) { > > > + RTE_LOG(ERR, EAL, > > > + "lcore %u unavailable\n", idx); > > > + return -1; > > > + } > > > + lcore_config[idx].core_role = ROLE_SERVICE; > > > > Why not to use rte_service_lcore_add(idx) here. So that in future some > > changes we don't need to touch this file. > > The issue here is that the hugepages memory that service-cores requires is not available at this point. Keep in mind, the EAL parse-opts runs before almost anything else (makes sense, given we can specify e.g. --no-huge). > > Given that there is not rte_malloc() available at this point, we have a few options: > 1) Use existing allocated mem, e.g. the lcore_config[] array as above. > 2) Delay the parsing of service-core mask until later. Breaks "parse -> validate-> config -> run" workflow. > 3) Allocate temp memory to store the service-core indexes, and later free that back (feels hacky to me?) > > Current scheme of (1) makes the most sense to me. Yes. Make sense to keep option 1. One suggestion: There is a lot duplicate code between new eal_parse_service_coremask() and eal_parse_coremask() on the same file. I think, we can add a common parsing logic and on match, the actions can be invoked through function pointer which is passed in the parsing function. > > > > I added following code in unit testcase and I have 8 cores system. So I > > was expecting cores prints from "0 3 4 5 6 7" as lcore 1 and 2 will be > > stolen by service core. But it looks like RTE_LCORE_FOREACH not honoring > > previous rte_service_lcore_add() functions. > > > > testsuite_setup(void) > > { > > + int i; > > + rte_service_lcore_add(1); > > + rte_service_lcore_add(2); > > + > > + RTE_LCORE_FOREACH(i) > > + printf("cores %d\n", i); > > > Root cause found - and fixed. If you don't strongly object to lcore_config[] method above, then I can prioritize this and try get a patchset up ASAP. Great!! >