From patchwork Tue Jul 4 08:05:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashwin Sekhar T K X-Patchwork-Id: 26320 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 22B8F58CE; Tue, 4 Jul 2017 10:06:21 +0200 (CEST) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0085.outbound.protection.outlook.com [104.47.33.85]) by dpdk.org (Postfix) with ESMTP id 3645B271; Tue, 4 Jul 2017 10:06:15 +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=tzzbfbWpUrcegqDVtik0PD1kC+JIzvIcSdP2ALzHS1g=; b=n5wsDBEQ6UD5XuF0zUGfgwQA1vkdTtQk2KuOjhNEf4Zn6U2jT9i+nyA47iejONFrJ+3NuLbSjRUJ3JppMT8oCUC4CANn9Y33I2Jupt8y8lFbfQayWdNZ+Wc7fE9QTMKZaVvbTeHWsdzgPJW3u5PNNh6LVuYfkYLThVmUGkipmwU= Authentication-Results: caviumnetworks.com; dkim=none (message not signed) header.d=none;caviumnetworks.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from 1scrb-1.caveonetworks.com (50.233.148.156) by MWHPR07MB3070.namprd07.prod.outlook.com (10.172.97.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Tue, 4 Jul 2017 08:06:10 +0000 From: Ashwin Sekhar T K To: jerin.jacob@caviumnetworks.com, john.mcnamara@intel.com, jianbo.liu@linaro.org, tim.odriscoll@intel.com, techboard@dpdk.org, govboard@dpdk.org Cc: dev@dpdk.org, Ashwin Sekhar T K Date: Tue, 4 Jul 2017 01:05:56 -0700 Message-Id: <20170704080556.28677-3-ashwin.sekhar@caviumnetworks.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170704080556.28677-1-ashwin.sekhar@caviumnetworks.com> References: <20170517181949.12002-1-ashwin.sekhar@caviumnetworks.com> <20170704080556.28677-1-ashwin.sekhar@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR15CA0067.namprd15.prod.outlook.com (10.174.254.29) To MWHPR07MB3070.namprd07.prod.outlook.com (10.172.97.12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b0ba9faa-1470-4b48-c750-08d4c2b38819 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:MWHPR07MB3070; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3070; 3:jLFigvh/YZ7/6hrUdpCpbWzHig5QNqZDJjxFzfzIWGlMLQyXSDl3dZUGAaUC7pDBAPItIin0YKMkV4AbG0BGT6PiNks3GCn0W4GjGSYPmJJl7Gww61FOXc0uBKjfwpDTBi8Q6kE7hmNqEAKJ2/RmHGxQ45I/9O9F7pGecOiCpI1l0XDA/UBl7pxsl2lKvXgyVFNY9zQElkhkKa9/5xNTqXoqYURlKqBnC+y46gDXdz3nq0UatCiO7uS5NaCVwqQZJvyOraUbgp0KT44nfT2nNrgbgZe/KDwYGl5CbGYIHBY0s1QWERhiBkTd6qHRowQNLEOExtZbHdqbV9aDYOhmQapDgsriHLMd1i+UGekYw3H9gEpH9I47aTXRhMW47tqI/53QQ+zumhEM6T7sPKTrJCl4hYmBAh9+EIK9HVoVn6qm4vM1OsALbe0TuWxwDxiB4EkWrpDDwEDvx9L4yx2Q//scBNAUVT6pdt705nGO5zGDX3F4db1j6+uDGSBeDMPa3ngEr8ylTtIdBJMC5qtJe7TkexkVi+WD1fe8ceFJGHFVTdq/sMZky5vPvC1szDpUC0PMEUGtvL8Es8sBmy7kmziZ2KOuo544KQLd303kTQS+0iO7RBKPLqLJST3fLpQW1abURutzWxbheGXJL0X3DI7fhHfLXm515TS57vHRnhleE3zLveN1FOe0iTdHjzv14E7iO9PebxAZQDj2h8zCXv5V1CzO9OxUEoojrMQXq6FBlCHgKkhvGEtYdvNrgozD X-MS-TrafficTypeDiagnostic: MWHPR07MB3070: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3070; 25:PNSZza6jBlDVp5r0i11YWcacf8Bs6xZI2ZWlqsdSCDmVMA4ImNw3Zd/he0mtcD82CamIixSReRn1yg0iUCc76XVuchIW28L3WVdXpiOMNjRIELMJna5n7RbFg4lqBgCNXdRjpxCbwCKf8zlIGt94kE/xqSKpyhT+qZ02/vJiPb+rU2TfAcC+Nc8h9kzHHvLnPLEWkBdNxdAFdyTrral3ma2xjbZFvVkxGYqaZn1Q+LoRMwuIFToH9kgl4vXdRLFDW8gogVWxqtogCkRQ6wOpuGiw5o7G2yXtQFgReZFpvWilbyE7P8u/TmSvimnBg73shNhsjks5G3gSDBy6n97f4jPULSWlMoQZ6KH6Ag8vhhwOWyIbqcWzGGCe/PEVs5rCrsKGC58CG2bkIdlkh54dOp9ldt53sfQYiuV4WpLttRus/0vLLmWwQDrc5DNlLm45WOOdqlA3rTIYNskH7LUWWF32IURWYd1STxa21BzIaonsMcdFYUTs8hcYWLwJEiV/cjZ3Lg9Ki1vP0ph2bknGxiz4X/kGeOGKmTx9ocdP9sbpvHuljquZqjqaVvY59lNLbOn8Sr6iNa2uLVA3jQCwqwSdlxe4vFMCwCwkt4Y98zpqsdUD3JZuBw6umhv17AoUSrY/eygTdJpFxiTX2Uvw2x6I+JEv/F4vLFSI+kVeu1mPDFzMkw8dYUU6I2/JFs91QPRI4TbX31RBOsK0E8cvhpuEeHEDcKhcYoa0p9CVCyl68rjPJdnNJRHFUV+VkyQBDtHZnOh1eJsXfPiyMYbonrx/aSrt7ukr6bQMKqhUrj9qwfg58icfxO22Tt5oTSecnZXg4+dFtz8qL+PyfEY/73oTIAllq7GgTxiJDAU8L8w/QXfwGAxPbEZ6wDnkHbRCnhyB3z2/kk93QlFi6kXidrZYsl+cyU56KVp8B5P46mQ= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3070; 31:a1OI/3hcmuAhUv0guPKh89aI/dD3+xQ3Dw2+VvyeT3sSZXyrqKfYqpvfo2mItThF8LlRprIqnJ6SMjSF0lxF6yguDZ+GBflDqRlDTKEJYzCBuX1U7c1rc4JbWyrrYh8CMCOl0W6fomiJtk7b8EGGn+X8SxwKq+MRJGOzomcFKdOB1KUK4/9yV/dzhpyB7Qie3nUY/wM2Gztyc9yxB0lK2uMlJ1MvD+drM/MNtB5/KhAfSwH6YBbhe28pZr+I5nq23oMHUin4PiGzA0DcH++2YuV68VVhHFpBc4reNr75UnaXHMX0HToa3ACRlK6OGc8Q7A2eKmWv2hDWqlljM850IKAuz2sHGXobW7+zUfRAWgdmDycnE3xDXNUSzvxy4yaSGNEn3iPIdAZ58V3vs8QZJapwPpNG25GaafDqak8ZfVPqho4/ua2xG6FBV/Udba2ifPL496ZdM7uSRpBJq1FMrBz2hc4vpWZblV8KowX4GPj3WZchsVCTbETVuBxW5FLgZS1o3Dv11O+d2vLVRWDT1t2nOcAkZGBWBmuPHVWgBHSYHW51zWavKauaGpz7F5lgy/Eyl2nFo84TcKr4+dlkq+hgvAbeBzA7Zr4hkwvvp6NXX3UalnBcVrhMAM+VcIKtvmVL0nt46tQeCCifhPPORvfC2zlNo5PSo0BHvwMngqE= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3070; 20:PBPV4O9MsoO19RzdpmBrCCGWoUSn6tOKU/ObGHfpHDvnQNB/grRDQIEdsWZoXaTbXwZniGOEmAIee1nMmlcfmQZjqPvJcBse4iwh34jwVIUBla9WqEBVDi9FF4ZQUHSoFy1Z+1xB4BHuwBdztzqUuaZdSwiu63vBHEJJQrSx+mcHUih6amCsJTrLht4MRcWeis1+7TNR0ysmnWfF9f/+yFW/oTrI/w4rgzTNdvmdApoVFodry9g+a8QM3kcLklYzuLp+bEqN4YKZPLtXcCEDkBLo7b7nAZhcozyMDDcNVRP1KI++GH0K/PsY6ReKZyRv0u11TVHm77OSXdiExbJJRtMhyJgfGOSxjLJiIijxUN2blWcKaU/Ea+sNMdrz2EXnyHcoToApCubaAiJ2bJBSRg8zlj+SLil/rh8wIeiaPo+5uvGOfKTWHzbCW9hYwI7WeROZgMUQ6S7Mysu8KrMbQ/WIUK06OSW+asdQXt0Qk0j4PBtpHf57VmwNEncEN7gmvUUm1Zy0+uBVU/WatlwDTH/00jlAoBhtQragIfGozjHwyU7M0h4QtaJHeVUAc1XsCXwR583dKS+N1FAn2XgErnaWb6aFwNgFiS3obmzENR0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(788757137089)(148574349560750)(158140799945019); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123558100)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3070; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3070; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3070; 4:zGGJzz4UZQTqI3n1RoxwLu1sPIyZEJMeKeKWF2SRcn?= rz8/JVKVEv+AISWmV8nKsG/tQjKeNL3YAyqmZpfOstCpP8utJ1ZknFD4VRPQv3MpQsfH7hu78x5AiUxNrKuDT1aTxfyqRkGs3AC7LlYEQuBEANLOfWyZlSDAXVENF+hhfrv0jNEmb+lX7ipG7fK2ywRFQL20TIBNs85+awWCmA5+ktlPWfJHg2lRB20LeQ1P2bMOmZAlhuuXcjS6Frt5aaU70yWzBRftZriezBdC/xD3TWWGgmaJn2Jzu5+W+VGNSkQTs2vnoDVszEV6KcTLORSsiKUCdqogzCRaVcbQzKgy98bPu13qzywOA62k4qrBghhYl5hoNTBVCeDKF3izktKu+gPjybVMP31OmaANfl62PbaW7ALDK5I1PX0zqVWk4YlXJzdjRc3UelZgLZG9SXLeuRjItzzA7adC+lR4RQYWX/m3OjrlaSxC91bTYfDma+NXJxsNYqQ8ORg6K9aggaLGVCdBFeSzwt76KmXY5My34ZrPL3FRw/P43PYX3xteYROdVciuNVmkOXCXcZa2tKZYAcNP99ERy/TEFsQfxlsdIc4RC3Qupd8OaBMe/Px+v/Yok/M7WI47/ssW2JEFnO48OROjaSlkGx73hsK1aBl0mzr/pPsSeY4Ummaio5nLIsswB8fPkOW/i+2jugYrgCoLGrFojls3uvdKgy3Mo+ZJYZxmW1BMkkYUgiLA8UlSejRiJBp2Y9O/ucoOJ3KqZxgTLdCmZ1tK2ZgbGtZDDnY5G2RJ/4KtfVb0U++BGGn0h2D2UBplx0ekCs2r/uHB/AjpMdgBjdXCXaBk+2vgDCbUm2P9eKJ4TQqoEXMQPFKOpaIqpawmuaIbYX8LFCC8q6lrVsws4oqAntbNcZfjqXDoanb7DjmvtZApNkGS5Xp04tmMvD+hAk+n5B7Jm8QvreOr/infLA8CsIIVcyDiYUjCiYCDtla/2b9HT4J2Xuq5h6KWlHkkc9gh+f6yLQcFNsbahQ4QCBZ3bGuKN05qXbmboCYqdUcbKT61jiheDtO4WJKQ6oXPwmL9Bv799JEOqd4+APl8dTE07Ms1lsb0Vku6PQaqbmK9ZsqlIRHXLE0p7H9Yw8TMtqdO6GSGBGMyxWVmrDXiL8DVBaIT3/qARUc9EIK5Ha7pCaCcMtm9PoCw0TIOccWMAd9q0ZCMWe8LvSiQ5F9ARms7Gx6GHGHbEb1xQzsWab8s1ciVn/z7gxrGwnM4aDNkJbTn5VOfH/K29iAb8tVLPCD6qOxPy2b/pVMQ== X-Forefront-PRVS: 0358535363 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39840400002)(39450400003)(39410400002)(2950100002)(42882006)(53936002)(6512007)(189998001)(5660300001)(2906002)(575784001)(50466002)(42186005)(4326008)(53416004)(25786009)(36756003)(50226002)(6486002)(6116002)(6506006)(5003940100001)(1076002)(3846002)(81166006)(478600001)(33646002)(50986999)(76176999)(110136004)(107886003)(6666003)(38730400002)(8676002)(305945005)(72206003)(7736002)(66066001)(47776003); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3070; H:1scrb-1.caveonetworks.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3070; 23:mVrOW4EsyENN5uq7FD5wA9oWktCK3JkVZrQF5keBV?= qsYrPe05HEUGohpFymBCEkjtfW8DrPPK6xT0YewOvJJM2ncwaQ+NGoaQ7e3vu3t745MPE8xpDveww/A9kIzy1joCDZb/EtztuzcQ8d5b6yDQVqIxh6b2+hB1ZT+RhujaXlAd4KplUH3IMbIpxl6qfC7yEGybW90XUjLI9FpkAE29ZyDbogFbw2c+D7UfInVqvPeKKAcNx0iKz/t/cJxkHd7V1ZPE9aWmfX/oHUhcXPuczp4gH/E6IiQm0XvGcv6oBkm/UmEvKpGmic39LoYga5g/wJsfPkSYP6nYl5oicazd8FWM9DAi87N9CZrUei2yJSQN72dEETqulJooCHb2H6CGjUh9myQig/F+Sw5HtlUKaBQH7GLTJZU721v9QyQFJyZYOUmEOeycZN8TocAg+vD/qQyqkx0O7Jh5+1BrjenCwb6QuMu5jxDq1ZDmHj7+9P4vON2o8rIjIVUWn7L03yv0skxuyyTb3tKivTc/EKzruW9UZeeS87hR6LuWIi7mXCiaYG81mgUWvkj0zd3v8gxBn+Cr3NHcvb+1+I0yP85ZQ60eOn05SIrODQnT+jAXWIVTD4QMYCqLeBGBx+9DL67LnJtxE91fYFKUm/1DhitgYiorzOXJq1arFSlPMKl1DMnRz9l2ckMCMhFSMlMEVPHSsSNt7WxzIyLYDl09S5cDe0MBLwqJRybOMSVCKQ9X/31X7vAma2xNZQ2baqPJ6RMObvxzH9An78FvtumhUJO7jz7VeCN2ySCVaKJPpFEEbEmScoigLgSD/ZnSlcjOJRJzh/tM3JX5bta81HPDLoIHUHxlY+eUo5o3pYO2XemOyfrCzoWzFFbthE36Sxop/h7Y8gqQ6kkOIllyEem2aZ1ygpwFo9M0W2FPIow7O4BpaT3Lq0QDl856Keu6+jVDLsLd6w9BmUe/v1s/LuLvU69/A86RdV+xGAcKcobEdb4Sl9vsoPLs6zASuy7Rfjv367aNaRq9JwAj++j47MivPhdN211kWQP5DIhBO2Bq+KOIVPvtRmE81T60BjdQ2BIznQaBtqxas0B2imrwlxeoF47TA== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3070; 6:166s3C52vorM0Qq+DZtO35DXk1Lrn6aUaYBuz9ux42?= x4cPO9bNinGdBrHfvb7aG7vRxGb4GZkmzZkE3Nbjoc8dOmpjs991tn0rgGnF/xDebv8FGFifqFdLK0YiQCCyPT66+1nycpRmN5P7shJwo/kJv/wrNudu4kX4MH62yoUOvlRB4sEYboT9yOXovNPEIeTrvgBw3vLKDrS1Br3+d0EaPR4cXrul7RroXpMO9wJIDhuBCoBSnVxz3BTEepWJoaKN1Mr2QikDQhCz0mznrd+0gPlUWP4/G8ibMVYwUC3mInchE68EXqhxpB0KoYk/doISRsT6XILYp9nvHQR1tKjEtUp3iqk00YCZJNmDlB8Hx3OkNhMSiQyNg0GnAeGd7xGfetOYhtAqb4QwEb5316oEl85uj+1AF2ijmaKhR6j4ukvQ0/XANnCnB+qWYEM2gQdvlAJYGMXvmOeQDEzTm+RV121tjqeC2m4rSTGI+7DQJ7f1SnDvHHq+CMpmHpuTGCMKb4urHt3IYHDblBnF3eUQQaGDscCShL0zFa8rOQ2oEe6bDU76WhIEl1w4wN8kZRm9O+zzsp1ZR9Od9J97yGNPzWG5QRu/MCOQhhEJhzRMelj55/Nz5afOKx5BhOTM2ynYjl0DJdKfVlRHm+vju3Mf/r/gfFKVtvMbqXkTLSJ7BZc3cfl+MH138y/rBO/jKPNrifvVeQh9KskbHBEAifGdxw3sTJyKTR85muncZx7Hu3N7x/LrnDs2c8seW6l2A0fMXEgPgPTuUdH/HHjJnLv2BEp9tE8TlgygQbPN30sF+E8jFg7lRGGPJ5x8QGkoWuFPqqrzjkv8HklBhC8AHrTtyWy65j9QvZ7QP8cMkX4Q9aZgUcBaBTk/wBUO+78li782wDrmzQSGTyrnD+p1mw+fGme2UMI94/59+7LrrHxbz6OQsHInXjD5Aw0+56/BEK6oNfSFrKpWKD+P+aniON/ZxEo7zKkAKgd/Bc+w7jicg= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3070; 5:cLYbhtl6XqMELWzecHxjRKGhmmy/QWBYQrtL+TryOZDJZvr9Nzoej2lSA3qOL5gSn4IGqGrcoU+yFPhbypLjNlkiXBt9UWKiVTNgX7NBY0BSHY9e29SsZ9exrsgKZ8wsxwOQ+PuSw83Ou5k7WIjwlFmvpo4zF5oO9QKDrWmpzwckqJ7f7sF3KQjtYuJqyRVIsrmdCvL075h3MIjgG9m1gX12daGQpHZtMLgZTQCzCjwkiMLcj3FlBa8RSBrn9Wpn9gKbm7PBAFQEHIDxqPoSJMHA4HeLyKVOBP80WdD0Wq2pD0KINHNvD659unwqBDrPIz8yzzhDI6cGxONCnIiJKF8xipvaKGQ+2/xPNJ5YWLp7OG71s3JCg9DLSbc9/B70VsZLb5g6CxS1di9DO/k6Bt6nQbSnKbnkFAKB+7dz9e1z8hb/Q9sQ7s5s/NyiLrlbsg3L01PWzSftOVeZfYoqA5TzL2yJ7crxYm9zslnqs3ydmbP+qqCGFr0slMFDXGt4; 24:HnAIbmVB9TzSWZ7yq85B1HqnfMd+ViFmePfeMghwTInjYceytYludSBYuB4sFMsRiAEaOynjH+h6xyW8N4Z058FrSETOfRYIhA6CvdqAIpU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3070; 7:ebhD+5FU3v8mYROsBzQhSD6wesEdaegVYN0YtFgZEct7Wohcp0WiZMASgfixylxBwXW0SWbS/pwuFEeAzXIBACiAnWypiQqTjfnDPqDTkOIsfUVuJChEnaLplJhSgZxuyX99S5OETPY/+yGeYaG4/KCPoSZhqtHWo8r0D5RU3yadZJrpwAgsf5J5j4FHXACe0E3PNyOxad524Dpg8XRCiR7J/Tk6HHVnBwdBj/iRzTfG+yMMdHkL6J9Y7I//3elqXB9SKd+1iZqDduF6jsgAf3QMvt5PsrMrcl6PW+tw6l+rIJdBvpudTuprdLpu+HeP9d9evpcahJdkLZLvc4f9jQLEBsfHLcE3F4lsAJnnCwxnd55YHbxGz/NBvZxxtZZr/kxuu4ONm2ZCrVJiMM/PXvnuZi5me/n1olfJJuuCzB8M3jDdrcHLKSCWaThfTaf37dZhigf/oSmQDxlQWP8qVn9Plra3/HbKUCZVHnf8ku+T9npU3U8CgS1aBByQVO9Xlqei722cSd9IVyWx8gYKYwyeYXUgMfurTVENjfdRgdMgi2zuIVnxz4E2X7GzjB8lscQf+xYsQW0MSNuB14ia5BJOyZXVwzkQAGb7XUkR1rkAzYOAYqGb8Q30BNiqqeL6GWFfXMlfUubZOZ/jex6WNAXZaEcH6bXQ35wfaBz8bK9uOzpBBADz8WsCykog8PSoKSJ6Kw2Zkht6/febXYTqLYkJkdAtr5iO7UGFqP9YvAdWXFpGUgMxHtanQ7pJJ4rsokOTmi4W/mToxr5XBzabKjm4HxNKuiBqaar/Ax9AKcw= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 08:06:10.1751 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3070 Subject: [dpdk-dev] [PATCH v4 2/2] examples/performance-thread: add arm64 support 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Updated Makefile to allow compilation for arm64 architecture. Added necessary arm64 support for lthread. Fixed minor compilation errors for arm64 compilation. Tested the apps l3fwd-thread and lthread_pthread_shim on thunderx and x86_64. Signed-off-by: Ashwin Sekhar T K --- examples/performance-thread/Makefile | 4 +- .../performance-thread/common/arch/arm64/ctx.c | 72 +++++++++++++++++++ .../performance-thread/common/arch/arm64/ctx.h | 68 ++++++++++++++++++ .../performance-thread/common/arch/arm64/stack.h | 84 ++++++++++++++++++++++ examples/performance-thread/common/common.mk | 2 + examples/performance-thread/l3fwd-thread/main.c | 2 +- 6 files changed, 229 insertions(+), 3 deletions(-) create mode 100644 examples/performance-thread/common/arch/arm64/ctx.c create mode 100644 examples/performance-thread/common/arch/arm64/ctx.h create mode 100644 examples/performance-thread/common/arch/arm64/stack.h diff --git a/examples/performance-thread/Makefile b/examples/performance-thread/Makefile index d19f8489e..0c5edfdb9 100644 --- a/examples/performance-thread/Makefile +++ b/examples/performance-thread/Makefile @@ -38,8 +38,8 @@ RTE_TARGET ?= x86_64-native-linuxapp-gcc include $(RTE_SDK)/mk/rte.vars.mk -ifneq ($(CONFIG_RTE_ARCH),"x86_64") -$(error This application is only supported for x86_64 targets) +ifeq ($(filter y,$(CONFIG_RTE_ARCH_X86_64) $(CONFIG_RTE_ARCH_ARM64)),) +$(error This application is only supported for x86_64 and arm64 targets) endif DIRS-y += l3fwd-thread diff --git a/examples/performance-thread/common/arch/arm64/ctx.c b/examples/performance-thread/common/arch/arm64/ctx.c new file mode 100644 index 000000000..1c0424eba --- /dev/null +++ b/examples/performance-thread/common/arch/arm64/ctx.c @@ -0,0 +1,72 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2017. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +void +ctx_switch(struct ctx *new_ctx __rte_unused, struct ctx *curr_ctx __rte_unused) +{ + /* SAVE CURRENT CONTEXT */ + asm volatile ( + /* Save SP */ + "mov x3, sp\n" + "str x3, [x1, #0]\n" + + /* Save FP and LR */ + "stp x29, x30, [x1, #8]\n" + + /* Save Callee Saved Regs x19 - x28 */ + "stp x19, x20, [x1, #24]\n" + "stp x21, x22, [x1, #40]\n" + "stp x23, x24, [x1, #56]\n" + "stp x25, x26, [x1, #72]\n" + "stp x27, x28, [x1, #88]\n" + ); + + /* RESTORE NEW CONTEXT */ + asm volatile ( + /* Restore SP */ + "ldr x3, [x0, #0]\n" + "mov sp, x3\n" + + /* Restore FP and LR */ + "ldp x29, x30, [x0, #8]\n" + + /* Restore Callee Saved Regs x19 - x28 */ + "ldp x19, x20, [x0, #24]\n" + "ldp x21, x22, [x0, #40]\n" + "ldp x23, x24, [x0, #56]\n" + "ldp x25, x26, [x0, #72]\n" + "ldp x27, x28, [x0, #88]\n" + ); +} diff --git a/examples/performance-thread/common/arch/arm64/ctx.h b/examples/performance-thread/common/arch/arm64/ctx.h new file mode 100644 index 000000000..a9e0b744e --- /dev/null +++ b/examples/performance-thread/common/arch/arm64/ctx.h @@ -0,0 +1,68 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2017. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef CTX_H +#define CTX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * CPU context registers + */ +struct ctx { + void *sp; /* 0 */ + void *fp; /* 8 */ + void *lr; /* 16 */ + void *r19; /* 24 */ + void *r20; /* 32 */ + void *r21; /* 40 */ + void *r22; /* 48 */ + void *r23; /* 56 */ + void *r24; /* 64 */ + void *r25; /* 72 */ + void *r26; /* 80 */ + void *r27; /* 88 */ + void *r28; /* 96 */ +}; + + +void +ctx_switch(struct ctx *new_ctx, struct ctx *curr_ctx); + + +#ifdef __cplusplus +} +#endif + +#endif /* RTE_CTX_H_ */ diff --git a/examples/performance-thread/common/arch/arm64/stack.h b/examples/performance-thread/common/arch/arm64/stack.h new file mode 100644 index 000000000..98bbef888 --- /dev/null +++ b/examples/performance-thread/common/arch/arm64/stack.h @@ -0,0 +1,84 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2017. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef STACK_H +#define STACK_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lthread_int.h" + +/* + * Sets up the initial stack for the lthread. + */ +static inline void +arch_set_stack(struct lthread *lt, void *func) +{ + void **stack_top = (void *)((char *)(lt->stack) + lt->stack_size); + + /* + * Align stack_top to 16 bytes. Arm64 has the constraint that the + * stack pointer must always be quad-word aligned. + */ + stack_top = (void **)(((unsigned long)(stack_top)) & ~0xfUL); + + /* + * First Stack Frame + */ + stack_top[0] = NULL; + stack_top[-1] = NULL; + + /* + * Initialize the context + */ + lt->ctx.fp = &stack_top[-1]; + lt->ctx.sp = &stack_top[-2]; + + /* + * Here only the address of _lthread_exec is saved as the link + * register value. The argument to _lthread_exec i.e the address of + * the lthread struct is not saved. This is because the first + * argument to ctx_switch is the address of the new context, + * which also happens to be the address of required lthread struct. + * So while returning from ctx_switch into _thread_exec, parameter + * register x0 will always contain the required value. + */ + lt->ctx.lr = func; +} + +#ifdef __cplusplus +} +#endif + +#endif /* STACK_H_ */ diff --git a/examples/performance-thread/common/common.mk b/examples/performance-thread/common/common.mk index 532dbf61d..f1f05fdde 100644 --- a/examples/performance-thread/common/common.mk +++ b/examples/performance-thread/common/common.mk @@ -39,6 +39,8 @@ MKFILE_PATH=$(abspath $(dir $(lastword $(MAKEFILE_LIST)))) ifeq ($(CONFIG_RTE_ARCH_X86_64),y) ARCH_PATH += $(MKFILE_PATH)/arch/x86 +else ifeq ($(CONFIG_RTE_ARCH_ARM64),y) +ARCH_PATH += $(MKFILE_PATH)/arch/arm64 endif VPATH := $(MKFILE_PATH) $(ARCH_PATH) diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index fb847d13e..69734c24a 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -226,7 +226,7 @@ static uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT; static uint64_t dest_eth_addr[RTE_MAX_ETHPORTS]; static struct ether_addr ports_eth_addr[RTE_MAX_ETHPORTS]; -static __m128i val_eth[RTE_MAX_ETHPORTS]; +static xmm_t val_eth[RTE_MAX_ETHPORTS]; /* replace first 12B of the ethernet header. */ #define MASK_ETH 0x3f