From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0072.outbound.protection.outlook.com [104.47.41.72]) by dpdk.org (Postfix) with ESMTP id 9B02E1E34 for ; Thu, 13 Jul 2017 10:23:43 +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=2hEx5q8YelbhTxceC8g9Dbditdl/k+otC3ZkRDwMIiw=; b=A1u5VwIK2KnBFObZ84vsmFZf9SAivGG/OitoaSQ+9mgFU9RKhPElgr+MyKjtvMEyU0KvvgpIhux4OJSPdtCdj9yJyP7OVG3caQL77f4N64QW7iBzl/yJ+pSJ8UkLYMpfqREUS+AbC7ROL0MFvWfBBCf+VLwYS4FZY4ldSmoaahU= Authentication-Results: 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from [10.89.1.17] (14.140.2.178) 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; Thu, 13 Jul 2017 08:23:35 +0000 To: Sergio Gonzalez Monroy , thomas@monjalon.net, dev@dpdk.org References: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> <20170711061631.5018-5-santosh.shukla@caviumnetworks.com> Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, anatoly.burakov@intel.com, stephen@networkplumber.org, maxime.coquelin@redhat.com, olivier.matz@6wind.com From: santosh Message-ID: Date: Thu, 13 Jul 2017 13:53:22 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: SG2PR03CA0051.apcprd03.prod.outlook.com (10.169.50.19) To CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ae048e1e-2c37-43a3-dd04-08d4c9c877d7 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:AuvVxVpSwQq0ifKCYrO/SVeu2TEAtqfiu6PwRCJg31Pf0X2gJnTrA0AnQxX9p859NnmfEroFkrLsXx84SG4cFhCVZat4HTfaTF/4Yqtp1dDipKpGJM8UTG8ar6HUnaOZk6u73v3+IaIkLIC+Q+07dmvX9OP5KJEcYgigZiiGRNSlTd7Y8moW3hE48jrv5WNfaQPNiBj6ou0UB+69+C23I1/l5Xv1lLU85bxMZlwPV2hJifWRKywgyqgsbUoSGQejRngqAGWh75ofu//nXT/PspFWGATE/XW+WKdrXZuA9pWeo7a0HZscEEKpHk13p+/ARYogbpT4XOJmodU1ZZMO3/HGgzQtY8b3fMQn4I2p5LKICh3MJeXWg9/rNleX30zrCF0dRCZuKacuJ5tMGW6pj67kOJoyT4Bjhm2X0aERS9HTjrhHcAxNa/wTPSFuXRFoaqnBW/fMeQRJvqWyrmkgY61uFSQv2mnGVy/A/rSPl2lIwDbP0XsJQh/mS2MZ4rqB+z2gHsTdixOXZXuzQrzvpPedJAuD1xItGiBbcXKbzefEqxmtpCOQiGkXJZRCPUMgqU6P2YkTagIxY22wVXUZKpmHw06c08hlcSIh6ZuQ6fK1G29AfMzSg/fV88KmCfPMHlSqXr+qGzonEecx7viKBvMRUZDWHOPskTrAVU52wvr76XHUV0hXja8ROZiSmsyzYgPv8vVPMi3zcaXrZp57ui8f4fuUuBZc/1UtWVCHeo4= X-MS-TrafficTypeDiagnostic: CY4PR07MB3094: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 25:64hUhtOZnS64KTEHC1nB1AxGhXG5k/5Qk6o0Wcc2X/wUNrxt91GKBQPehJ6fmJEeRJvaokmm38Iiq/LqN++n8UPqrvH5V86+lg/63d5ipIjt84o4uTgM1m2umS8box24D59cDeuJbEmqkYrg/4Zb7PCuryzoWn4EquSMvgDtOdE2steiO/1Y9fwsqzAxmOVNZ2+GoNBdaIudl8av2YR/ABqEhAbjJvG6mtnF5E0MSh0HB7K4QC1qStjh+c5BymQWm2QgsOj7/PTaQDSXy1eQETk7yZjl2sO1s+VOo655lB52m34zchmCP0uJWxD1C3By8F+y9+c8TL7s7wzJ8MLcgLtIrRfSCL06ObNkflmDKMTdrKcVxa2NG+mCJfJIymlbP2KQ2o9sPl3KdBcW2czHpW3zh9Qhs+yaCLSr9uxmeh3Mo0mdcs6cpkmpK5Gl0cSLzUtpw7cK3LR6t3+xWavSZorm5EX8yZ3OWaLVsUDw3Mx3S4vR1lr9FPK2pTYG4nTeHl9QiRMgKt/Z3GSF/VfELsrXErMl1qd/lsv6Pui8EpYmgEGqcL7nASnqrPIpgf0mj6RmHRMs0NvZB6req/FyVSu1AQdmY7M8NmQm5i+E9PZDrSz/oOLmcrV8I83Pa5szaf53AGNNW8CbcUl0mx0KSEzXGFey5muw1y5jT1japfgjkqw243gz+/aF66OTTiPlLHjwRfjKqrIyadCygNiE6eX7RNsQjJHw50eyOp8z51vSwJn8bDYQPgYrN/MSrpE7wcp2MU6LQk9+gBWDuYwov7uOve8+1GXJFlQYQAEwKIYuEV0w19dw2topEbjMMKn9WdaQ1L/MdIVrvOx6Le6qzGIs6mcVzeRQi6g7E+POebXppBtNhyTri4yXJ9TggqgnomSKfEDW5CCKJbKFTtQDpgPLwTdc5pKjpCCv7ZVatVM= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 31:gi9oitL+lfX3S+uiN1b7li5mxfYBw+aHlaLRITYKLxqWybeTBWYa7l82JqGmqoW+/2FjrZcnqk+5eHWy5WFrZRAbOCLnDEjLjdw4m0D9ilqq/O+lutiaHmbJGKmqqPqECsevzDcu9hRrpqKdmj8tyJA1KoyCSPApo6m6cuse8+vH7aNoWNGzU4CYRZLtkiDykfrvlRTmMj72mRrwpwTHI5rygQOdEdAwRKqj2J5iJdPCPd1+U49J+c0I8DtB24rZr/0ZOMCRAnqs9yZppY6Tjl/jxdE8p6H/jDOpb2/OJ7I5DBelwO6sAmlkdk2RLKUnduJaTMtMthjAoHAm1xssm7fIMvRhzNjYeRhZbo6EcJhdENDTmJnocLHu9ZKbpXtzZDtCUxbOF0aYk/RdOPSm5FmNllwzMQ/tpzcitCdfQ2I0+ofu3S1ko5QjxyC+3ZGs9aR0lMiO/64A3Mej7hRuuchE7i2542BXfMYTPWbNEGN8YEID0S9qvl/7QsYXfhtnTDdoZM4qd5ZNBkyPCJq1TDnditAo+z+d8wwoyaXaZBPtwGp8zJv73MxBg2z/IJMJyAdAfRfJ2T6xsP8hrSQwPuQFWl32Jly45s/dQOCOew9OAzcRLa/J/cgIE3nYomBUUvzWSfPVc906t4LP86YMU8hn6LfLTBu+03cKjczEP+g= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 20:VxxKr+D9mTiPx+iHGabLPyzgbPEzUupUbYhcTun0D+mPMJZQ9HAR4Od09l+exFyE35JkDuBBcmlzECwSitacd1ebLtaS7rLn/zN4BiR8sIdh1Zu8HZJu36iU1Mlv1AM6nIzhBa4iNpip78eCP0Yux5Jx4KaDY17Uz0TlPS/uV9PjG2Rin1dyA/jE4GwYOwqbh1DRzR36E3guNPTk39uR5YIN/WhJufOfB/LCMP5RTBvdgYb5xTTcVJtDMtW+LwyeXkvgItX9WZnz5WokGrW148sxmiVYfgXuJtlxHP7tikE/epn2RpLG3w/8LHYU+2l+LcAfmjE0XS8bJe5kCn4UhC1stQAWm0tW7HQaLK8/CFPvnUgHvEYZCiCdSFIcFE4nW36jq+b9plWTDjPX0jSfCypQvpKmQ9YKaYgMcBJ0894LUmDVufRpTMT2DviFK68hR6QXRJMGSdXhSyCNX8YUVJm2DZebyCf2zD5rrMH9dpYaIK8nfeMYWmSK7cTmMNsAGTIrSvDvpfk6ploqqB8DnHVNGZD8CLVm9bRvo0c9+cxj7sDjwtsreGLgYNK2aXF2bPMZsd5xZD2xQLriCZ/MluOq1GuaYpVYuT1o9mHpPZo= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(278021516957215)(247924648384137); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(10201501046)(3002001)(93006095)(100000703101)(100105400095)(6041248)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(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: =?Windows-1252?Q?1; CY4PR07MB3094; 4:HPZjc+qLxj2qADm/Dbv1xBeoiQBnUYTD79MZgJ?= =?Windows-1252?Q?38zk85IQnThaCA1z5wShhtPx8Y+5D5mTzXzKyZJzbUCdt7dzR22WA9KG?= =?Windows-1252?Q?2yl5UyyqaKSsUEE+YWPj90xFY1BJd/PZw8fjwzp/Czq45uCWWQHmB03w?= =?Windows-1252?Q?+QqFUDnehuIcZ/GetB633Q1Z+Lrs6bvU7FNmsUSZt50DmZVgv4eG50g4?= =?Windows-1252?Q?/gtyhCgX4AhIXew0ZsAceWeZDi2pxDSHz/N5Y3m/o2Z+qvYEG2gp+oa1?= =?Windows-1252?Q?EaHk2KDTFvyMc8CthWIV4b3X5hLPFtRJzrn3OJrJNW+VCj/GYUmRBMuz?= =?Windows-1252?Q?RCZHTE0mo/admAY8gDgO+4KMkvPT5dund+HyGlFsSyd3GodrvD/O7BF3?= =?Windows-1252?Q?Abm7TVkqJUTtlnFuEkCOeBhow7a+UYZt6bqww3godtghKR89tx7cr19t?= =?Windows-1252?Q?FkuAUHQGm9oSLzmyZH0zd5WHR17fKFc7T+4ZR+hl7ZO4ujJ4bJyKJGmn?= =?Windows-1252?Q?kNfRkjXU9gViPCHpGXcItObHm6RvRjI5sI4dEoC3FKm8fU6xnPTQXBQx?= =?Windows-1252?Q?TeI/Jj1wTfpeesrq96jlnqsNhSXXN3jd+bYYsj/DZEVFvJ1BEau9csnZ?= =?Windows-1252?Q?mmDZcuCE25jv5tkbJnDBtiO+24Y2v1oiL67kEcCro6c3+EHHcuDPtb+6?= =?Windows-1252?Q?s0vAZUxE9muXug+7t1r/mo6lTYGhmXxsPhNfT3GGAYIbhtiIhCce28sO?= =?Windows-1252?Q?DzF7ryml6EVvPdsVwqxAf4uBbhjKJYbZUtBHFFaAZ9E3PvrQ8LXY7yz0?= =?Windows-1252?Q?/OyrpZlN3CKmzkkz6PMyohNLgO/5Fl9TxVJm1wgOWbqZ3F08EbFO7wqo?= =?Windows-1252?Q?aKUv2+d6Xs+H+FljpaDTVwNOIiwWMoBKa2Y/OQ8l1FHaC5RM0BwgpY6L?= =?Windows-1252?Q?PU8CXULQu4CXuDU9lBTHnZKNrEd6rV7QJZg+U2CTPyUMT2z9FCFndMoz?= =?Windows-1252?Q?hC1wKClYICkWMSOaix1nE/Hn2LKomn2+NhbACGa89GldJbfuxCNBu7KZ?= =?Windows-1252?Q?e5ND6K4gpZKg1pXP3XE4NQSxr0rU64wNQGV+nkXmd1AuUNxkYoL20Mef?= =?Windows-1252?Q?jYHRZxOW2flnetfmbaz0ltCjrLnwVrnSUfDWUq15QmplI73wxiUwWgzu?= =?Windows-1252?Q?e6CBaDp4+vkPMXIH7zbaaolg0JD/vRzTwK1IuBoGEficue9Xn3JyueXy?= =?Windows-1252?Q?UDSSXHx23huWUQIQ+YiveRQiArLwYIvcnSm3smhW5X6RamrWzvXLb5Ev?= =?Windows-1252?Q?0e35zKevZQjpBoNDwIlmjIg/VbscZ2MuEUdFhwZ8jcc2vsJ8H5Y3Kpoy?= =?Windows-1252?Q?86snVjQklO?= X-Forefront-PRVS: 0367A50BB1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(6049001)(39840400002)(39450400003)(39400400002)(39850400002)(39410400002)(377454003)(24454002)(42882006)(86152003)(6116002)(2906002)(65806001)(230700001)(7416002)(23746002)(229853002)(6666003)(64126003)(2950100002)(4001350100001)(36756003)(8656002)(5660300001)(77096006)(65826007)(90366009)(6306002)(31696002)(7350300001)(189998001)(93886004)(6486002)(83506001)(53546010)(31686004)(3846002)(7736002)(6246003)(305945005)(81166006)(33646002)(53936002)(50466002)(110136004)(68736007)(5890100001)(72206003)(8676002)(5009440100003)(76176999)(478600001)(54356999)(66066001)(50986999)(47776003)(4326008)(42186005)(38730400002)(65956001)(966005)(25786009)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3094; H:[10.89.1.17]; FPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3094; 23:fzvkvu7zltGkY9GQQZDD9W2+dCqpEu5Vu0Ll9?= =?Windows-1252?Q?WOF/b90hjAYJyc7VzwM5lMxV2xjfKqLzjccihCHtWZEijkLSu1ErhBIl?= =?Windows-1252?Q?SKYYtYKiPm+CfD0av5AN48HkowviWp3mxHOtd4rgtCxMWGKMmu8HU4eG?= =?Windows-1252?Q?9t8S9kXB4keraO5lTh8j80viqwwxKdXbmIBe7BPBT0fsCsm+Ln1VUd6b?= =?Windows-1252?Q?HZSBm1xfZU43veArhCcSEEWy5o1SzH9ECFYD8vEqJA+SadJpizO9hZmB?= =?Windows-1252?Q?iuknMsa3s7WFEppZwrVcAt9hC7tuusBF97HaNFiJmQ8F5QeAB2YgRfMm?= =?Windows-1252?Q?PxH6IDYDrWZ52HlzF5a6eBSnA/UyCftVnRzYxTYmLG9s5p1TQsMJsqEq?= =?Windows-1252?Q?oKWvTUNU9ymFJk65s40DihG4rBqmR1CwrbsLvN32H3d2j9+jBe1SKfKG?= =?Windows-1252?Q?ySnf+NSWqbKdrYTXlddd8RN2N8GRKk+0EqzIhpi0ggtjFMHYiMHBAWVR?= =?Windows-1252?Q?pSFN5VzzbXhaiSzw0QIp/9pBqyNZwtaqRx3JvTQmmIPtPY+jKNI48d31?= =?Windows-1252?Q?phdx1KfCZ7MhHtZyyQV/sxlDg1+JNWpyKunrDhVmknepcC48PCYqppXS?= =?Windows-1252?Q?y5s44/oTUK9RoXdA/UPfjsfT6t5mxSD1De4fJg3+S9OK5dDP6N9X5T5s?= =?Windows-1252?Q?jHTNkSu1D07qRA4vCujeTtonN1B0TYKsEtP9DXvVdCDBNvmEdvTClNPM?= =?Windows-1252?Q?tnYjCQ/sRQZE+JAUFJls7pEDu73J7wi4HAbuW+UNVMYLKTt/cXXFHLak?= =?Windows-1252?Q?82wtYsKSPeQJjq8hyO33Nw1GQieAJOkiFsurOQC5GKmjapNdNN7MqOOL?= =?Windows-1252?Q?s04SnL8PLVx9C0YGeKgUaBTuiWvbMvsoA1vOR+3Xy6SKCPhGs2edqAvV?= =?Windows-1252?Q?6f6L1qEjLZlQBrPz6RPe+ofXMhte491GczoDPZ//8EBZ/mU/PqYFlWix?= =?Windows-1252?Q?emhQO8ZRjbEdeHnUMN+Qo2sf1hwkYEvBduVpGrSokL80sHUGD3D3E4Pm?= =?Windows-1252?Q?d8Siomj9aVbkFaGMAawpVzsuLhrtIGXhyjAaYDmmuxabX1rooIMOxlt3?= =?Windows-1252?Q?EqnkQ0/iQRWIizazrJUSWp9lKIreXNuzgKgpLYY1owsPLXRyH3VsQRdH?= =?Windows-1252?Q?zZf/qL++Mi378M+nkFTq2pavL+9oyqVvJcrF6OkmDUtqCvtDCbCwtCDW?= =?Windows-1252?Q?VtUDHWKbPJhfFV7DeBiZFy3hEOIg5uuFvBn73capjlQqrbu503RW52X0?= =?Windows-1252?Q?KU3ChPLLjjTto6B1LHgywbazH0DhvpDYWJoEZYEa22ET2g07B0u30V/+?= =?Windows-1252?Q?a8kdUcs97qfpx7ae7EvtjC0n4Na+FkaA2cz5HX3zEtTUW+HQZ0HyPorj?= =?Windows-1252?Q?o/iXidjD6NE8t1O4vFRaqDs0uizzvCVmRKlx2MZN68+uhLwTXOpcO/1d?= =?Windows-1252?Q?6BZpZBvq9DmWIfGfNBLgWX8LjL/E/+gHzE62OfH/NVV2C0q0H5lC0uu9?= =?Windows-1252?Q?OtOo9u8k5dtSIWOhn758s7+19RvZAm5QYfSW4BGTfCr6diBkwXQnH9Fv?= =?Windows-1252?Q?Vs0KAIq+kvHd4xKUBaYchjQyPecozZ+sljUzkslz7Tocor7pJ9sNUXKD?= =?Windows-1252?Q?Sh7S1FYtowEWpazFIUktVle32fVVSdk2boabPbgnbhVko9KucZTz7JCG?= =?Windows-1252?Q?4rLjpBTAvgEXFyAxQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3094; 6:P+fOTDfQQGVSMT0tyYv1eJJzPd4UnfqhIDJfDt?= =?Windows-1252?Q?+7K20pVESRXjmq2CFjizhv0J3Wjq8Oh4tmwqoYI2/gSaOQ9ziJJPY7sb?= =?Windows-1252?Q?FcSMYQpALujarnG6uqE/dp39GnExnmfZsbKWCwrsSRHKFew9JPABbk0V?= =?Windows-1252?Q?/2kBTItIib76OqPCS+J/n7H9POEdxm6+REdKZM5dM5YT81ulLEmtoJMx?= =?Windows-1252?Q?M4pxgBJXm602jeI/ye6rc4Z861nXLP0/lmJpyXBeVmWuCi3BmsHPH2h3?= =?Windows-1252?Q?L2FKrSJe3s74uL/KjXuAPNG0wFDzNQzR9qwkaS8HYGfVS20mIspWlenz?= =?Windows-1252?Q?AC8kDPo481TE1BjWwwbqmjTonmREM35riusIpwpdiS5n18VhBRfka0sE?= =?Windows-1252?Q?KpWzovdFVtNmy2HSO6XkOmXqOTyZG2Rg5klBo0f2PIN0JtWrElETKuxf?= =?Windows-1252?Q?8Teq0PU9RuscrPzExdaV1sGAryq4TRJmQoiZreN0y9zkv+EB+aPDuXFZ?= =?Windows-1252?Q?ESLa9yRT8ghrL9FlI2oKrCkhSEznvLiT2KhdJZsiENuNUmUycSq7RSlM?= =?Windows-1252?Q?+kShAXSNcVyJUvgwTv9N/oV7hfKFGPl5NgxMJTgJWvaxez/9M3soOMCh?= =?Windows-1252?Q?RQ+Uizqce5kXlLGzvpsEdZjYx1XU/PtfGZkwJnMyYTDUbLQd1ptGuxpJ?= =?Windows-1252?Q?A3nm/SX63x2TvN0HMZgoetRjZTSwOXlzToxjZokm3Bu+YVGVvokKrvoc?= =?Windows-1252?Q?lfgo0Mr7hVKiFjDR3OO0VnOeH4v+T5wARBBJDGueKV9o9bD0h+/yascj?= =?Windows-1252?Q?rPAS3b2+4kChg34LMF9t1PRVoYjbfN1sG3JDZKA5nJhyXdlL9mV8kR0N?= =?Windows-1252?Q?bM4UWJVI0E5FTogQRJwfQshtgZIlIrfvJAZ+4mwFELv1vihonxuZCiV8?= =?Windows-1252?Q?Y9hPAwBNbHwYhJVKWftQvLfplrPvxpQb+/NA84JjysShJmolZuHMwFx9?= =?Windows-1252?Q?ovDpzc3DWsMw+D1XkI7zzoT+oOKl2X6raLqJ1rXEyTAwbSpUXdqChTm2?= =?Windows-1252?Q?x9k/CsaDboZJ8=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 5:fIEZdW/nyk4kjxOlgUJTAzZxaaOpvuDirBhU2UDnUGfkgULp64tdFMX8raO0VN5bDmxaWQXe34fXGmk3FQaXQOupSrzzwhutz/k3lZsPTeuSt9r39Q/WuPQixbAkG/SIYiMfvbBukNOD3D4mWQjM736TsqakWkiCBMQi6hPyFOuDJShgz6vCHFvoT1v5LxTv5cXqp16drIMpoN3bAHYmjCUqV3Id1Oo8uHA+VIWOYoO+O2jBUEFE0/lr6rM17ZnbHUVqp/7GjByr+7Hi4QBsowtGTUnQ2WN0Jk0Mp0uUmqMudv9G5ZCRUf7eQEQVIY7WoGC9WMrKkZngci1s2KXY5S7EUFPbQdaDmjHdJcAZaHQDusGP5jMSH9Ugq7vAAz6uUF0aocTzUHCtHBesffj/3t8YdfMjTqeeNeabRMI5CzgDhyIS6NdpGeHw0T3o4K0hkBtaqh0Kz9DzbZZyzmVMs9pypn4bq3aGPRHtVpgMufINW43+ZBMt+I6p1+8juTVf; 24:Ka9kZehChCJdEAKtthzT3FVABgAglHz/j5ubXBFNCpiHEmSG5BEx6Mx0J9sUxzYFB2LGBydBnCcs5Rn6GF3E5EZ6gMB2e4xR2hTxPwwJ9LU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 7:0nVlZz1t+XKSu1Lg6SXcOZ1qlPx4FesEKTGZGXoXJlfrtVhNCLX2T3/nZA/NESvWnWxywxPinibogsv3eP0hoMEcxoWIF2zX0TDxV+zwEpxcZ4h+npJfwl/Qq8je54ucdQm0o4hxvPhNnIEgoZ5QgVaVO2UTswFRZJhJqkdx1RuhftK7fcUflLijzpUZj5nbbjrj64VtFYgIJMghOvsAxijJBv3C2AaV9GOyEU6xC7rkEdV5vaDVH7WsJPIgUsw0A6niZrMnTUcQpI6at4yuxXQfUqnQjjcJyRTt3ALyceUpfFWCzrl8n3qju4YWcZsLud+5gfyTXoHB4+Ix3aKon9mvlXtuaKfIxzQAqP+6QIzRhE0bzMYiWojgA0M+wJ9c96a/b/9ELyky7y9epbBXj4KiZKx7vdJW+OZMhtm+sGnIT20W4qJBiGxggQUsyRln5+/JpDCI7A9r0rAvIG+GppztfWD+e8jC+06FEu+A4mr52YLJEZ22Kkm/tAJQn3w6pbBbPauP0j2MwXCHx1lnofMU0cWoeYviY8zQYY2RG3hQktltvpUr6GuG1epschJtLDibZOkL2Qjkc1bQkYRVzTAJSEpt+JawWcF9jPINtOMKFJVYzcLPyq+QVUIXMVy9vAWJrdOOHRbr8ZXXDxQyUC21Hr4RHQl7GWBd2HncOBcaCJHk6O2USUz4VIkQ4WqKnIn/F+yi2RM50ByQ2S2yn2qq1ndfWpeS+sO2LntKU5iEnOP74EInSr0JlzGBpotYoN62k9RUv27PxrqKIzVzHbfLpla9gsd5YNdVpEAFsew= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2017 08:23:35.5717 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3094 Subject: Re: [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: , X-List-Received-Date: Thu, 13 Jul 2017 08:23:44 -0000 Hi Sergio, On Wednesday 12 July 2017 01:50 PM, Sergio Gonzalez Monroy wrote: > On 11/07/2017 07:16, Santosh Shukla wrote: >> 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 > > Just wondering how it all works with device hotplug. > Correct me if I am wrong but if EAL decides to use IOVA_AS_VA scheme, > if we were to attach a device that needs IOVA_AS_PA, it will not work and should fail to attach, right? > It will work for igb_uio case, and won't work for vfio-noiommu hotplug case(Invalid case). Yes, we can dictate iova awareness to hotplug/unplug area. > Thanks, > Sergio > >> 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; >> > >