From patchwork Tue Jul 11 06:16:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 26761 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 9C50E7CC5; Tue, 11 Jul 2017 08:17:46 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0050.outbound.protection.outlook.com [104.47.37.50]) by dpdk.org (Postfix) with ESMTP id 9A8C77CC4 for ; Tue, 11 Jul 2017 08:17:44 +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=eoyrkrKKlYswrIvdv1L+RDoMWxnz/n+hhKdZoX8zmTc=; b=mJtOCxFjd+4us7WTMmIcQuPM/OvodBTudQxzTkCwsNy+xBBwMtiNEInw2bw4OKY0zRcOiuP37Bv5Ip6Q0Gk+TxCCzTL4pSa1OOdS7LWmOxIkKwWx5hoEygjKOTSpvXiJPJTv/A+x8wvlNuyyR5fzM0rUR25RrAdoJGkmLIs93kM= Authentication-Results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (111.93.218.67) by CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Tue, 11 Jul 2017 06:17:38 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, sergio.gonzalez.monroy@intel.com, anatoly.burakov@intel.com, stephen@networkplumber.org, maxime.coquelin@redhat.com, olivier.matz@6wind.com, Santosh Shukla Date: Tue, 11 Jul 2017 06:16:24 +0000 Message-Id: <20170711061631.5018-5-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> References: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: SG2PR01CA0103.apcprd01.prod.exchangelabs.com (10.170.138.157) To CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8c166c51-5575-4d9b-9aa4-08d4c82489ba 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:CY4PR07MB3094; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 3:dZRaHUUi7rR9RE0Xq5paZZal/jLIauRcabbRzBjWSTUk5JWpnbiMyijILg9zHvA5tnIZdGe1fLAQDWXRbnkygoGjh7PoNtAqw0di+110ZQpkpRJKdHzneHvzLwLlfdSbVSJaqaHfJTc26I8jx5b6M6sQTB6ywKsIw0msNfBels1Ov3CxflblF8YBtH+B+6X9vGX2NORQBdP26nierjR512vbZwr+8nSAln8YJhbMDAFpNxRTUO7XdEje1dGCz9y2g25d/HLAC+Vb34arR9/7tMths1yxitZsE2cBLLYQlC4EAVubw502btWMW3QG0sHhap61NbNGsX/a7RVq1eNsADYnlkALBB4bEFvAic1UnVar1v4flTiUVgh/H7hFawB2sU1+k7Uadniax92LsQCMwH73L7+/Ct75PqUSGq8zXqorDVaxNoXCGM14rT5QShJAwyQ0iIUR4+7eHkAcvnpOE1qNosaPGRiF79+pjjggJPW0h+E3cjvL9haOpEakDacceLfkjwPozt53xn9SNtcPrxkpvaW9TaqKLFH6nZWNrswlfBDpW4AT+/AMTePpjrv1s5h5WkGemJOL1ge000pnAlvPKHVfrzmo1k1FqwW9CT5lDh+SvhJbAAuRNX7Vg3Gtw6cGOWrosI8Ba2327z1uhJm9ZRZwRZJZTLowUIx6zeuIkT3QpV/Vze3v3xziDmNjOUb5FpkK3+UXdXVHoriJKQNGPPnYdPLg7KAACkyQu84= X-MS-TrafficTypeDiagnostic: CY4PR07MB3094: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 25:qn+QTT9qUWG/XN+/Ohif+NYI4hotIJUoRX+N6JkSn8uSt9wEt/xr2xsEzrdJfKGlCuq8LhvigECjJDLsLjGipywzW+IL2nJZhHuUyIgAwr2HiMLeAeBBs4SrGJeKciy2kUyB+hmLi3CEtN2G/Cj1tfegzqwx+lV8kN4qBlsGkaOsTD/wyfiE1TkZqLX9pDnXmSq+yfS12tCNIzo6gp9h1ox8r0Kody8U93J6LyCeKiF35HIRPTXRSYIFoho0Z8Z3oWn3+TpkvcTZFn9W+Z6nEGGmDZ6j/re+CuSuXbNDDvp5542wrWS8jz5Fg+f9Ek4lDH3BneA9sCm5cNmbiDYEyWGvTjKFH8Ltth31zf/G8trJWL/Dx8cfBWu/9eVJuWy7A8+MN5iYaUvddEkFZUk2W/Ncbx/H7GCAaVQRoxeb7QVtbexBm+wwXaV6jaJbH7LPOhsz7TPAW9tIydjHvRNQkTueROMziFw+ijhw4A5WwuVOwOyQwNX6DN09+w6H9iXBxN0AxhnVocmahKwto8GvIVbZI28Lxwi4nAGxc2heCtfFWTDOizv5bKoGHLuL39W2DN6rObRYiABLpvQNHXi9Hm4PHlNM4K/vOLSYxb6F7BUCno6owL1Gw+SzUVwv+zH8zJ28lXN+156JRwOnveDxhC0Jo+9F3q/lThh3As90PVTcjXpNK+uOJvF+60hFZ5YSZjnLaRBGdDESlHJZU2h6FGqapVlwHP4iEpIGl0OBsYV68NGTBqneTuZxTsYEIpUuPBroLuWRdaOU9tm4Sfv7Brl8+/uaiT62qw/UTCMSF8S4nMD2d0D3K1NBmETqEXaxJgim2JvXiRH6zm/aY2HxokvCoMzio88Biw3MbB5K7H2buRY/XAEgeHtHkvtgDcdsnReLohdXkkuH4D7eA6D8Z7VnBbfhHRzooGf/CfkaZvQ= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 31:CXgxICd1MNvKdm/wRcFv0fBt4CdW2Lguhw8W9TC6pxFA2ndguD20P7mgk1zJrqbhdspeEaplt610OSiLDsh7EapxCqmWyaOYltFmQ+dAW/gSMVvPEb0T31af2lec28faHnG/CojnS+WxyfrEHd1fhuhQhdGT8jpEMmQ3GdqoQv17aAZdyuFZj/dGEveHKsINMtKtknSIwRog2sdlk1oF+lvw4RD4ntaH6k/MCkn+DkxAjLsbfqPA4L4ktGqjuenVdvLVbqT3URQJ/XBEN6C2D6F5CE6em13+er88PCNI4Q7Xl1WEI93gA5nuPyFDxKzoAKwpbc9IJM87sybH8LP0mIH/YJC5vpA/5QW33OP/7v/wrA8szBUw4/t18LcbMDa8LLceuifbaZJKyx4seGjuocMcnkG0uYH4y2pyztC2rgFGRpzCekKUK0DvA2hTiGRe9ULV4eWsMSADR/b/ZjF2M0R7sOJCrHvNNnyIsrfUFqTZ1iQSE7Yv/62wcTI48wLn79DO+ZmyLR1kIO4ItUuiAHm4vygWRiBX/dBRvjo4LFBq27BrQJ+cpP2pY/fzV2Rxt8XyCuDmss37U2uF4jrtgV1/QbYWQkppTLcIc1HzTrN3CVd4V7gChQyx8rPcuXb2rupfHctToirtNj8BcSNZrhztbrHZLyuARjBCSRaJmfE= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 20:nnKNG9vXXeu9cY9Ap+cyyukvDanwJNWetPO0Mb3ss6sRu+YeDDC2yYTuE5Jk4Zhj2/dXCgu3wtGjwgrCSXHHxZ/l/AU++oEB7qc5Ie17FK//YXd1zr8SITk2+uVyQ98FVrkMQERAc+gGlK+w3TNLJr6BRxjcAsr+UBe9racVnsbd6W5f4Q4m6vbiZxJ2jfwI8vaq+DBgmBT4gl/7PQ9oDHtvHyz7juiCeH+87mxZGgLmyvl5EC+ImjCUH5nf/msCVWaqNtyhMJjJTSl2DBVUtnx1twy4q5mZ4f9o5YjjCenKglXhk5V26rMZ1cslfl3LpiqMMHa97/JfzzeRqxAgV9TB5cWZUze+Bh7PkinMuBGhAWdi47OUdBrrWkPQD4gnm3DCCgyPVDA1vKIz6qgLw3VjXr7VkJf1vGI8vQM7VKoUfdTY+dtX7q0fE3ZgdCCKSo9lP+cF/nTW1EX9ehnUto2urJICwcjQBDrzadS97UOSg6TIAaMRrlLe3KaL+pVrxtUlj6ZxamZvPpIR8ygOUrdA4SjHQS+JLLJfvSmXwOY9rDTw4PGXzz6jMEZrs4PUNZp2M93IFXIwjh7BGAb+tvMcpatXlHHwabShj+gPAN0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(278021516957215)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3094; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3094; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094; 4:db6Gb2qkC5TN0FeZrtvolHLNa+xv1SyiGU3tiZknPi?= oyXEiYuSsW7KL58tSgg7URd3OCizVujaTHC1ksY85HFhG3GtSI1jHDE1egQopHXs7kY0mWBAp1PgLKaPyA+xqwWSMUCjevPERIotdP1d4LUAKp5rV0bzzvlpncadz5twU1hUmrlEKFYIzAaNhIF7gtwHzV+Jd2U5qhVR2QtzPDG856WmehKAJFAQdbECYZRZnYuyHhZ6FAK97GwIPPXLpXyt4QPVyEHwexNcm6qthDlnx7MNgV1ZmPs0jkjC8/3wXk4UsvAoUtFWBu+8T0BT0Z57qWNEUoTH8tRAKFqRsMZrteYFwQus91+nxHQlQcDPRQcLpvhLPIUwf1b4SgWCjV8Br49ochw4oKdFjqsPqFfV32MyiQSSoG9PSl3W1l4qo7ZeYZYa/tiyg3aw/rNFlDmFkyVna1xKLRXLj7Ro/N8cofXadVDsQefCIoKz6NQ8QZilLStfsg6QDfGDHGg9cI7LMMqAp8CaBrOBERVORzOPYyZxlRdZaqCDOgHKnwoybTQ9Sisehg+F+1JNguKH7jYKHrouk1m51apeyKHFNp7yApFVUS+zatje6X+ghwzQhLrRJ6+HeyLmKT17iVO5i+Gj5zfnDP56UBZOuOHstzXYUfu1AWKFUrZC8JsJvii6DkZV1VUttnkwAQXhzZmcscL4B6iktJDLWNWV1ZGXOC0zadifUu1KsNyCq7q944r91bHTAsl6LbAmDCFQpKV4MUObysrUcjOeU/xEJYDTvcv+9RcRHZZLn319ne7EcHlrofOYc3mUN2noTWIWShWI7z+1Lng1OAqtnP4lYU3oMOsuCFqxEUaVhokurlno8XHjtr2iVGbH3n/IuCDTF1eOOz9mB4HNu9S749/aPJOaZIsG4bBn+kfGS4b0+yYZkqSeLIiZbA1OBib37l/FvVATXzWGJes4sgg20uJj24hrMr1r1siuGbcAIeyNlHvEQablOHWbJxVoI/49UmAQjFx0FpLrWC1O9nSEKytmkPGgzolrq8aBFSfPUct/SHCACdxMbKgr02ouQ53f3SEJ8ef2LZRjsGHrqMOirST6GHAwJuZOwMhdUL/C/TebBTBr7j7WcOAv5DmAfA+viWRW8CYGiVIV5wsZNAi+tX6FY3YDG783GVMZsJSi2CuYNCmIKXR/VsHD3nxK2YkNtGpE1dGFazJ0f6KE9eL8ZikjiYAfCcNQa8sWgW6+7WCRzBm2n91kn27uGnDGH/ozf1TH2QJTQH X-Forefront-PRVS: 0365C0E14B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(39850400002)(39450400003)(39400400002)(39410400002)(42882006)(2950100002)(6666003)(5003940100001)(36756003)(50466002)(50226002)(2906002)(5660300001)(8656002)(6306002)(6512007)(7416002)(7350300001)(189998001)(6486002)(6116002)(3846002)(305945005)(7736002)(1076002)(4326008)(5890100001)(33646002)(53936002)(42186005)(107886003)(110136004)(38730400002)(478600001)(5009440100003)(81166006)(72206003)(66066001)(76176999)(8676002)(25786009)(966005)(47776003)(50986999); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3094; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094; 23:vNzYQT2OUGAqgkjQJsyO77bbiKEphhdhMs3uI2e3d?= vtvP35fiFAswNyIzBOmVYRA+se1hBPt9oMtTPzSNY0MVpPe+YmJdBZCw4KiCr31Q3tXKz5SUnUGTXtz5U0XGVovZ1X+ZwkJRgJ824BKv9ydOjmgVFWvvFOSJM47yNFIrCBYh4scwdmGJxAX2t21jz648TAc/NgWbEDekBuG0PUkJKlQrgDx61W5RglOTVfXR5hO5sDZuwQ5xaSCz1wMMjfoIPUS0bcA95mKGMLkI+7qb3AFBFJSJmdCZl6Wt74nyPPIBDeKxGYvkZ8tvpzCF7HZPHhAoexl65hVDy2esR1V6nqd/N1cH3tVjPkH7C7WsQmN9AdGhz2nnDLtpYXMOrLiXgBabftSsKwJEVIo7/9+gmA3n3jWEzi8U2WE1Z2uy24iPI2Uhv9VkilgD7mWLA5C9VvCFPyj1zuU1SHOsAjInxr/+iFUJwT/rhYwHsXbf5WzfLcoDVkeGKnAqBUZwWnYXNZ+o9ksPLUHuiAQXIiu4/yWym0FSG+aF8lNzc2fLhh2pDQNTD8RL6TqCZQNOSiaSTZ8v/f/cqr4SE2J1MbaojOV3M9IXcB2HiLNNJfkonO5VtToPNjIW91yzCnHnOes6KoNgS5JXXru7dty+JYUCt6GUl9Oj8w3GWGT5cYBzUqWl2g6TxzVlvXOSPyJTqRn6pd8fDQ6i3idI8r2sFSCDoa/21jGZGrRSgpoP24T2vBeJ3RBo8uz7dJjuarBJDftuU3OFvO7LU3ZHsozfkjksDYeu37g62jOvxU9s7BU9TfIl64hL6Abs5ZupYEoVqATuus65lE/QBot8rJK1oLb11hA7H5YBTB9HHM6dT+yzkialKsRHTTdcxlQAyav7YZW5cInxby6EnmXdjnnWcfIBGkFakUDAGhMh2n50k48NJMGco3185eiYvmpfnsz0btAMx0k4+Ehb/FeUZwCALz4ioOSFISQjOTRcMIp20fUVo8yqcx4XkFy7MhY8XUlAzF/s1e0FcfQcxTPdnjoJsYu2chD+XaHE4cYx0sZKxcnsIDHd5WJ96pcyBLbppTcthf0pO9R3knMb447ZsCeHKPhc4rMxSNR97gYdw4TiSrPTdFJVyMVXBilXcWumNy501cGIOmDlW5Ie8gdRlQBg0BjRsIdAmgtFzM8BCiX1GJcNLVvOuvKfI+3FQMLVHokpinQ X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094; 6:kXODyaZ9LOjn+BD1Av/4YBHJJPbthhnKnbWljsAOKG?= qKW7u//8JUrG3jChIoD3Z0x+AbAlYoW0KomeiC5Ku1LRNEJTovYKkYCx0OY2LniVITdLFG2XCeU0YOch5OY6ENP4wbDqRDEFuC41UtsEgmAQFmdxmM9JsIqV+yGAw0Kw/Gr8zpOvnvEXbz+oDvb1IxY7gC5bcoIGraEMyH2h/crJqF56xWnvCLQ2L7cEPQzkq4KQag8/hwpR/7gZGIffxNfQFgfJmB7X/HzWPCdl16PZD3hBc2W/7ecORi8s5YlBty6gqeJxEw4GxLs1hi/n6V6KeiodZet8Bfc2WPtV4nVCfuxnGRh4ZP0d75pYRsZDf95RWW5ue51EstZZSt3DvaWDQCBUOuhHLyrSkmPKDX8IzDlhB+M8VaETvGcKdTyXRzAInmLJkIGmoGNPrMcNJj+iYDHttO3aZ/MQb9+2aY5ur4Z76qRTpoIuRKVq9QvOBoXXrO2SMYSlmazpkJpwu11sSg4OH9w6rgIQUrN41fLeqmh9n5WhzXrc27+QsPf6S0MNcbHdD5x+ZsL9tvNpU0QLBwLtK9vGpoY6ADVExfH5i7Gz5ExhJLQ/Fqcu2TDMw4HgjzLGevGT98Pe4vxcMD0O/ck9pvFpL+pU7BP8U04Q6+Crd/5m4ehbpKL5epa1WXdezYPxisxdNsrOwBHx+ODrwdA0fQe7zcnr1S+0TLOLaeCv3hVKJJHo1tiioXV2tHap+ynISsei8l5wJfGFbmbfpq50VAxdgHCiBwMYI/wKEA0GJ7y/lckBDmiNVlXvlNBgivQHkSuUamU9ReBYmVvWsh9BbvNz/sKJ6JJAxebcfcBieQGyV1tIPBiKw0Mzw/1WyklchTz3AodKv2v6I/bLsoQ+615zlRx0qUZg/bxr5xZ27TLbVWUotdHUlurDI6MCDgYinCm7OHweEw4e4B8rlyCuOJvn725WfQ+Qkr2Y6AuXR9roxh2TWmKjeGLiE= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 5:27IqP9ih5B1/01SWx5EM8TTWWRfg8jeoCClnKI7lvNKKU2qICR7KGM8R0HCPewtwSxE/SWb7W5KeLGm44bQ06EuhlKGdHgTzVxLIFVWJA/2WBRZDWLjUtjnCAsUqJ92fkf4/Xc/Y+0A9OP4H9TiM3nTv1mNqsKKF6avhZrv/rbbtG/reozRi0O5MuYZCBglDqFDSs4z26eD4hvnqUQJJHc5PrAZSsFHQKur15uRVtMBhLMsq4lyCeB1I3rcoJmydd1oELZJ/H3WNxsU6I5Vfu0x0ybFZciup3bsEDu6lTxKJYTadiqXidxblICt1c+F2OSbgwKEbB2jGJlUj7kF8+NgCalNzGaEfhjjiPUwh1Bwr6HLdS3I+GVfiDlrAWFOapWXKHnaSlbXc5nG3a5ZvPmDvw1cOu4aVlsBqqLc9K/iBDWWT6caCtxQbplvf5SeT6Qes2OnCLS0Qclc4zxvVkV/jcVGSjLs6lrwTXpPoik2Na+myJFVmMk27ZSAPBuR7; 24:NJkfzW3sNuGFJJ0DHHLyO8Jk/kcir6NyEfu/kOy3SB5l5hMUEF8eXeYATtS+xmP0VQMaUokGfVOYpyOZXNt875z7jWOXjiyyXQzVmDssGoM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 7:teCJ/r+fjDwNo6RHnVt1ZmWu564fCbpsVcBCi6OQ2PtjbcgmyEYhFRfSgS3uE0PfevR09OFAPx6lUxQEL9O4dVOXtsQEIA9xSenI+b6sWKzOqiydE3Eru1fuuoamlIWTmN96jdNXJR4mEmhpyksAwHlzx3lFSVvaReOdNOT2uJgkv0NkoiKKUdjtITHiI3UwhLmcBrVD3zuabGr1oJUjelp12bf/ntqNgwzL0M49tiH59pc6iugthVrdb+Fwi4337KLvGsqnyBnEc6cfZawbb3UXJhKKGZ66Oq3klS+8qxDR58ilB0GPxiwQKu1K8eztbqh2zzanowfOaaLngNVaV0qg6enY7W6zaizln2pMiSWM+vYZhHNq/aE1mNQ7futbZSr2dlu1HaK3fs+6pfw3vP1NbmSfTqXDxyQcYJjYKSninNNxhaeMiBfpCyvuZYL+Ce2/X6TBJ5ZwHVhYl8xJXKEBuzCv4S4sGj6W2mORmnCWzB23I265S/DrqPvFw/495bu+O6iaY0kO2hWvj4Q+xZ8EbslTsyCKfqzjZhCpEjjqxxhHDw+tL+5VRW3c/6yhRVVY1+QyP7nQquzrDLSNSCxYkC7rGhRX1DoYssjsWoHsjNCAu1eP8j+HoJ7fSZNH8mKureLw7RzjLqFO9FgBN31eX+BtL/HPpJ+dUIhG6kN3OEiXfYwJdpR+PrKsEVa0m495nBZ3bOKmX37dzyXHEQX8J4GHI7QyTz+6ZFaPhqTHe0z4NclMWfDitLBKQv/k9/lWtr2P78Do4g+HIXb2y4IF/qfFnAqAR0ba0FgVon4= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2017 06:17:38.4297 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3094 Subject: [dpdk-dev] [PATCH v3 04/11] linuxapp/eal_pci: get iommu class 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" Get iommu class of PCI device on the bus and returns preferred iova mapping mode for that bus. Algorithm for iova scheme selection for PCI bus: 0. Look for device attached to vfio kdrv and has .drv_flag set to RTE_PCI_DRV_NEED_IOVA_VA. 1. Look for any device attached to UIO class of driver. 2. Check for vfio-noiommu mode enabled. If 1) & 2) is false and 0) is true then select mapping scheme as iova=va. Otherwise use default mapping scheme (iova_pa). Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- v1 --> v2: - Removed Linux version check in vfio_noiommu func. Refer [1]. - Extending autodetction logic for _iommu_class. Refer [2]. [1] https://www.mail-archive.com/dev@dpdk.org/msg70108.html [2] https://www.mail-archive.com/dev@dpdk.org/msg70279.html lib/librte_eal/linuxapp/eal/eal_pci.c | 66 +++++++++++++++++++++++++ lib/librte_eal/linuxapp/eal/eal_vfio.c | 19 +++++++ lib/librte_eal/linuxapp/eal/eal_vfio.h | 4 ++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + 4 files changed, 90 insertions(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index 7d9e1a99b..573caa000 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -45,6 +45,7 @@ #include "eal_filesystem.h" #include "eal_private.h" #include "eal_pci_init.h" +#include "eal_vfio.h" /** * @file @@ -488,6 +489,71 @@ rte_pci_scan(void) return -1; } +/* + * Any one of the device bound to uio + */ +static inline int +pci_device_bound_uio(void) +{ + struct rte_pci_device *dev = NULL; + + FOREACH_DEVICE_ON_PCIBUS(dev) { + if (dev->kdrv == RTE_KDRV_IGB_UIO || + dev->kdrv == RTE_KDRV_UIO_GENERIC) { + return 1; + } + } + return 0; +} + +/* + * Any one of the device has iova as va + */ +static inline int +pci_device_has_iova_va(void) +{ + struct rte_pci_device *dev = NULL; + struct rte_pci_driver *drv = NULL; + + FOREACH_DRIVER_ON_PCIBUS(drv) { + if (drv && drv->drv_flags & RTE_PCI_DRV_NEED_IOVA_VA) { + FOREACH_DEVICE_ON_PCIBUS(dev) { + if (dev->kdrv == RTE_KDRV_VFIO && + rte_pci_match(drv, dev)) + return 1; + } + } + } + return 0; +} + +/* + * Get iommu class of PCI devices on the bus. + */ +enum rte_iova_mode +rte_pci_get_iommu_class(void) +{ + bool is_vfio_noiommu_enabled; + bool has_iova_va; + bool is_bound_uio; + + has_iova_va = pci_device_has_iova_va(); + is_bound_uio = pci_device_bound_uio(); + is_vfio_noiommu_enabled = vfio_noiommu_is_enabled() == 1 ? 1 : 0; + + if (has_iova_va && !is_bound_uio && !is_vfio_noiommu_enabled) + return RTE_IOVA_VA; + + if (has_iova_va) { + if (is_vfio_noiommu_enabled) + RTE_LOG(WARNING, EAL, "vfio-noiommu mode configured\n"); + if (is_bound_uio) + RTE_LOG(WARNING, EAL, "Some device attached to UIO\n"); + } + + return RTE_IOVA_PA; +} + /* Read PCI config space. */ int rte_pci_read_config(const struct rte_pci_device *device, void *buf, size_t len, off_t offset) diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c index 946df7e31..c8a97b7e7 100644 --- a/lib/librte_eal/linuxapp/eal/eal_vfio.c +++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c @@ -816,4 +816,23 @@ vfio_noiommu_dma_map(int __rte_unused vfio_container_fd) return 0; } +int +vfio_noiommu_is_enabled(void) +{ + int fd, ret, cnt __rte_unused; + char c; + + ret = -1; + fd = open(VFIO_NOIOMMU_MODE, O_RDONLY); + if (fd < 0) + return -1; + + cnt = read(fd, &c, 1); + if (c == 'Y') + ret = 1; + + close(fd); + return ret; +} + #endif diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.h b/lib/librte_eal/linuxapp/eal/eal_vfio.h index 5ff63e5d7..26ea8e119 100644 --- a/lib/librte_eal/linuxapp/eal/eal_vfio.h +++ b/lib/librte_eal/linuxapp/eal/eal_vfio.h @@ -150,6 +150,8 @@ struct vfio_config { #define VFIO_NOIOMMU_GROUP_FMT "/dev/vfio/noiommu-%u" #define VFIO_GET_REGION_ADDR(x) ((uint64_t) x << 40ULL) #define VFIO_GET_REGION_IDX(x) (x >> 40) +#define VFIO_NOIOMMU_MODE \ + "/sys/module/vfio/parameters/enable_unsafe_noiommu_mode" /* DMA mapping function prototype. * Takes VFIO container fd as a parameter. @@ -210,6 +212,8 @@ int pci_vfio_is_enabled(void); int vfio_mp_sync_setup(void); +int vfio_noiommu_is_enabled(void); + #define SOCKET_REQ_CONTAINER 0x100 #define SOCKET_REQ_GROUP 0x200 #define SOCKET_CLR_GROUP 0x300 diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index c91dd44c4..044f89c7c 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -206,6 +206,7 @@ DPDK_17.08 { rte_bus_find_by_device; rte_bus_find_by_name; rte_pci_match; + rte_pci_get_iommu_class; } DPDK_17.05;