From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0062.outbound.protection.outlook.com [104.47.33.62]) by dpdk.org (Postfix) with ESMTP id B125225E5 for ; Fri, 14 Jul 2017 10:12:13 +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=QRWewiONJlEcUS1GiyU0a6ZXKhEtQPYzEVYVw14ptGg=; b=m/gN/GFlX8Lj/McO/x0rtDE4eMmkqpGBB9xI5R55Jn9bqGeflNiiXwGO1melzZGDgs4bBDRxX7oJFAnySlWuB8AK7qfmKWtVB5s1Vx4Dm4dozPt/iqeKp0jSyGulvS4WAbtfZa7XZZ5UfmPyn3rySd8g4GJ7XSOLu5wCcIHA2Eo= Authentication-Results: 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from [192.168.1.100] (223.180.9.21) by CY4PR07MB3096.namprd07.prod.outlook.com (10.172.115.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Fri, 14 Jul 2017 08:12:08 +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> <6e8d521c-5951-d93b-4707-552766f92da9@intel.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: <56397342-1222-15d1-9721-9ad064f5251a@caviumnetworks.com> Date: Fri, 14 Jul 2017 13:41:53 +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: <6e8d521c-5951-d93b-4707-552766f92da9@intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: [223.180.9.21] X-ClientProxiedBy: BM1PR01CA0078.INDPRD01.PROD.OUTLOOK.COM (10.174.208.146) To CY4PR07MB3096.namprd07.prod.outlook.com (10.172.115.10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 76271443-51ab-4331-8a30-08d4ca9007ff 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:CY4PR07MB3096; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 3:kmjTFc3PWbmH1g0Ev4qRObJL2gaGQ1ndKeLB1NjPUFMrisbpf04/XO4OzkPs2gCX4m0igvryaYVppES4kP27PkFk1aQq8krBgslvvvBL8gFK8xafadv1X5nWFrfcnCf91RhSHKdgc1W870oxFdr4/zpiONWykzGbBabOa4cK27NdlGq5xKrTVWAovvnFyEC+NOpWRNbPRSyyjDWbv7Jl8fkFAomxVmwuxC1nQouyedZ27Enr2dlTD8lwoYyut4t3aYM+DM+bPBMjJaDdFSI/e4HTt2uYsVAy2XScnGHz74yVMMQYM3gPnANnexgmcoVjF60NHrsgtaj6m5CZekmy015ieYhv79Vh7srzR1r6GZqxb0h6koGw42ZbB0rgYsM+hTaUb3J3bN4xBfrZOcmHZcNNzSA7/OuFS5pmeyMNOy04UeYiNOku7nxneupoZfoexY/gLrP/+C/6Y5bZK6btXfkNVSyAFhlIrsMb85JUy8Zcix5tj+0B2NcWweSF8mCPXIsR2PRSBhvczzEU0NjPO8xPsrifFjkMi8K/XlGJRmHrvXmgDMMqe+EzW2nK+iGrFOJ4ELkKYuXXPuMPdOsAmedGx43eBoph3qXbYI+YV83dq2vHxj+IOIgDX7NXJ9u5z6Y3shDvUgviDd6dHcSM05rWh0tDcAunQ40wx3rVxNi8/webZnpmgUHafjmjRqh687+Ob52npSZOQpOZD3ozJFV6SCD9SFgGiETbcEaOujc= X-MS-TrafficTypeDiagnostic: CY4PR07MB3096: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 25:vImR5Ll3OBdzM3sOOitwgyOZLoUCxWbBxKnt1pp48lu7iipeWqFIz5FMZ2nmFdhv6fvW5/Ay2TvMJEKLzAZEeLY2ovzde9+xumeSIv5mmVqME6JWc1437mGC6xlGfKmJVyNWBej9ZA47fEulKJ5I8KiD+WiQ6bs0lgcQlAyKeW8SU2YyNHCB47gdW+D0p2txMpsPPoT2YKWOC68bxpFKl7s5L/83p+CPGU/4QjzrWDraDCAd9rV4kJ8+WD5LgaYRiJSvfgRM7tqKIMQAT/cNTmqLNh2NUVXeHRy9ks6eFNIsAVRcWrGkYOecez3HO4z0KnVmZsau/f8DgbSRvbqx8o0WCdHT6uFDK0zUReJGbklt6+rDbJqLk84pMJ4ckBIfhM4NReooA03XZcweNf+g7XenIX+GQtZOoT0LuQxWUjDBK1RtvcCqeWZlqQJZYLROFIS58z8+nMkMAJ0Prfmtfsy3FWy7kdQUklvJIaYKxz/KcAyWZHlEFc1o78Oap6KmUIpIIhwvefHE/7O0FHahj26+h3nRh2jnQtMFIgseb0MAXFupAfla72yOlOGYg8sdVxOIdY5ixXlTK04b+wBftJT/JVK6jPUkgTSTqmbfnSveJ9DpJG7SNUgc66qHcA+vph6xRv1R9DS+tnCf5C8FajVIMgmo4jLEVeybpVyAiEPOXx72Hz8dB8QeQSqm9u6OiZIX71CTMlH1H0LZ3VpEgQQLcDzGLGUuev0F2D/ZS+reuWHaNYqbrvu1RV1lK3ws6gPbXHH5KvSPfs34Ro8scmOeCj+thz9n1vfcWQu1acXWivSY9YOmTsyf6dPDaDEkmo3AQ07NZyMoIZiU8Wtysfkph4dNVWGHbecoan47BkHMdP0qJO6RmreBl1bwSklGBirWnOaFNJob1TOSommNh2bk81h2HNMewHqhwCF/bPA= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 31:pjkDv8vuwpr/k2reRgeVvMyrZjR9cGQUkHd3x5SoY7kVoELoYgFd0bPzg/W3TjyMEDk/jJF89KNVyaRA8xWTQiJuV7/5qKgWdKIigu8YOZ6EVIWL9JqpJxRuBVoVPQ+gMlCZe2Mo8gg2xeGIczMqGG4qQQ+hHeTjOReRGQ+DXHKUR5eDKwh9H3JkXl35IrfTyTXvWIMlWleUrVgmY8gK4Dsx+C9P9/7XJoHuh7/oSIp7lqjXOuHNBdU8jcAZXgkNV2I6Quln8E9C/rk8qO/aV72gVb5dZaiLbsXLxIiLtjMKK6M8dLm7ltNEByBAsyXN+7ke9Sg2WgV8JfYLm7OPPEP/hToyKLxaAS0+qaMNdiyJ+VVE65S39FjCdo/h3hoskYKiEy0tl4hat6te5iexoDW+IlzujiTXLebhZG/gAct+a0RJTS6giC7iajGx9d6+Wqe0sCQ09PHiHa7x858r+JR7bFARxcR/hvZr61VU1gyW6gYhryYsv1Mxc7ML37MRRATFvdHXWtkP/URt0jR9FF+jThFfaGoyvo7FYvtY6sKPi+XZG+uA24z0FlL9OohuofqMCjHREzKNRErbIgfEyoJZ8ZELKphsxPq9a9Eia96WE1PgfghLilxZDmG9Z9DjDwcfVYAW8L+G9mMdGhyOV39h4cxDN3rHJt7AS/VDoAA= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 20:9S0BBMKWZUhWDC9lkWgUAd6hCRl/B/9u8HmjEpzfZSdU1A/2UN8gNNQKTGXH3W7UOI9QmhBgkjMZG03MYwdLcmBTetTegoCssfEG11F48+LuEVcrQJM4L1Gf+hyb56HRnNisWy1PjYAcjEl3FSDc2fXsbNvtB5EwW4cpBqOsnDg797yEje6USHcY1g1Khpe+QXe4o8ST2oUINn10c/+1jjFURhjLaF80WM04jh0D5RbLvCDH4fYF5OjfobTps3kp8cMoCD943Lb26GeZ5gC5tk+9pLso5S4dOdZcDkuRFHRc3GEypt9I49KgucBqy6zleuNS0wFNnAp/439KXag/jR8/hadMlUJR+pKy6VxAJuuASFciqS6MBxJxIIJ/mDvhu6CUSV1OiHaqP1RIwncqlGg9R/PUUaAl85Lf/NqAGO2PlpraKdJTvwXCC9QSn7pdINC3vxB0N5/WCVmzOofB6eqY6dn0mhZSqap0o8vg+c4XD916AC59gLzs6OefCsoG/Ijabfk0AtEZonFVR+su92W0/5SSt+g+493dm3CGfJ2dAxUWXFUDoOT6Zvf6tL66nHhqbsBIUpCECYBBDvcVekLD5j3cG6SmR2U3yuR+4V0= 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)(3002001)(10201501046)(93006095)(100000703101)(100105400095)(6041248)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3096; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3096; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3096; 4:l2i5IXV/qoVQZeJgQJroPFdhs6pVGD2PdpXPKo?= =?Windows-1252?Q?73WRo1nfRuGJ5n3QbfczFiReSbalWPY43QDVPzBBTYEC8fv04bFL7gOg?= =?Windows-1252?Q?TN0QOyPHXGJ1wMPbXnvtvj/dhiqMCs9GP0fASz5jgA0FLxc/ebGBkrZ2?= =?Windows-1252?Q?h+S1HfQZ2EXbIXX2Q+OtDItqsdZX2RWWIl3HxspXX+6dRgjvDk5K8Nls?= =?Windows-1252?Q?+MDfYarb1ep4DaN4odJb04uXJfTP4EGVpjEm70pqr+bVjGsg2zlIsRvQ?= =?Windows-1252?Q?g5Y6HIubihC2tLS/DP/+Uo69FVwiKvLiWTjSX1gE2TkCbh/fPaUGu+08?= =?Windows-1252?Q?4/ARe96l/tA5Iph/pAwK07h4r/b7um+Je30sn9MOCRB/fGMFYZqS4iQo?= =?Windows-1252?Q?1JdT7nQU698DwgjrPWjb2hJd4aFC3Gb9gOxCOzmLypsoeS3TN39+4KyB?= =?Windows-1252?Q?jJWJyYhb++ns901ufsmZSnCSsAPbr1TdffE6/jKcCw2TN8b/ndYYMHPe?= =?Windows-1252?Q?X8H8PrjsEl34dXRdUzceeyaQP9ubHEkmMuNLaV90L5OtWQXQfdYXtmE4?= =?Windows-1252?Q?4oXr42HAx0o9fsWeoaluvm53N7RGP9RMENYA4SVlHldBudIXwItmwjWs?= =?Windows-1252?Q?yR2s+tUtHDefCAD52o1Gmbysmo1zA8/HrhVsTDaAlW367UPJmTsL/yYX?= =?Windows-1252?Q?8UeYrLfoLYYfMb9TmOIQAFmFk9RJ8dIC1HtCAYJPTl0CMsyD1TISsi12?= =?Windows-1252?Q?BAEKynF3BEqksT36Kfgm/pZDG/CWaFoKwE6DxjcBdYtnmPs9N0Gktll/?= =?Windows-1252?Q?fQhocjBFfaBtHKX1/2flMB2rrWopVO4phrI+olmABFTUVQ9MOupPZ0g/?= =?Windows-1252?Q?5UktJv9/F9wff6r6RKW6NaYx6jH3C9zvYQb8FBgt+irz+A9YfPm59d0z?= =?Windows-1252?Q?egmpAycTXTKIS/6GD8P9aRExbjrfd1l6ZgjpbIOnw0ZB+lG1rTI7yIvb?= =?Windows-1252?Q?aO7nz7YKW/98VZ2GOg7z0io1DqAz3sqivVw02kU91pOezBmAmWgGJQgf?= =?Windows-1252?Q?YgcURJfhJCbpphNPjAvnM9JXYLqwFwKupbPjqGpU7JDlpgwrlh83eg6+?= =?Windows-1252?Q?Gbapqa319r2XEGrTNz44oBN/XQTpt1EALgpdst++zUFqMIpzNCar7CJK?= =?Windows-1252?Q?fpjDVzNkMh+IIC1y6QeSNglsaaZVQ8+T9xLJyovPYF3sgRQuRsqptC0C?= =?Windows-1252?Q?io/WKnfcNyx5NHhlRt4p0FCqBWZPCSy4+FYnGUwiIZNOqLjOXtpzIq8L?= =?Windows-1252?Q?3H+XiQUOphJFyBfbeIgZv99Qc+Ss15TXKevS+EJScT0pEVaDVNuQUdqZ?= =?Windows-1252?Q?izoAPNSmBm?= X-Forefront-PRVS: 0368E78B5B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(6049001)(39850400002)(39410400002)(39400400002)(39450400003)(39840400002)(377454003)(24454002)(305945005)(966005)(6116002)(8656002)(50466002)(117156002)(83506001)(4001350100001)(64126003)(53546010)(478600001)(72206003)(8676002)(6306002)(77096006)(86152003)(6486002)(7350300001)(7416002)(230700001)(3846002)(31686004)(65826007)(2950100002)(2906002)(6666003)(81166006)(50986999)(47776003)(36756003)(189998001)(42186005)(23746002)(4326008)(66066001)(33646002)(38730400002)(5890100001)(53936002)(42882006)(110136004)(31696002)(6246003)(5660300001)(25786009)(229853002)(76176999)(7736002)(93886004)(54356999); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3096; H:[192.168.1.100]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3096; 23:OpXTx0dpk6jk2M+LZ8jeCDrrpjisbaD0hrbFB?= =?Windows-1252?Q?yyREmC08nLhlduhUteviY+z8IgyZzszmOSiDqvpws4wtvO+LIzSPfkAJ?= =?Windows-1252?Q?Vjx4K6olHkF1rfbtDdBPEAR9fOvXZx8DwKXPPDMpOhR6QVadLC1yVmu3?= =?Windows-1252?Q?QITyj+51DK90MWgzDkyhTZ59fiik1H+RWHJikjJu5TQfWtzN0ll2Ve6O?= =?Windows-1252?Q?UVbRQ4QMMhDyJwIFdnWcFLtzyPOPu4DMhCI6JaK4qug7j3nAb/NANWqv?= =?Windows-1252?Q?g7Vcc1zpm4jEU66Szm0tdHxI5ssoJTc67m8tNRVM4EKma4KMW1/MeTzf?= =?Windows-1252?Q?kzK5pDpvKP4QBeGNynXUKX81vJYmxPNfrChci+FyG1Ecxg7cG80gpYsR?= =?Windows-1252?Q?VltI44tR+WHtF/dvxG+ZLd+Z+YkIs02ieI5OswiczdCmmdjNRDmTvDo+?= =?Windows-1252?Q?voL6aNi2m6RzYnbjcRqZm+iykpdOYwES/FdalSa7YAc9LIFPJZmWtt0n?= =?Windows-1252?Q?9bCqY8f4+3Lvx/RcUmmpCufYyZxXD1XVxBEZv1E9l50LWfYRNF2rudP9?= =?Windows-1252?Q?ipP4oukF7+h69/mRH8uOO/zfNvlbNPDGAp/Tr3pLP2kvYpmrjPzeErvJ?= =?Windows-1252?Q?ywBizOHcMNRGQDt8461E+G1GC0IT899dZki39qHO2b5oC28Rw+9tp4Xm?= =?Windows-1252?Q?AbiuLRJPeuEsWYBQiswxTQnW0g/jYYkyYAtZTK8xvbj4Qe9rDD444wiJ?= =?Windows-1252?Q?9K96/xS5gU3e7kWu4a6NG+dd8c85oew8hK7SVYeW9DSt8aQQfrB8iMPj?= =?Windows-1252?Q?BQ7dhvFsfN4uinMneY1dEGflGj22FmNsRkNju/BBjAscaytje/m+Hth9?= =?Windows-1252?Q?/TCbMW78CEEA/CJUz1K46m88leVPwSkrH7GChMI9ElyTBR7eiwD03WH9?= =?Windows-1252?Q?S8mhh8WSDUQtsOjEaahBvJRhO5euSwHKHCHszRGj3i5NpO3nT6tSy/Zo?= =?Windows-1252?Q?x46CQqEutxuPKQyG3neYiNTMDm0ylAC1xXyEiX2L4RMLLHmBmgp+nvCq?= =?Windows-1252?Q?Iefidf/LdwNxUOM72HXdrvVldq657Spw3csg/ioKMXSIh1FAXuTulw4c?= =?Windows-1252?Q?pCoJC8WtNa908QpbddnNLl9ZPOA/9SobqfaiX5up47Bnhxv/y5b6Uo7/?= =?Windows-1252?Q?d2KsGSir/LSiizp6iJPWqhodRpZI6ipUNK3RN9mGGNH9kN+Jg6HsbdoL?= =?Windows-1252?Q?P56bRG3lMvT36JVId+Ony++jrDqXUiM3YkLuRyBM3WsQdbpur2gGr3TE?= =?Windows-1252?Q?UH9hnb7c+AOTO4DL0NMPMwln1bt2O8/qa5cbJfTcjUTGEPpHuCQRWLU2?= =?Windows-1252?Q?HRGcKyvDEcHlSJ2cLgF8d50HBQopi1NJdJqSM03MA6ZAwm1B1hfPDgHk?= =?Windows-1252?Q?ZugKmYLJ0MIf62CP7KR+uUJbxwDmGw06T8jnJ23f92IVNzNhBtVwF3kO?= =?Windows-1252?Q?L/jFiyBZGiwoU4pEb1idUimSHe4LwOvHD8QmVExpMuTYGyr4+m11Km/o?= =?Windows-1252?Q?XUGHlqOfuAgz1JFA770wZsHlNbOW7B7UwKKO+zoAmJI1zr5WXfcyBoPA?= =?Windows-1252?B?QT09?= X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3096; 6:EGrrN8qyBQofr6+gLyf6MTQSHLlv/UJwy3wb9p?= =?Windows-1252?Q?BZHoOefZ55BjJ4oyMHF6B6xEbYRUUirO1wm+VRaU1ItdlRyysNJwL7OD?= =?Windows-1252?Q?/AsUL/qImMak8clQXM9n7RPYAwoHrjU7Bl+FTqmWgqRXTMUB+HmMOSuZ?= =?Windows-1252?Q?vDsqDy3bTkyQadBbu67o4hO+MmfGzap84fX1sw/+67pjz6U1hlEMeSOr?= =?Windows-1252?Q?hOgUgIyzlbGyK2mzytmxEBg45kdjs8Riw0vUIRLvzD55PThC9KYpsRe/?= =?Windows-1252?Q?wdhMqeqlQdD641u5CuHHxyUCJSSnKHRkckInxRgqvJS5gCJa7y3cAoIF?= =?Windows-1252?Q?88CxTirrwo/S+EGCX+OGukjMn+Uf//9f8KXg/FHMqB7E619YR+u6Jv3X?= =?Windows-1252?Q?oI3dsqKNv0Hj6667mewkxCjep1iMlv3ot5g0/VUZ5WDW2MB2dwvsEtWY?= =?Windows-1252?Q?ozR22On6YoDH6NyziqesosFoRKuvXAVLT6+5rw9dtyF1SyJwoxoMbqIJ?= =?Windows-1252?Q?kBNglSCBATjTQydiXvtZ36BhUq/LhL1+5bBWCuMlk8ApSemlsZhAlhMn?= =?Windows-1252?Q?tB/SfWfo42EDIRZfm5+dF24f0Fz4D2Ugur4K/J1GqG+RQI7R13UR7cK/?= =?Windows-1252?Q?KpK7aDAhwXM/IweUOFUpNVBWH3xZ5rcu0ntpphTBAZCK8/DVjNhyebte?= =?Windows-1252?Q?Z4mzhPkdA10yxLWNyx01ASHuHQMwnPqtajKa4m7JRE9c+sgPY3IaohTV?= =?Windows-1252?Q?SXOhkATXRU8BIUfUZYbSC3Un71GjqNpyL5Dr6sG2QYntQpDg3SQ0wLkt?= =?Windows-1252?Q?KF3E3Icq537uucZGQVno21k+9G/qLDIBZQnOMm323t91fC9NBHLTRASs?= =?Windows-1252?Q?8gPaYWo7+1JcUf+klQ7fPKTw/FDEOP/umab5ouQtP4PkU1AKs5DOgZXV?= =?Windows-1252?Q?dhLuEI32l2HiGV5b5tuMDuON1O3X1aLAZUS7YVQnSqvHOsctq8xekU9+?= =?Windows-1252?Q?5uPt59oT4aLIaVAPQACYrfmSb8M/2R+xoRkFySFcVgIDCG9sJaA3E4t/?= =?Windows-1252?Q?BYwY/aZwyplTM=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 5:l3/UQeVdypay0ATDMYLTyQ0ZiUc1iWdp5fgcQxZNPjIud788XFi4T0CX0TGe1oHlH29BUNjbMvmKdIV6T8lLXC297Opq58zQpkAeid41H1JxSMm1h3x90EDeZC9e++hYZgddeOSPduar6vYlmYYQTgbzZG2nfE1/zDhLSm/4hI0bJnpvQLU3gRz61z2Z3+u0nx6LKiq3O80RjJ83Lr4OuKAW4NCJflPhEdWIO7BiMrFhmq+92wognbBXPm/O3MK1ZySkKYzuKx4CSZ/Ni/oRg6smFVU4NZgdNRZ+5ZBgkGfK1/XA4XzIQDsuZr+xFoO37F3JvXSwQGBNtxFMw6wZf8SHcBKZNRj68s8+t95z58IcjkgJFwm2ANCYCf4B2Xkr6FtPPYUCrlR58Q7JgJnjxyulD+UCgecJ3djRwNsQBBVdERdy6g4knLbynrkofITlcWU2zubwGu81JBoVMvXpJLgXZOsip0+PUfEuX7LBy+3DZLC2u35sDhCXXUZd32Zl; 24:Uef8zfVg3z7yCvOr4gJVr+oaOT063g4Rra3A9ImTdnppVU9NLophoHa2Ui/xKOSpfTiQvRNlklZdKwk6lNNxvy7cRTUeOI7OhWZArBicJ6I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 7:Rw63zASdpt0Rssqij1Eivq4u5QjvgzA6dv0wbVb1x/BiNdfPudE9YvHFgolb5yLQFRpkNItVEct7DX9453MfTH87Ma4X1w5mCaLeKeWo7Vins5jevHZZ7Y7a/RCjtL8phBl3RbQc0b8n8/jb9nQYZAPiLZQdBROICJ1YTqqu9IHWdpzxXLSg17WJxlPmLshqU3x44YAM5PnLMWQ9hH+aaNt9b2T7ATmZWGSbJwEaabVuEyo/X2wnAZPr3mLl/eK0nd1zfFNEmN7l/jS/gCollMocHl12/x9qDcgwT7GD0YSezQ1ABRXnrpgpAjZtaDwZTIP/vy+5zQn2elnr0WkEP+7aKUOR86dSgFjH/d8LJXHhthYJ2ZMIZ72rkS0NVAh/8KC02Y4n22QMFhwk74ChhRP2lhBCehryQMD+rhSyeixNvN1dZgMIL2ZNaGh/PZ3uWQcXe3Ak4JeWhLg2ZBpf9f1oo5sTnv0oBx8v6LOuUp4usOJItYMRJEqN6oa3u1HZKCX8C8K36S4HwhlSNdCGxIOF6JkXMrA9vYqSMGlMtWEjiDCK1ZX40nwmjokShFosSPSpJ5MZNPYY6QP20JMJ3nMk3xIMUbO7OaS1u2CduNDQbEVfJafw+/eR+O/O/bXT+hk1bqwn+Q1lWQPp97a9zEAZa8Cf2jEDJR4KAMs90SRt0XGdVkcEBFOHXJ+42njLuUjj73pZIf/CUbu9AWYcgaDE1C7eaKCsgqczsIbGhaQE+Ovn3YpQepzLKOdZG/kMRiNs59Ua1cb7ayAM8aywYQmG1s5niX4H/EI0VJpzYzY= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2017 08:12:08.6119 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3096 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: Fri, 14 Jul 2017 08:12:14 -0000 Hi Sergio, On Friday 14 July 2017 01:13 PM, Sergio Gonzalez Monroy wrote: > On 13/07/2017 09:23, santosh wrote: >> 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). > > Why are those two cases (igb_uio, vfio-noiommu) different? do they not have the same requirements, ie. need IOVA_PA sheme? > Behavior remains same. For vfio-noiommu case in the context of hot-plugging - Rest of the VFIO(/iommu) devices will be functionally effected thats why mentioned invalid case. > Thanks, > Sergio > >> 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; >>>> >>> >