From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0065.outbound.protection.outlook.com [104.47.2.65]) by dpdk.org (Postfix) with ESMTP id 72C659955; Mon, 31 Jul 2017 13:15:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=9raxN7sIm3aW/+axCwV/gOgHZGdKVw+Q6bR5A+qIvtA=; b=ZChClqkLNfkNDqRo8Siv/hAK/hJ6tP+9Cx1Z8UbdrsDbrKviGgvFKYF9fWQW38678iX84qb2offRTB4i6oTZIaR0vhRLj5QbsLI1EIy1O6HMyBvAr4b7CAF1e1Trfmxmv2MKvW5OJnAep+It8xjIh8ZXP8M4MrlmN6rp7i3HCFs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; Received: from mellanox.com (37.142.13.130) by VI1PR0502MB3053.eurprd05.prod.outlook.com (2603:10a6:800:b3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Mon, 31 Jul 2017 11:15:47 +0000 From: Matan Azrad To: Adrien Mazarguil Cc: dev@dpdk.org, Thomas Monjalon , Olga Shern , stable@dpdk.org Date: Mon, 31 Jul 2017 14:15:09 +0300 Message-Id: <1501499709-19873-1-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: HE1PR07CA0018.eurprd07.prod.outlook.com (2603:10a6:7:67::28) To VI1PR0502MB3053.eurprd05.prod.outlook.com (2603:10a6:800:b3::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 23a8f079-530d-45c4-5c9e-08d4d8057f0c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:VI1PR0502MB3053; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0502MB3053; 3:eXWIgPBpHM82HkvIy7XFuUVSU2iGm4dXvOLDbcnf+jV9qpM/cCAt306x/WJduEF3PvOpifBktCH/aq+yw8SwL/9U6RkffvifyusuQcGNsBWz9cLS1cPGhpdrXmdaZbEDCZsVhyqhF2CMBF7NJdbyGc3NydQBNRRgpJHrERHEcY4mletQQXULzv6b5Nh3Skzzw2uXCQsvFtG2OhGKIlS7PbjEf02KamgtH60Zb+OK42b/7unUqCLZR9DZfPyCl5DxwwKMEGZKCGOBuhEofhUkxjAgwH86j62UJ75RS64IBSaZDYxwKAmoF+AfZDV0g9ZEFRcAJf4o8OIrMDbBqZAobJJJsVtqin0BGz5EX73es8bo69Xnhi9cjP1inhf7ZyXOLTfc/g57v7oPN49qZL3d0pHDubYiQqypHGRs9bRfPOrOI3xCkvBr44Rf4ujNuMQjnTxoqcs8DknqMJsF4aOUnsWNjSsHUvwetCk7OaxJP6pSdm6vKZCLFgP4BIdGK/oVN9s6xffrejy0GFCbfVLh35nBjkmPZz9+yAes0rM2gcPLB4MLbzkIvC47LgpWrLUaXXRaSRm7qACqInqq0rfbQIv+A4isNniw59QtYEBew2/zYgmYDTZIeaYhqmlWzCmSUvfg2x+2IeYwcuqBfKi7HsRBWjdPtuqgXmk9ILgeXrFdVTalX62Ja4IuRC3szV+Bxu4jhfNs0RNBPLmk6ShvyJq+N1kWKe35KnNXCgCuhiE7J+v3+15hIMCPwmv9WzfKZCb1EOBHz8b2/J6SM2fRJADVNM/tr1ebRu1O0Q11GdoQZ7ZaduKR4eW3F9vpkABHkQ2cfjtxVseFbi/vj9o5Ng== X-MS-TrafficTypeDiagnostic: VI1PR0502MB3053: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0502MB3053; 25:ZiP+o3qkETtrQ59GwDv4kgcFHTQGlaokETrrMISv960MWB3DUZw1LAgdIP52HxSwDsDDK1hTCTN3Hnz8P1Y/9mk6DvtjvXbQDLtULv8z04hFsOXVo/rXNKl1FGaJWq8iqD4QoxqGjTL46+jXSCOD55CQ9izXmbt5911UUZKy7UZwOkan1zYZuxGyB74OOFFC0KefEBD2sL0sTeVJq9myDaJMeuGay4TWoXoBaZC92C/uB3MqrGqUXrxVW7QXRe9JyYeap6GtleTXCwcYKNyz30sxoVlUBiRNApXXlT7k/tNUKNBfpwi8ReRAV71/0ynDmXJ8Dx7fr8ab0f3WEEQvktHY9WWpea8eodluWDPNi66czMR6wEoM8bDl8XfUfVdUY+AE6IwqCkPT4+WgtO8Fvqk2YN98UWtOzNH4BL+PwbATkk/g5jPzHHT8M429Z97mhkNwntcFfyKUxgRSi49ECanMJ/l6znvvh+o2ilxmq1/r8FRLXOjmyJwuima4Hq5EY5bdyjwC7oDtwtbV5rlBpO/Z03cfkRgv+3ILpsJGTSmxzxfI/7ChmZ7+Hycw3P1UExFS/mLrLxr+JUPUO+sqMjV8WpqTpmCLuqldC/qj1SIqQr6a+5af2J9HPkdeKjJtyek9xGSH/8+2CnBvAXszP6PtwfDBwFOZW/VrQ7SgrFR09wzbePQs6/uLBIcCRs1YAfYyKw+F/NzOOlXpWsWR9yMlam9j5o718TpimnljQK7cS79mlFtcAUpZDYzVHgt/EWL3z8Fi5smttjxKXh/YPDdNgrBNTHkm9EhJSL+luFIKOqiWDGSjFYyo6K0KRW6EIHKreCkDv+ty9vS857Wt5CYObLd00SB5omolx3H2FS1pWcJ7kYbo8093EeqK09Oj2Rm+O8VSr9x6CV5tbN+DWuyF/XgRdFXSfTMA6dnEfGY= X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR0502MB3053; 31:QhtyMj2uTTbdbWgEoO4FqNq25PeMi7UaAjExgHNCoZeVuYJTC2T+FzHtk8DbUfZgjuxSw9aWlVB1TK+nMWN1uhepSl/kvRlcE/4bXCu1ctrtAcbgtSRI4PCxjdejXNR/po/r/ULm+ZvmkE/h0WQqs+nDgJTmkW6HYQjDJxtJZaDxoU5SYClNSj+T+I2gfp8JAJxYAXYQ44cI62i4n93nnewnn2drZvIwBfuNPRMsoi/wqHUOxg0mrHRnVGB0DFhBJ30fByvFUbCih2obARaAOXrh5R6Xg+Q6x59toY0msyieDQA+KAr41DdOA9Xwgnjtv+AsJrXknvvaKBnzA07K1d1rzabXj1Ety00v09yeMI927UoaxugylU6RKO1ta73ioABoKSC2jiVZuHd/DKxht4JiBkirylmB/Ga2FCD6+gBrup+ieV9tPuEpoiIpUPOe/JolSH1BGtAwbvl/6lB+6zIG1tbOafyvXp/JAUT+SsSQVenbiHjENZhqxa17k0zT2gsXyaVqrLLiKucCrMyLob34PEnzQf08B6anbgdFFlo4WusblLIiPQK+EtUIBIL+a/McndFroxv7ZPdFMY9zizTlu/+rn8GMrMcXNwERfpmqV73+DEnDK01fYnPhTK7UpD6F5PTqWUE7v6PJEmPBkKoXapbQQ7H30QYswqZOEnqndexVqvr+uuzOfNaOzPYPUf3pSRAvpHvTWvqBZt4hH1ClBIWPA6pMTDIsSK65XI8= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0502MB3053; 20:SCM7y0PFNLJuxrpsobowNBoy/Wz1gtpEtsVHOPaaRjU3G8gKRs838Gwxoo27QSs16OJJHBjp04f68b2EzTVvlZSBV4g8BjsKTQjgWFf4XphQaP+TtjZkO+TQl3hca7lH2XbgVPOz+MpTxEzW4j5fYw1lVfocmcwJhoJ6A5qqEnKwVzQWfu2Wn+ZBHG05EFDobUzWBBIcg6nJKeo0DW2nRBxO1bWji2Wj0+sh7d4tFEIuKluxdvVk9Y2CLKTk0ICfCL/tfy+8rrIvhGc2ru4buLukxm/0NO/6TkNQSIbq2dVdKjusgQ3KAKXgZg5NHlABHD3c+CLSVQwY5Ff9XeIEbzw/uSZWhwOCS5TYrkK04kxS6TXKoG18QNkyo7zMo634dE3syJ9DR85Pm+E4R8IwYu5GwRgTlcLtny4YAeSAHazcFw8K1xBemy5AyjhEIGMNNWFXgWzihEFpumeg5TjuplQcLI0RSwQwIWylxZ2n6fNYeYmG2olBDvLqj8RAiZPX X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123562025)(20161123564025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:VI1PR0502MB3053; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:VI1PR0502MB3053; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0502MB3053; 4:5vunu8cuU2aCNxm6pVYWZH6Z3Drp1cc4Ze64K+4s?= =?us-ascii?Q?ZPri8U3MNYTPllyr3raCLX5MJx4C6z/l8O4pFy82gfGqir+9+gYufyDt4AzF?= =?us-ascii?Q?fFXeq3wIpygUzRC/5OUWk+sItfxsoXQRAzt3YS73SugVH3quCvqpl4/RZ8ia?= =?us-ascii?Q?2NB7i6uWhWlDQlj6FPM49hiatwGkyHYV7lvJzbZ4fjz15xTqfE9LuEJ2v10G?= =?us-ascii?Q?Cx9iv43aNw1hR9qYNPNdt04Y37cmUR03onlsThWuV5evQgeJR1I8mq1LAA9s?= =?us-ascii?Q?ZZsdZXy7hy38u+pD+m+IQAca0c4YaiwFd8cvYbgD5CMHTkGQnxtiZ8n6YOLy?= =?us-ascii?Q?htsNsdPIRYxZYsTm3czSlCDjhlttqjNKNbu0jcFXqfP+ESVJNvRnN5EPThKr?= =?us-ascii?Q?b5oJn3fQ4ul1UktcC+DmXcEDRVCq0AZ1gEl13ecjYMFrunA+qCJz0ufY1ppa?= =?us-ascii?Q?JB7ulU0dr9pwGhdcuCD7kHOYJGE0UE8t9qH3EvcIZRXehNA/pniF/hDq5S+G?= =?us-ascii?Q?qa/vfwRgkzAKkYTylIPZyKTgRkg0IKPxnQd7LowDdyFHLVRvfZI7+26DVAL8?= =?us-ascii?Q?rcgj/wdGaip7H2XcDbvu2edIrPuAhLdL0NnTXDjTDnNYcPBquIetp+K+picg?= =?us-ascii?Q?hPEd4ZEWSTMTyBh0ieEpC/7mnoyyVqHjo0ARUd/740G9LhVQkrAkkYemo2og?= =?us-ascii?Q?FFSQC7ms6AGu3ZMJpaMshskR5ONTPpJqrMwhTmKoURyH8LAIn6VVSIZ7xuBL?= =?us-ascii?Q?MPrewAA0he0OgvN8N2NysVRWQ0cdZD1nFejb5sAnsS76pknIXnuLaAIdr13C?= =?us-ascii?Q?fBHKyAeB1Wac7dtaBz4/1N549puFjZrCqq9ZotW5tF/Z0TwC4Bhi2mXn+FMC?= =?us-ascii?Q?6wf7f8zpoauDzbA5IzL4SdpMCuuaPEiQOatT1vGGFtQhILkm3jHzwtp0Pl0h?= =?us-ascii?Q?MWxwVaHnpAjB/7T++5qxxjsVY7sS+CWGR0zkXa6akWiRlU/LmCjYq4Sc3cHB?= =?us-ascii?Q?zQalOYBcfQI1ms9/a/IZvYoLxFKSdcOO8Dt59Jxh6EPFCD6XbGJ7llUwmqdF?= =?us-ascii?Q?EhcgyXGVaE3u7ybHJo0+rhotsXdkVpbVO3I6RYcmrFMk6gMRzglQzJl1jGwl?= =?us-ascii?Q?sZocGvtKQnd6avF+AVonSlPouEzJ/VjtdZfUSwnc9JFoZlxobIoI3Q=3D=3D?= X-Forefront-PRVS: 03853D523D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39410400002)(39840400002)(39450400003)(39860400002)(39850400002)(39400400002)(189002)(199003)(4326008)(6916009)(6666003)(50986999)(55016002)(4720700003)(7736002)(97736004)(50466002)(38730400002)(25786009)(69596002)(6116002)(68736007)(33026002)(54906002)(5003940100001)(189998001)(305945005)(36756003)(53936002)(101416001)(48376002)(478600001)(86362001)(110136004)(5660300001)(33646002)(7350300001)(105586002)(3846002)(106356001)(50226002)(21086003)(47776003)(2906002)(66066001)(81166006)(81156014)(8676002)(42186005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0502MB3053; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0502MB3053; 23:3hnC2O41VsNHVvXXWrNWZPDNQ6FzqCFJYtDZQ3e?= =?us-ascii?Q?K01Qyiw7qnNShrnE6kX9wyRqHxAk6uT1H58mD9LP2FWVFZ4QDpO+9cvHLOZC?= =?us-ascii?Q?mx1MB4vrJ9vjRoUuEKFE+StdzmdYGihRVtWlcnGTj5CZe55V1uSlnYAnqjcH?= =?us-ascii?Q?CIMMTpq9QXZttaZQS/DvfgDV0qNN+ouBAcsG+T0j1/zWu3mRfZ8+OT5WZ1Oa?= =?us-ascii?Q?FV88BVboSV01ZjjY/FJbhaaqTsbzbv/UZTWlzGiS7cpDoBB7tYlZQoQ0tBf5?= =?us-ascii?Q?IqPV7nN9c/t7ogejLA5ElMWTqb8pDHxSbKpsE9RmdcIbMnKw96DLERh8SH2G?= =?us-ascii?Q?xiZEgYHT5DjrgeaxzNdRFslTWraieE6cxoZFHKFsu88aeCxz+dJIHB3LdNuL?= =?us-ascii?Q?H74tdXqeKd2GYEgWDV8wZ8ysPZSwDbbDs+NrljILAantYbWnITHiFrStkiii?= =?us-ascii?Q?F/IPG++lyrhKh7Cmc5tWq8vYf/cF2VELDrtFXNaAeTdbiv7TsOE3IUfrpVOk?= =?us-ascii?Q?PFiKaGp8vlD4Z14jc2DlIH+t2QTph4Ap8+nSiLckIliHFjBpJE/LmvbE8jXN?= =?us-ascii?Q?AGeG3eG2tBcy4RLEUl59MIhJQfWlLkVOvI4lhPxGRodTVip/62JdC5y/qJq1?= =?us-ascii?Q?1V3QiDQRnyZetY+fLppop8Y3n4bttdb04/ECRqKLx+gyRHM1wPuoapdqO83u?= =?us-ascii?Q?LVRu8jK09+qQ9hiIwXSvsRiT1OfDP60tTfmYhmVdCmkzVDE7AQGcxejZAmQ/?= =?us-ascii?Q?PGHTqTpiqOsoVZ5+lVksrAjBGx2qra0i2Oq3MzMW77WyzfP7M/9mJtO1Pmc/?= =?us-ascii?Q?NRmWCiPKr4rvlNV176yWQphuA0OYysArjh4nDeuWuvSaA0RpVDpUsfJVio0R?= =?us-ascii?Q?ET+wUGcRetZWvO8RXEm8f7DaEHxQYvSzVp0KSmXpQvhUrgbwMqRXx7Bv1ULX?= =?us-ascii?Q?/V9FzuiPkY4kiyxrIg3E3KhGsjFimcMXusVMbbqp5JYsXsLbv2+FJSmOgZrw?= =?us-ascii?Q?Slnh7VFakTtxthaViq7efTFu7RLtb5SEMJQQpmlkUo1hRfgKS4FIIcTyzFGw?= =?us-ascii?Q?s6mE3yiNSmH76qiqQybyYIUoLCtm0cZnElWS6Q+Raxbc6tFuqgBexyEfKiLF?= =?us-ascii?Q?Y8XpBMHv4mT5SjnRW+QKSMA4mzed0dP0SZvvj3BjgpisJr06OWH9/xhSozts?= =?us-ascii?Q?38mqvEuLp8dwZVJ06KJbFCxxdzi1aPM2PYdRfui1lz4pxUcOrZKV5VY8sFNm?= =?us-ascii?Q?m0amloPcSyk31Z5ScpvzRwU3OMpWHx8PXeXtM5iHN/GB8o/xioCKdaAoE5Of?= =?us-ascii?Q?Dkg=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0502MB3053; 6:r1fsTEXnPP+rHgN0Fbq0Nf4DyTakW3cYFOjLZ/rw?= =?us-ascii?Q?gFQG01/vu9V4sn1+c8qyYJLV3zsJZ1LPksPXd197qheIjvrWbZ17L3dyuxK3?= =?us-ascii?Q?PcjzktvSBBs1unpyYwZCIqKXWZeWLM3ndS7jkGYAc5eB2gi3A07S1EFGzsOt?= =?us-ascii?Q?wN/oqyMrQ3qI7y9Ruh+JSz5qQMaQ8r5tAPqobIgGGbbIF3NNJWdOC0195xI7?= =?us-ascii?Q?ivYmtHpy1JM58NmQ6fe7PhKa+B2Hs1RIzAcYNKaOrcA2BSGLqUFPUEuAR40u?= =?us-ascii?Q?0mqsGI3JXO7T4SCZlk4D1BLFk2vSExVXQjpdJFJTkcaMrS4YnKNoGoJQSKrW?= =?us-ascii?Q?1q77lm3KckXKRoHEYDUgmZvEtKAH8pk4aINjkdpqN0i5/AoWLLIIdmhLmdVc?= =?us-ascii?Q?ZnNWO6SaAVX0mje8/SmTZZSKExBwwh55UYxtSYed1DTIKG1tn4ktNiQAvYYB?= =?us-ascii?Q?oa1Bxi9M0Wp+FA7tlErPey41++4Dz3OY909R6PIhaFSqHsxPdD7drKgWWy3Q?= =?us-ascii?Q?wIJlUPGztstnK7MUZ190jb0oIdGfsdydu4dRo/lQKAJzJT4ps/QUHM/I8Wef?= =?us-ascii?Q?dofHRKFIlVBThIdkGEUNObgCJATXNN4CbYhHgUSQwxs1iXj+jZB3rSX2rB7+?= =?us-ascii?Q?rRO5Ocii06d1sQjnBL3ITSrwwnkpCKB5Z2EsIlaRqew/rXVq+SACDr+F2Ti7?= =?us-ascii?Q?c36HTeMK4/jN2CP1gFosUskgLjoG0IdqyPxeXCaVDlIH7KYDO1fz8gQKAxkF?= =?us-ascii?Q?NhBdE4bNckDuZsVIt7NAHeTW6x+iTrGINq6DQW+oiM4yeBgpHXL378959RBk?= =?us-ascii?Q?40WMKymabnzyYcK7Ng6RKWbCHuH4LbSz+LcsP1Wqsmw5IaX6J8k8BrfgO/s9?= =?us-ascii?Q?VxUcim7dRGHaMywES7Q1LP6KciPMqQ8U+3EY+ww9hnu8SCVnqZHrqZkHjFtQ?= =?us-ascii?Q?tIC3dkG9s1sZfg56qOxiDjEg7EXMiwSIVSYG9PsKhjOpiCAAt27skzukAPC7?= =?us-ascii?Q?+gJDlgSwxP23Lqs82Pr144c4?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0502MB3053; 5:ndsecWN2HAaItFEr1qBrhqu6jyLvlb93BQF6grBewr6YY1f03bvlSIEctPL0Nw3H+5n6CgR5eJL4u3ODz54cAJwHAx10YJ9INSBvQ90bIVCWh4sjMdMwNdEi9mTFyG5WQHfejBrpH7CMMOQakqHKYEYj1R+apDNSf3LCJVWjSCY/M4dpON0WDBBJvI2VVfa7Nf6y+qnOyWlI7RQOwGrjnqzTtjCnG/Ftxgh+t7k0NNfbgZPejaHE5g/dUepAGM3XmhIde4p0rDoy33LLkyAvMo4t+ZVnIxoXMxgkJ9mEFUYKp0q7dSPshD0QUaOaD2AR9aTTz3a+f9S/bolETaiRwzpOQMCx0fJhfsQFesZGdMtjom3V1X7qu55MLWYBmo4aVLnsMlP8SHHWYXSgIYPqESJ8Jchqa3W/HXpjrfXC/du9PeqR1Y48lZR84yJ3rrL4rxH80yfmkFjj+w53np0hVuRFMIkGHqBtKAysBdLd33jth9bBGDx3oWqA5yyTPn5x; 24:ZtXdbrWcKX85CvOBo4iJEW9VUfQVNnR0fXYyiW0HQEPbQSM+U2/hUAbwqPa3n0qlCnIdrQW7BTTWxCR8z9joRFSqEiJMSHp52W2alY/CD7M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0502MB3053; 7:Nz2jhs/KKpxGAUvoVVi4BNrFcfhC307kWVxw/Lm0HQ4b2JE2wB6YcMQQKIk3zWACzfeIDiRHjSBCsgkZkyNfHWh3fXUz0dVB0ueTOuq2rDCDcZcxqFERxPJ7r2Cp0qN7gP4quL8DpAK+J9nyfJIQYPKXBLI7HN5Lz/dZkdDQluUwmDgItgUHbfW7uzYUwGC6oyWmANjl6h4+OtBjLB6vIkZWYiNREWPCE6GRD7W02GgMJKxXsLduFx+7AoTTYqYo1dkbphuXR8Y+ABLwimWmnbfkivClb00jnehfB+fK/ozrFuA6Phhs32w19GvrKYQY5v94BgkD42jyPppq1gcEOxND45K3YMr7wv0jNUUOI1AWppDN5HsiWbzDQmnrzmmtYc+4DOC0S18DBTjcW2jv42W9ow2k2yafYHkmJilcxpHOX/BrtwY7J07r44NsCcXjWBKhbr/6dcnRpqON2XTGQa6boNIEpz+UbIwf0Jmxw2YvL84rtuejav1L5gPSV1cR7DxfXd3FSDvYz0UR22OgCHYjlTAHDN8FGFkjSNo0VvWz2q/hnkQ7Hach+IJ1wqU43ixxwjWUqC4OYKjOZaXoLCYSPn4i+/V85rN7D6h1qdsu0+OTRdSbRfdGjjV088Ju3q7Yb09YK7Lmcy6hMjthoMghOkaFWuoJ97QJoflU870lzcuhYXmauCG7hZs8HG9kq8TSWPImeQleuqNGEbyhdV09gaBZV7Bi4CV6VNN8Q2xhm/SNNbM6a/321efmCEiTkjQAT7V5OYQBKsY88WeOqBBn4o04enMTmUMlfBy6i18= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2017 11:15:47.2003 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0502MB3053 Subject: [dpdk-dev] [PATCH] net/mlx4: workaround to verbs wrong error return 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, 31 Jul 2017 11:15:50 -0000 Current mlx4 OFED version has bug which returns error to ibv destroy functions when the device was plugged out, in spite of the resources were destroyed correctly. Hence, failsafe PMD was aborted, only in debug mode, when it tries to remove the device in plug-out process. The workaround removed the ibv destroy assertions. DPDK 18.02 release should work with OFED-4.2 which will include the verbs fix to this bug, then, this patch will be removed. Signed-off-by: Matan Azrad Cc: stable@dpdk.org --- drivers/net/mlx4/mlx4.c | 70 +++++++++++++++++++++++++++++++++++--------- drivers/net/mlx4/mlx4_flow.c | 22 ++++++++++---- 2 files changed, 73 insertions(+), 19 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 8451f5b..94782c2 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -955,7 +955,10 @@ struct rxq * return 0; error: if (mr_linear != NULL) - claim_zero(ibv_dereg_mr(mr_linear)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dereg_mr(mr_linear); rte_free(elts_linear); rte_free(elts); @@ -992,7 +995,10 @@ struct rxq * txq->elts_linear = NULL; txq->mr_linear = NULL; if (mr_linear != NULL) - claim_zero(ibv_dereg_mr(mr_linear)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dereg_mr(mr_linear); rte_free(elts_linear); if (elts == NULL) @@ -1052,9 +1058,15 @@ struct rxq * ¶ms)); } if (txq->qp != NULL) - claim_zero(ibv_destroy_qp(txq->qp)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_qp(txq->qp); if (txq->cq != NULL) - claim_zero(ibv_destroy_cq(txq->cq)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_cq(txq->cq); if (txq->rd != NULL) { struct ibv_exp_destroy_res_domain_attr attr = { .comp_mask = 0, @@ -1070,7 +1082,10 @@ struct rxq * if (txq->mp2mr[i].mp == NULL) break; assert(txq->mp2mr[i].mr != NULL); - claim_zero(ibv_dereg_mr(txq->mp2mr[i].mr)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dereg_mr(txq->mp2mr[i].mr); } memset(txq, 0, sizeof(*txq)); } @@ -1302,7 +1317,10 @@ static struct ibv_mr *mlx4_mp2mr(struct ibv_pd *, struct rte_mempool *) DEBUG("%p: MR <-> MP table full, dropping oldest entry.", (void *)txq); --i; - claim_zero(ibv_dereg_mr(txq->mp2mr[0].mr)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dereg_mr(txq->mp2mr[0].mr); memmove(&txq->mp2mr[0], &txq->mp2mr[1], (sizeof(txq->mp2mr) - sizeof(txq->mp2mr[0]))); } @@ -2355,7 +2373,10 @@ struct txq_mp2mr_mbuf_check_data { (void *)rxq, (*mac)[0], (*mac)[1], (*mac)[2], (*mac)[3], (*mac)[4], (*mac)[5], mac_index, priv->vlan_filter[vlan_index].id); - claim_zero(ibv_destroy_flow(rxq->mac_flow[mac_index][vlan_index])); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_flow(rxq->mac_flow[mac_index][vlan_index]); rxq->mac_flow[mac_index][vlan_index] = NULL; } @@ -2736,7 +2757,10 @@ struct txq_mp2mr_mbuf_check_data { DEBUG("%p: disabling allmulticast mode", (void *)rxq); if (rxq->allmulti_flow == NULL) return; - claim_zero(ibv_destroy_flow(rxq->allmulti_flow)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_flow(rxq->allmulti_flow); rxq->allmulti_flow = NULL; DEBUG("%p: allmulticast mode disabled", (void *)rxq); } @@ -2796,7 +2820,10 @@ struct txq_mp2mr_mbuf_check_data { DEBUG("%p: disabling promiscuous mode", (void *)rxq); if (rxq->promisc_flow == NULL) return; - claim_zero(ibv_destroy_flow(rxq->promisc_flow)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_flow(rxq->promisc_flow); rxq->promisc_flow = NULL; DEBUG("%p: promiscuous mode disabled", (void *)rxq); } @@ -2847,9 +2874,15 @@ struct txq_mp2mr_mbuf_check_data { rxq_mac_addrs_del(rxq); } if (rxq->qp != NULL) - claim_zero(ibv_destroy_qp(rxq->qp)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_qp(rxq->qp); if (rxq->cq != NULL) - claim_zero(ibv_destroy_cq(rxq->cq)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_cq(rxq->cq); if (rxq->channel != NULL) claim_zero(ibv_destroy_comp_channel(rxq->channel)); if (rxq->rd != NULL) { @@ -2864,7 +2897,10 @@ struct txq_mp2mr_mbuf_check_data { &attr)); } if (rxq->mr != NULL) - claim_zero(ibv_dereg_mr(rxq->mr)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dereg_mr(rxq->mr); memset(rxq, 0, sizeof(*rxq)); } @@ -4374,7 +4410,10 @@ struct txq_mp2mr_mbuf_check_data { priv_parent_list_cleanup(priv); if (priv->pd != NULL) { assert(priv->ctx != NULL); - claim_zero(ibv_dealloc_pd(priv->pd)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dealloc_pd(priv->pd); claim_zero(ibv_close_device(priv->ctx)); } else assert(priv->ctx == NULL); @@ -6389,7 +6428,10 @@ struct txq_mp2mr_mbuf_check_data { port_error: rte_free(priv); if (pd) - claim_zero(ibv_dealloc_pd(pd)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_dealloc_pd(pd); if (ctx) claim_zero(ibv_close_device(ctx)); if (eth_dev) diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index 925c89c..daa62e3 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -799,8 +799,11 @@ struct rte_flow_drop { struct rte_flow_drop *fdq = priv->flow_drop_queue; priv->flow_drop_queue = NULL; - claim_zero(ibv_destroy_qp(fdq->qp)); - claim_zero(ibv_destroy_cq(fdq->cq)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_qp(fdq->qp); + ibv_destroy_cq(fdq->cq); rte_free(fdq); } } @@ -860,7 +863,10 @@ struct rte_flow_drop { priv->flow_drop_queue = fdq; return 0; err_create_qp: - claim_zero(ibv_destroy_cq(cq)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_cq(cq); err_create_cq: rte_free(fdq); err: @@ -1200,7 +1206,10 @@ struct rte_flow * (void)priv; LIST_REMOVE(flow, next); if (flow->ibv_flow) - claim_zero(ibv_destroy_flow(flow->ibv_flow)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_flow(flow->ibv_flow); rte_free(flow->ibv_attr); DEBUG("Flow destroyed %p", (void *)flow); rte_free(flow); @@ -1278,7 +1287,10 @@ struct rte_flow * for (flow = LIST_FIRST(&priv->flows); flow; flow = LIST_NEXT(flow, next)) { - claim_zero(ibv_destroy_flow(flow->ibv_flow)); + /* Current verbs does not allow to check real + * errors when the device was plugged out. + */ + ibv_destroy_flow(flow->ibv_flow); flow->ibv_flow = NULL; DEBUG("Flow %p removed", (void *)flow); } -- 1.8.3.1