From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0072.outbound.protection.outlook.com [104.47.32.72]) by dpdk.org (Postfix) with ESMTP id D8832968 for ; Mon, 26 Jun 2017 14:50:10 +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=NB6Tk6QtKfX7WDlQ6MOQ2+5xYjq6abWb4DeL5Vh81nU=; b=bNKmZTBWmaRZg9Ok/Z0xaYI/6Co1FJ2yU6G4MqrFixTvPEPLF4OZa2UQgI7K7H6hL0S8aNZEEns1dTG3d2FS/zOYKvjpXXFLvbDHkMF0airUGMd5BFHeu8S6D1Y6gA7KnBmMsStUolqOL1kgK/Uc3KQBXNjyniZ192SW2www8mg= 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.123.212) by BN3PR0701MB1720.namprd07.prod.outlook.com (10.163.39.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Mon, 26 Jun 2017 12:50:05 +0000 Date: Mon, 26 Jun 2017 18:19:51 +0530 From: Jerin Jacob To: Harry van Haaren Cc: dev@dpdk.org, thomas@monjalon.net, keith.wiles@intel.com, bruce.richardson@intel.com Message-ID: <20170626124950.GB5612@jerin> References: <1498208779-166205-1-git-send-email-harry.van.haaren@intel.com> <1498208779-166205-2-git-send-email-harry.van.haaren@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1498208779-166205-2-git-send-email-harry.van.haaren@intel.com> User-Agent: Mutt/1.8.3 (2017-05-23) X-Originating-IP: [106.201.123.212] X-ClientProxiedBy: MA1PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (10.174.56.27) To BN3PR0701MB1720.namprd07.prod.outlook.com (10.163.39.19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4b011c56-b13f-43b8-f6af-08d4bc91e016 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506067)(300135500095); SRVR:BN3PR0701MB1720; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1720; 3:6l1tivWE1XYe1wNhzQ/c+C26KQuKmnrqstDUfwf43ktVlfoAwjayFOKOeBPs7uYdZEHoXjmlAmC5n4/i0R4w2oskundgz9w28DuEo+J4s7zRv99m/v/haUpD7ZkJOJZK3FzaoiSLiCGydRLhEx999SE0OswZYL5p7nxiaDsxJUdimUmFk/QGm1QtNYt4WVaObPdqTuqnNEpET6NAgYb6Mib7inXnr4echbQ7+q9vdHe9j7b6Eaf3KtLwcJVyWVOJFfNJKLC1JLOuzJ0cXk/OLlFm+BtAzaeJymVNbaSdWiOW6GFWghoosfK051pJ2oWYn1C+PndELTXM538tDruRG7YDntLXA0UPbMmd5wA7m9aLUAr9NI5qXormda/Vczf5Xi86IHOo3lDOl9U6VSBvKkExkLyvS1IRdhwalZU3quo3j4DDJRMqeAUXz9IoJ5MMV4Kos26N0MSz/yxf1hEvDgLctq1w8L6d+iLDEp1ZA17c+JEW1/FGcXxLUYh0Rz1amg6+YsOPZ6k8cXlUhbdWSD71XNS/iJyNbaH0ffZPySw1RYD3vxNXBvelwZkrJLuZWMhZVk+pPdcToneIb5yZ5oqPqZ+SGZVvPs8K38POptHJoPKEWULoyR3FltwAHKJYfx35r5GhdEMqGSeTDnvMiERUdzmOQw+F5K13Lg9Tr1UmEOpY7BueVenKnhefJ4/ZJYjEoVGHZRCOvvb4tNSuiXgVDvnGOxKN1Fk6OGCb2tg= X-MS-TrafficTypeDiagnostic: BN3PR0701MB1720: X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1720; 25:8pd5PBSyjfWjVRLTTjCeYDP6fzlqXVWZKuJBOU6dLypB604elhERjyOlW157oStfHOsXqy3mlL6ugg4TW71BEk9bJwRnzxbfNpi/Xv+dSix0HCgks8TGyFnIkYRg3LgqfmytS8nzRP2LE1O9uGFn2zblBn/M+azxLIqaXnwn72Zn1fETg0MBQkZqjfIV5PoZ5DLupWXpDJm2hZKwu2tKLI+F/DpJl5zFxrGie5qP1rwucm90uezPrdULvUKWFdWXU2G7RrD/4PSeiLN7OZCx+OhzZxbAhNEDX3A3omQauPcB+vPF67zfFHGGqXPPjev+IvSa4rAI5Yy8Fz+em5iLRjq0Y24rkERsLq+3aMHntYvOf/AHdmZOEo5zgZxvNcubST4UYHrM2Mlp0voST1toltDzSQBak5FqnxkQ2SqnDnSZBgS6ksHXAjJaiJc8i9Y8Up/bdtF8RsvsYuduhCWyqx2fLuuMewpiPERGsatAl4Ls6+yym9hUzNX2tvfrPqYsKukU+QB+cobXtXA8wluwVnz2K2T9o754yoda3Y4Q1vC+JM/vHwpTd95b6X81zJ2BrTXEAlFoQcYRZga/tYgkzNsUx91DMuN6N+psl+OVPqWWmQL6YzVCtzHl3vB9cigVgLRk87X7311HloMGuNkxWq/C3mVv8pXVZAiuQecLutKTyK+EqhWA3BK3frQgN3PZvtWNbNGokswWVq8zESl5NNhiu68TNLaflWOWdgl66psUmK9jxvgkDhTRhNPTtp6z/uyAsuqTSQcNhxDWMZu6bG5FYKJQ0KXrSKzpl+lnZiX///LXP+PBrz2+zwyrwYrA0SILLq2jm4C9+xwrjPVc+KpO2Y/YwUsAGqc5dnPHqKJ3msJqDo+cCtq12B03ULJuFi+10Ro65G2ri2zFAVJewE91XOAiyabb/5dR2D6xh54= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1720; 31:RkflP0TLaxW31Urd1iyj4l8tTilwG4LwaTG1wjZs7KPA/TrCG6UxDWJqf+PVn11Fcds6Sk4aatfzwjuRtJnjbQH9b6+TqQdPgcrs1RIKveAzp0rf8ep58wBnrYx+G89vesTXhPec4y5nohcLpwQ0azTpPLr03nk4kTedH1AAoFi3Odz1MoJzcjlX5Bdf4Y5L9lxabgU5wFo7Nx/14UB2vf92d1sIGzaCuSBLMOv4UnHrS1nIiOTi86DZelG6QZVE8ZYLJbcZMR2jA3r3R1eYFdzFO5O2jdE2jJMXGynP39fgs4yqlNMRk5rb9q7FHZ8Xizv13hWk2b095VIlIacruNL6MqiHRAWbQOV+YqH773kZHLmUT6UxbFF8cnRMQqnfw0tp+D0SddABnZmiEAVmyr8FIxtp2W4dEVnADLWtiPWuP3c8zfVGOfA3aUuv838pGavnzPF7a6yZlrLiZaCFzkGRLKXyN4UsQT8hvM4kiyCCOxNmNdZtUY3r4iju0XhNk3N/4Vu3itPyEeHvcBkvQB1/ptwWZ7iuBx5V2BpagahLb8My2AlbkB53LIuXOvSNRGKS2wgBpM/w6L+UZiUycJrkIXPdupc2bPiPmHD6gZGoXhmE5UAOc3jQhu34YSNIfcqHUyNZrVTZGUbaMVLstDE2uxXtTwgEqCGdcKc7OUMfykrVcrn53QgBNAUJHmNz1M9fWTw6nbCW/fDERYwXeg== X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1720; 20:ZA9L7A1feHuU/sw/VDawORJMXYp4eb+LUIUngeQVEnjuATew8KCqNMKdvW64QFdX3QIMXZROmFCpZ58fVCRnP2zbogNBFdN8q5bZBdd9IfYI6YuNzOA7Ln1Iwhc0gPlolgb2cXC83rQvLNNDG/xPjmrQNqP5aDYOL/ahT0/SIAvL3AeqRYigvdVbRpI1ysFujq9vqqq1utkFV/Wfntey0UouQI+hEcPC5XCoQJ+1LfOnqWJ1Btq5zkBu8WA1PyzL1ZeULxaCitn6pALNuuzhLeQJ6W1uujqsERTAqRt+lms3KoKrZl85aNtG81r/zgaTSyxreFSz/2CkkGgEz6H3t0zLT+a7/UrmJx40siuHZYDSjJTzPe3wibd3vz4me6PgShBlc/AkzdHdKiDdicZnx9tN5LOCozbK+K5IH/4tnxEncV69YlT9FzQU7XHzU/jPYsb4ZzhgcLqBDQbGx3byddhE2KRLAqv8DpINitSBmHfiSi4tSwiQO07/a+3ks13+llvAT39trcKdV2aksfnLCXJZzY3ddoSt2joOxLwIkO4awtQi2fQ09gb06/KfrkCjjJSbVIlIi+W5Mumql2ZeYh1AE8wSYtTTdunCqdpouyw= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(10201501046)(100000703101)(100105400095)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1720; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1720; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1720; 4:EMK5cx1se+8ThHRcQEkfvm/oYqGuqlst1Kl82h4c?= =?us-ascii?Q?XArku5kBTk3XzNBJr2INqT9czLAoDh1IIhUNOzTvPBvOo91nQ7DY/P50Xee0?= =?us-ascii?Q?YXKev4yyl28mjVTnbD0aSYBOsw4hGpABvD0+umuM0NKjv/jlgdbRqmjSDzvB?= =?us-ascii?Q?+AZ9KpIUf5q1dPwENMFEaeILlQ9wK1+yy04aSdeFqxxnZReBeh21exRNdson?= =?us-ascii?Q?lcKN/LeQqMRxEAJz5Xie0b2nbl6cfW5jMrIUq9FLSB0NiLI2urb3XiC5pTro?= =?us-ascii?Q?0mQelo8GM2PnlxFh1dkv8NSVuW5xwmEP6vLnFHo8cBVHhK4e30XoFNiS48/e?= =?us-ascii?Q?0Ty7UjfxEmpplyySOVNL7Fzj67Ky+YgPIYf++kKGzSxrHqdNVgWhdaen7pWL?= =?us-ascii?Q?2pRuxy8y3YnmAuPd6zhi4+4hi+jejlI2Y2evjXPnTtWm4t+DDPXFXbxj4o5n?= =?us-ascii?Q?s13znf0iauqfwn/AyWTEVekYH9HSS5H3kZQX+fY2XcU4ZIpUhxkA1fdy+zQp?= =?us-ascii?Q?y5kx9IH8ryjYJoxptld3l0yBtc/PnU4CEOExRj0LBmdRxC6LTAG+A9Jo2zsq?= =?us-ascii?Q?+FhHQofC2d6xNg0du/Q5w4vc2asSW+w0HKQfn3ym0hBDg+XeS5e3r9keU8r9?= =?us-ascii?Q?YsqQVbkC/f6UjXqMfQZYio8STUunfkQjcIP7Qu0hggveioG6vO4MZTy0UXr8?= =?us-ascii?Q?OWnJ3fbX/733HbrphIGghvScrZAV7g/9qCJx3b1Sc2Fgws68du7Y20Z0N8R4?= =?us-ascii?Q?Q+gN+AKJ5BGoPZcudyQV45rrhUwL881Zckfp3IlH7amYJIVwhqHQpJjE419I?= =?us-ascii?Q?oN6lCsTMlgqhwsBHi8k170vFlxJ5YtBK0m/xv85Dwr54/5kWCoDWj/3691P9?= =?us-ascii?Q?xyjx32KbKIUvHXDfXIOKT8xSMxjTRTPIoIjYWyyoFWX6cC45Prtq5qHwMoZL?= =?us-ascii?Q?ozcgOCta5LqNf7sWXH5Ra0M3DHXW9VnISXeZ3WItnaGctz7KVzp6lBxze8+k?= =?us-ascii?Q?NbE/dMAFkS+Ye7Y9xdPWbXpFjbZO9ESJfrtsbvty31JU1S6mT9VoHqyq8GaX?= =?us-ascii?Q?0xTy5HaTvWXxI/Zs00HliAhlJs84qngEf4my+kPZuQkumeWP+A3GrIaeZgod?= =?us-ascii?Q?3gi9r5ekHQQDOpi7lY8B13vpu+X5I9nQtdt/UBVcca2HPpMNKiMbt+0wF3tk?= =?us-ascii?Q?UBUnaOSdSWdmqbQ0L85CK7uHd9FePkW0FZUl?= X-Forefront-PRVS: 0350D7A55D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39450400003)(39840400002)(39410400002)(39400400002)(13464003)(33656002)(76176999)(54356999)(50986999)(81166006)(8676002)(305945005)(1076002)(7736002)(6666003)(2950100002)(6916009)(42186005)(23726003)(42882006)(83506001)(66066001)(5009440100003)(47776003)(229853002)(6116002)(33716001)(6246003)(38730400002)(6496005)(50466002)(110136004)(9686003)(25786009)(53936002)(4326008)(4001350100001)(3846002)(2906002)(5660300001)(189998001)(55016002)(478600001)(72206003)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1720; H:jerin; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1720; 23:vrW1QHxRA2dmrQmuT8V8/nK0t0K0mrk19tpMq91?= =?us-ascii?Q?OzQH3aTF8XMHJmgi5riDPAof2D62UKzTOskNgRIEbFJm2lkmN2lLhN/d82Wx?= =?us-ascii?Q?S04Gd6++C20rlqSrrz0DHNbCAUg/TL7knpNYqgNV8fUNcq8MvR1ho2EgsDsV?= =?us-ascii?Q?LRgpeGTKLqaHZzpGBreysjAcGYiFGA3lGrwFs06LfCsZSfZenx3NLyEQ0jPo?= =?us-ascii?Q?OtVU2n8pGlpugGkJgh089IWxOJXr6NzNfVjx0N/fJiysyousqFaB+/YwGdPI?= =?us-ascii?Q?SLG2Cfbk8oFkcldZJo0RS+7cSzvdv8SgQrANUvvRv4l25qfzhFjVphI8Xer5?= =?us-ascii?Q?ngTevkZGqPsgOzIh5g0ssSF+xu0GEyowRpdEkze8oGwxwYFUKeDLtScmjODR?= =?us-ascii?Q?rdiO8VIYqYXDzEnvLpSHqiyBBZr1syUQ68TXlhT580vTJpD56QmNyd4Yf9k3?= =?us-ascii?Q?Nbv9w4EUL/hXciazNLgx7gutY7YTzIV440qbvQTB71z/zrzXZIHHenw3b7kb?= =?us-ascii?Q?KIWwihGI3+tacIHOUWwQnbr4OoON0ofoyFc3AzOuGpEirV+joeNE8sbnKBG1?= =?us-ascii?Q?33YXiX4u9tX/kBurak8fpKnWNHRjYz5MYTk9w17N3/zv6ir3nKvgVoZAx9N1?= =?us-ascii?Q?lUFrTEq76XmJEdSysLkAQTJ06GPtOLdtf2fPSe7Z7xpL8jO2i2o6vZTmDupw?= =?us-ascii?Q?LJplKkZlQYK/to58F4wRgX6X9R8N87Sfp5hzrdiGQLeLhBgyGOT4+PuibK9v?= =?us-ascii?Q?USOPqk66j2pgWs9859dNRbz5O+hgiFxCm0X63eglXqywKcKrLzRHroivcWuL?= =?us-ascii?Q?5ToYbxZ3CFUPbPdNL4ge04s9tREwaJd/FPHd/Cc0SQ2+3bMxPIxl0LP++9nk?= =?us-ascii?Q?VDYDO7YKhG8M+RSKrqytAfVEhQjkF0ag6/CBlAbU4M6cIUX02wgOQWyrDFgU?= =?us-ascii?Q?DBegaDtmhXHu1qZVS8I7gI3yq1V2IHdS+dAsyTcBeC29jP6YHQ9caF8qO4Zn?= =?us-ascii?Q?Y50FT22FKDrSvqVplpiju8fCsa/lrigmo9RFqf8jvZObwaPV99uk2rOHF9BI?= =?us-ascii?Q?TsYkniizMPViIp6ziRrKsKoRURFShFo/q3wt0WBGVanxXoxEQuMGDAgMhlRL?= =?us-ascii?Q?bOeTmcf52q5v1y+SOTgif/pa0G0/cLLkSHx/q14mcy11GzamsoNmBNp3ciJ1?= =?us-ascii?Q?QZ3OhcIEQBp0etGhp6hja6L5fG2UlOcvY9j8a?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1720; 6:qwrrBqNYTInaeP/JD5+RELBljS8AYsOHOM2PN4nl?= =?us-ascii?Q?iLcyr3Pz/QBQsn2OUnpayLG2Q+k1lsqzUnqUQqzWXvCNbQ/mxFmie5b2khKI?= =?us-ascii?Q?uCRI3bd0qlG95doQQZyk7v/1P0Vz7SPKft+qbbUfU24qrLlDunnpn5V+DHBq?= =?us-ascii?Q?n47mYoaSoedvWdgIGEb2Ut/1nStXaeHS8HSowaIUekg1crBaB4o1VpDQYEHe?= =?us-ascii?Q?w5TYYwu+A/pan3vLFqjA9vKxWpG7pZktBvW/2+BwkHQMBsbhPA1vOgnyVsl8?= =?us-ascii?Q?8FjNWN+DaxZhMLJ2eojhdTPD5iDQtVMdjPw7hXEzggoR+Q9i0/jaTRnOWTUy?= =?us-ascii?Q?8hcJSenrxXoZxxhZF7G8+5EYddMEa1cW5OdcNKRYXcgpf4p2SS/yUrGkkuHl?= =?us-ascii?Q?SB/Ib54vlLZp8AzQxHZuUVevw/PXnb7AM+4SSd6cKL9JKEOxo//rKsA2R9ES?= =?us-ascii?Q?90f5ma68oUZYZDDe2JvAMWPTjgfsipMKSweideb6u1+AwPg/XC8OP6NSdiUq?= =?us-ascii?Q?vQIWW5GVLcdj2lTH6H/NarA5EyAA2f11+ylTmW2Ethoc4oRmJZr8H/s0YuZ+?= =?us-ascii?Q?r0E6BM/puk9hOoN1+Q7RQeYhVarhTImRnXrBxrjMyWK8UXYqNSN78jsmu/Ha?= =?us-ascii?Q?PW13txK3RLEz6KJeQPVNA5bdE31JayBsZTiT3ec59AicRH8oN7CTmKdPA6xw?= =?us-ascii?Q?aBNnOZ1QuJu0gn0FwIHSQhj/xW+58Nq3VY34FvRuTrlZdRqsCLBEZZz0ivLY?= =?us-ascii?Q?WFqAz220jtBVa82kfwvrinEcpJuV51mF2znW5lUINGc3HdWI1/TAZyzN8ccK?= =?us-ascii?Q?jdeRMOXUE4C/mfSerewY5anrMIxsG9C3Mp7vvbUc3O7QTwjnlqhkDCWlPByD?= =?us-ascii?Q?UsIdDe23fjCOnUAaFDyX254i6DVFaGZ2MmQzoc6/7S0gwHYBMA+Ii/dWQFpk?= =?us-ascii?Q?cyPqmufoakHLpGKwVlqFAkpXMiYECD6qti7I/ckF8v1E5x1w0oTyFofjn7XX?= =?us-ascii?Q?XoM=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1720; 5:+GXs9h8s3fm5M2rbF5Yaa+7/OX6ozNw06gLfShZ5PdnxujCilmdtv0hM4ye6EqeudY37318s4CudOgNbMV2I/5L6QJSU513pAi1APkBcF4rTPzvCkrIiidMzdi/TB+SRYY2ljn9UtdI5AAclV1MsuuPlJlL/JyGZrUQOxWgytsKnbvOf3XeoDJd/3+t1fw7Vw/Y6PmhuUepeW9wlfel6OQ0BmwGMrW39Hwr/cRgpEerYY1//aVlnCBnyTnGNIqgN+3EqBouhyszZMI8QI3SYBaNb8cPWjK/gC/N4GDpbxnneAkIoQC26FvbAWhWuid1gJXQiULGFWow/+T8gRgHkg0h+tRJ0YkxuTALZoW4E8jgh+TDnDtGCUqC1CsgdqR5oKuG2yJjq2aghar6r8gVJFZ5iADaaAOHfbToWxz34oHS351uUeE8LAhM/4D54allxNH6WPj8xrB/V8KiBe04HFWIleFNWARoJrITo677on6dAeIL8sE9aWHMRN2UXbQ8Z; 24:UHaC0eBmmvcom5GGbiqWxseeE4s2yGNQ2R+cg90ywcGdbjw6Td7nmgz2W+vMXJ0a5UiVCtUhemeNpjoF80icrkEOvC4g3cY5EPznLDWKdow= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1720; 7:YuN7WyAjUEr22HtIOxr2pfwMkwE4rU9vfBtk64Mlf1tmFR9GXiXpZx6lGgPZL7k78ykqCRJi2EcDfpRcTfeypt2abomth0wGWZUqV+AeuqVgQRF3OHgWVO0ns9lrjwOSyEvE8JPhkH3PeoYmWpeFo7EeeFXVC0jsAqBa5mcYNbBO+1uxTLSSWa0HQGnzt1J/vbUzj5gYlzsy4TSbUH1+r5r/ADG7Cwq+Nc7YhxrhkXa5w2m7yUkMbIYlYJzmn8FM65l+9Bu2yx6vaZnLcT9+2NupFIhmX9mltcir4M+v1o4Z3nfwRhm/lvQhvAc7mzbmhsRbVj9Lltjpde7dkj55rqBGXQJN/K58AvmDGMb6GnDNjOkK+ZWBvQ7XdjmaCufic9khxSREr3YBSRAj9v/divmpUMp3jtw/UxG9uxX2lBjORlkmQCtjl3E6xxEtgPLgzfy+k1h0gLFyPnozo+G0ju1E1pH2kQ+wzF9iWvysbLer0kIK3ksz9hnskZ4mfm70BDWqt7L69mmLiPKA5I9rArCsIWpN4W+MKfY9ea0s8icWqp4KECQUf0nPjXnviDIhzAph3P9aaLj7C8J26NQLrzBdj1vfuQRAdWUO8UDDcyLAu64xZyNrGfxckQsNx8rw+dXA2ZcI3wYDp2rPojCepfuqxbYmKxKP0SAUHw6teGuPufoxVppU6Z6XmZZtm6u8M5c36uFKv3NWTFDMIl1dmmdqy5yLqLJFJ8F2o1IpET0yoY37zU6n40YrV7HIroleDPrPGKHogXOfHiIIBPFefDhQWGaZCpy9U+llkTnyYgg= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2017 12:50:05.9618 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1720 Subject: Re: [dpdk-dev] [PATCH 2/6] 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: Mon, 26 Jun 2017 12:50:11 -0000 -----Original Message----- > Date: Fri, 23 Jun 2017 10:06:15 +0100 > From: Harry van Haaren > To: dev@dpdk.org > CC: thomas@monjalon.net, jerin.jacob@caviumnetworks.com, > keith.wiles@intel.com, bruce.richardson@intel.com, Harry van Haaren > > Subject: [PATCH 2/6] 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 > --- > lib/librte_eal/common/eal_common_options.c | 78 ++++++++++++++++++++++++++++++ > 1 file changed, 78 insertions(+) > > diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c > index f470195..3599784 100644 > --- a/lib/librte_eal/common/eal_common_options.c > +++ b/lib/librte_eal/common/eal_common_options.c > @@ -50,6 +50,7 @@ > #include > #include > #include > +#include > > #include "eal_internal_cfg.h" > #include "eal_options.h" > @@ -61,6 +62,7 @@ const char > eal_short_options[] = > "b:" /* pci-blacklist */ > "c:" /* coremask */ > + "s:" /* service coremask */ > "d:" /* driver */ > "h" /* help */ > "l:" /* corelist */ Good to have a corelist variant for service lcore list. May be for future. > @@ -267,6 +269,75 @@ static int xdigit2val(unsigned char c) > } > > static int > +eal_parse_service_coremask(const char *coremask) > +{ > + struct rte_config *cfg = rte_eal_get_configuration(); > + int i, j, idx = 0; > + unsigned 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; > + > + printf("\n\nRemoving Service Cores from lcore roles now\n\n"); s/printf/RTE_LOG > + > + /* TODO: only scan active cores in coremask */ > + 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) { > + /* TODO: enable flexible master core */ > + if (idx == 0) > + continue; > + > + if (!lcore_config[idx].detected) { > + RTE_LOG(ERR, EAL, > + "lcore %u unavailable\n", idx); > + return -1; > + } > + //cfg->lcore_role[idx] = ROLE_SERVICE; remove commented code. > + rte_service_core_add(idx); > + count++; > + } > + } > + } > + > + for (; i >= 0; i--) > + if (coremask[i] != '0') > + return -1; > + > + for (; idx < RTE_MAX_LCORE; idx++) > + lcore_config[idx].core_index = -1; > + > + if (count == 0) > + return -1; > + > + cfg->score_count = count; > + return 0; > +} > + > +static int > eal_parse_coremask(const char *coremask) > { > struct rte_config *cfg = rte_eal_get_configuration(); > @@ -826,6 +897,13 @@ eal_parse_common_option(int opt, const char *optarg, > } > core_parsed = 1; > break; > + /* service coremask */ > + case 's': > + if (eal_parse_service_coremask(optarg) < 0) { > + RTE_LOG(ERR, EAL, "invalid service coremask\n"); > + return -1; > + } > + break; > /* size of memory */ > case 'm': > conf->memory = atoi(optarg); > -- With above change: Acked-by: Jerin Jacob