From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00045.outbound.protection.outlook.com [40.107.0.45]) by dpdk.org (Postfix) with ESMTP id B091B2C5E for ; Thu, 3 Aug 2017 23:13:04 +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=fFw1D26+VkVfbba4SdieXNBpOfFegIKNTcyrA/VooFE=; b=BtQpZ7HxrhBghhpnuftJ5k5s5aiyFiWrdkf8jLdBKdrTlgL+qi9HngAKlBGjCit/vS22DeooWy+I4wsQlwGQ/AolRmZyJFPgd/2+ayLEvMwsiYpZynId2TDtdmVCsU2RpY3eZHWz+AOSiZq90zhSB7KTsjvLlvOVvqZ65XpULSw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by HE1PR0501MB2041.eurprd05.prod.outlook.com (2603:10a6:3:35::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Thu, 3 Aug 2017 21:13:00 +0000 From: Yongseok Koh To: adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Cc: dev@dpdk.org, Yongseok Koh Date: Thu, 3 Aug 2017 14:12:40 -0700 Message-Id: <20170803211240.42742-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: MWHPR2201CA0010.namprd22.prod.outlook.com (2603:10b6:301:28::23) To HE1PR0501MB2041.eurprd05.prod.outlook.com (2603:10a6:3:35::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8551c5a0-a346-4fc3-8ab1-08d4dab46c8c 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:HE1PR0501MB2041; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 3:C8/RTwDaoAMgZDHI+Ami0YoXTT1O2Krf34ozxkkwgYOvKeprGLIjWDnQzXXgG63aln5AeZ7j4Z+I/cLjhKQOHtxdZhoF37OcpDutEcn3S1q7rCSMkyEEgJjF8q/KWmRlQpzAes+G2+8mrhG3V/NbD+5+wuTcYfl3O209QNm4Rfn51J7riky2xm17MxGX35Csr5oN+LA4ljo8wlRF4x1m5vEQ6hycXLM5C2GtuoSBinlQMgvpNHLWx6d24xfeY8NuRnSyVfddQBYzxYfcq2KQTSNoTCMsFqCNfj/X762MJwpUTJS439W+7bQ7Cka4d+jPJEPKVGLtRWULXaw7kt3xQlRypGplUxnJIziaJmIEfggmtqMJ0EnX1FEPmPx8v1Lxd0/6Wy8fhj02mpuLbf1hxl1vPab1+FU/PSn95/QqqJbqRgj7WVnuErrdN98urjI8CtkFkNWWTfK4g0djFBhXfdwf8Rm9zKnGAK5mozIwrpirvD5W2Gj1qrRy04lixvJIc+a9CFx2PQfpAghDJiOkIgQWMAjk3dtONKrt9UwPGUsn8AccmRXgZR0xkRTjqYqcujcUcOT9jbyWBcDr1Xk3MCvKSk0nAM2QjTF/Xm+/Fdarfak+tLn1SkfRNHwK/uCY0PJh0hDi2habRMF95etvm59eAu+s8dg9Xk/gk1dOHuOklLVZPgkfHEom5ZQxpA9/QwGm757r+uTiq/odvU15MtzkfQnnQMb9hcxVrgZ78Q4ghTeiOQ4odq4f3ZyBDoojaWCXZPohvPdxd3bXWut6O4F012ueHMbkYJ5M/XMpcweSR1keC626q7XZnSQCh+g3ZXxN7hzfUYucgilZU4kD4w== X-MS-TrafficTypeDiagnostic: HE1PR0501MB2041: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 25:phO4ok4P0f1sMJBRLMKnr7qUOSL4hu5xT8j/MByImrGHjKbthYzbv+LXhLPq9K25CVAOJ/Sp0UhS2i0eUMyZai63PWTv48yfXKSJTZ3tdq+EoEBMbDKx/YxX7OVO67TcmEWlAYGk8V9BeJFqwv0mWIQc4MvYBEvZtIpaLRYUYiPh0TIhediul4T6raT8sIeEMmFydWb4/x94eh94M8oX0SGjWkyb7p8ZDRMWz+bhaNKulaUni/SrXpstSuiB8jzmP1cMt8oZ7OWpB8fgAIenEy6+g9byFCAzxYRbUtLvsmpEpupQPLRoqy3gkEF0KOL/hOnyt0poZz20FKh6YD9HU6GyGa2v0Bw4gHLW3Zq/ffOmBx0N2lpo2D9csqVZggmI1QHsB4jWvleQ+rJR7b/YsHU5qf2C0Fzdv5R9/njMUJy3yv1XlhYZp9jo4BAioGwyfKce4hr9GhNhxDkqHMCXV41SzlzIiDBgUUg8pgZK7Su1/y47zo5OyaMnb7wP3bo+WYHimLLJKiayps1yKAvDCDt30nVPGpkO/VrFRO95wylxLM3tbGumh7Jj83tbK8d0kJV1L/LPYmzaW/Lz6MRwlla89Q5ZGPjsrc79PGxJY7DG/WZMgrq8EXFQfd3yR8rY7tLyOBfuNqHo9Gf0Dyrzz5oLpTqn+FCfVG5+GGsrs2y+EqHvoEuYVBALynGvQ7abQ8y/LZVpiIlDq2J8WKhvmvm5ID+EozszhjhO+X1Is8+cN8x9bHaVeuTGtioXgzsBIhykJ4Q0lTit/KsSb8/eN3Zq0+o+XC3EMaWtJJb3mslZTFCkd2e3AdhweStSEPwxqiSK9L8VmxSjzKfpPnWAzl0IVSnwYcGSuzNuDF/nViUIo43/IJhKkitvGFV8U0+NTdV7VVbsMd9ndlVggVijq/hD3sF1eDzZtQ0YVNnnh5o= X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 31:4aVnqkAzQU8MEqA+090179WciOOzSZ3168eIePPKUKPwfi2AScFGY6HRGEWlh4BnHkM0CANQ/1y5LfzH2Ce3dOVatN4E7EjxocRlyYT3gr3EhgU5ffLf+XUxKOH7ke22ANP/jMJic2SLANb0l4oz6H3pU+ADY2eIwSm7QhekDP65KNKzvrUITNuYDA9F/dLD2YC4c84HqHyjWu1N/5ucUwaxTu3a6yDN+Z7+tqReBCtTo4Vk5gxVZ2zhMwfyFo0T9HOVdwphoSIX967Kr68tDDYZpZPc3Y+Xxvkr19Hr7Ulr5BrstwE7NvM5HC47Omr+cCWYrpL2Uge1KGg6VZRMVw+NWGMvnHzZXk2KLkddr+dALDEsk1zLTA9NknF4q77tXgroQI996dIRuYS9t6DVS80yqwTrQzF+LGHwVRZjC8N8nzxCjZ49dVwHs/VSPWE2iSFyBWkQHh/ogdNhUlnL/ZUFxDqSL3ltskMJXunrsi2K20M9qkrWfUfB4C/nztdzmTnTuB4xpLt6jjYr+twXNrEIs9OwZlyU4McIQEuHYdYIuJa4DW/27fe8XVwStEEaJXETSOQlX33yJqPt6kv5IB6qLQK+lgAzNUwIEdjQoNOWrO+LgZyDQ7dbAQz6KBMKzv+pQPVUwJ0fP5Uc7Pu7TASeEVTGym/yQmNXEzCNs6zPSA5gzmH2NYqrHPAzu51+1Z4ZbNyZidegJ2r8pWYkWQ== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 20:51E5PgPGm+6zKyDHl50Dwf3RFyHPUANnt5LFDB6NB6EBbsp3f3cOxvuEm12WbrtenrGH8w8S+jXpyRur2L/aRHjz5iXnoG8ef4cFN2DXpHa3H9V1evfTSCnEAdTQ6xQVheRur7J+1UGz7YNEfNK7akjs67z9sOBdWPIzft59+3Z4h/SJIAQOtFZL2ImAXK9dYVoj+BlXYStxbxPa5YUddahSbUvNOSApUyH7Tyl7Vnwk/YNw04A76cO6zJGNRzlUg/34Wwfd5ms7KXNYSLOE+2YwigNiD2x4v1EV5wIMGUZCt6ps7BX1bpXZfeiDuqd9MZHDXgQay6fQbLvWCHZFtmtRYEDXqTid5RyyANzXEOecUTdVFo0wuzgFXq09URQLaUmKFOvyrchktZ1A6Y4Q2iS6aN+s8HTup+nVvtOEXDSQ32Qhu8czifKh4YToIW0hJH9o+cRaweEK6rnClNnE23RblYvQ4Ya15H3r8zBf/SSkBlZnCCQ6TQ6Xepwt+w6L X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR0501MB2041; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR0501MB2041; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2041; 4:FoERdqYAb6ZPmn/CfyAsdKpCOTXbgR7+f2MLlt5V?= =?us-ascii?Q?nnrOcMmj8oh69/BTIlD3YO1cbNGLgoLy0XLcbRNh74NMZ7jzJu7Z+IB5q9il?= =?us-ascii?Q?peXtUCbs4cW7zN3NmezBQGmgUoNzc2WYpGgAZYcAVmd+sNEyvph9MBsJ0dD/?= =?us-ascii?Q?zY4k0NDYC/GpZC6SkGEKI0mYExoT6bvkG4xgigpfcRFhKFkRlejM0gsmAtKF?= =?us-ascii?Q?yk0uFL0mnuxQxkWZV22fTqsHmA6DSad6mxcjKfbSw83js6Y+R2649odblTbx?= =?us-ascii?Q?LDCih54o7vL95cx7/SWjgyHZb1Y8+PBqppFA4xhhsU1Ys/ek3fysLMsisQXM?= =?us-ascii?Q?HeSyYVv77Hby0tFjQFn1DoILeTOVJb06nolN0O9M8cUztXbZEuxb+L9nb0os?= =?us-ascii?Q?e3P21E0SOWScwOvuVVUI/p1H568N9DEj3IgUq4aygJk/sD54TYwkUmt+67VF?= =?us-ascii?Q?cqC8J/W/hbq5xoHMNsKMTLGJLthicO4vQDaH3yYsEzHzhX+r98HaE4KLZE9U?= =?us-ascii?Q?RV76L7SVX+y723FgHp0SvrdYkGUYb+7ixf2oMJ/b6FexRL3AQu0yLWtjM4iJ?= =?us-ascii?Q?1UfXMz4ppN2FGWAs80NKpdvltFF6Zg7OWp2qXyus4/VcfsvjnqRIwZNgtYvz?= =?us-ascii?Q?JDmy4CPIfbL/XUFnRSZIzKNrQeX80699sLDNjiBlDmlXKU3dGY7t3V6Nfvng?= =?us-ascii?Q?V6YTA7SF+A+zWOILyX/+bAuB+yzJ1wxxNBXY1L5CznIYIXROH5SLS/FRJu2Z?= =?us-ascii?Q?eD8h5+Bo9bVj3/cLZB/scYB1Z2mGf6d9om66E+Y/0zuv7dAt2RswqbvN95LH?= =?us-ascii?Q?vwBSD0Gq5Q4lFTRLzdtVBAvsaPTdOoXTg2+rJWcuHqFefTy+V98JzqbRFqdS?= =?us-ascii?Q?LaTcP9gEG0zAyMyF3ejfs/k/Yq8Js0sLYRuOMlvXfAmB9SIB1Kya0226maXY?= =?us-ascii?Q?6OLuj90l7BeW69Zlvp28TI4jp1asA3kRgFa9D0h1tji7S+b6PVLzxhCNJevi?= =?us-ascii?Q?y0Y6WJhlph6y8ADUl7UmsyNH1vuxR/vetRE5poKEZTRmNuxAitty09rvvD8z?= =?us-ascii?Q?Hz/NJUhhwR04sEuipELFEAFrjV3KUkOHUa4hVZQfeMnDhCP2SX8fqw2jFKni?= =?us-ascii?Q?IJ52Xb1TiYtMMzCT/nHSEz4t6E16deaG+mnTDCGcG+p4HU9FdJRo2QVhVGF0?= =?us-ascii?Q?P4wyfz4BRxP0hssO4RQn2XM8uql+b1T50Gkr?= X-Forefront-PRVS: 03883BD916 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39410400002)(39400400002)(39450400003)(39840400002)(39850400002)(39860400002)(189002)(199003)(50466002)(305945005)(97736004)(101416001)(47776003)(48376002)(81166006)(81156014)(42186005)(86362001)(105586002)(478600001)(50986999)(8676002)(50226002)(4326008)(6666003)(189998001)(110136004)(53936002)(107886003)(38730400002)(7736002)(55016002)(25786009)(66066001)(7350300001)(69596002)(36756003)(1076002)(5660300001)(21086003)(3846002)(5003940100001)(6116002)(68736007)(106356001)(33646002)(2906002)(83323001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2041; 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; HE1PR0501MB2041; 23:sJqedIzhs8UUBg2+A5rKFQO7kan1hxi8fvKAnEA?= =?us-ascii?Q?CNhPjv/E3SqfHke75SFDGTnXZ89YK5RSOkDnw9ZiY38qc6gGo0U8wv74jBLM?= =?us-ascii?Q?mXRU0TFZw2Gls3vKIKq8Fb0i+F1AwIrWKWLyqTDtQ/nsYZYZhzOMQ/klZEjL?= =?us-ascii?Q?qTH5Dl7RYcMCavNvmZVPxqED4A3YApfIGBrCvJEirsSSE9QCjO+aLOmj0a9q?= =?us-ascii?Q?cigwFYhbzTr0R8gFCD8gwSBBqdGGlxIcOjseF2utG5mTO5r0r+N7ih1Io55y?= =?us-ascii?Q?6ZDj00sg+lybmKjaqJ65CTX0ic8IulxDeUt/wt1RRLbbCsrG+R2d15lewbCV?= =?us-ascii?Q?aepv8Vl4u3w6pkJPe3iJcSDZrvFJot23cYVhC2c4DXCSL4mNov+/TBUTAngT?= =?us-ascii?Q?4wbQcTzv9c/IH+W/QD053ugkLPsHN04WX1X8SsY1+J6kz844UQkYS/+7u5re?= =?us-ascii?Q?QKUyDfvzrz+qK2k8JLHJQKjH09lsBiAyu7NGeVi8xvdJqOdIvsGTwvHlI7Y5?= =?us-ascii?Q?o9yJhyxKUZmmpRLxVdp2K1e7eB3ic/0LjgYLadjARdcZQuWCmwUZNPt4deDg?= =?us-ascii?Q?fbH8QsV0OWtmnuvHP3P86x6vyCvB0HwHDmU9aD7zbjxiEN2IdZbka6FswumZ?= =?us-ascii?Q?PUpfVbhgNXYMvkBsBzNQ6KyQVjTdRX99H/7vAENfKSj/bGeDxAbMaNTREZ0V?= =?us-ascii?Q?sEWxIvxgTmiFd/LD8M6be4Cu42CpT5sOHZFtdlxW5IW4kfBrN9bSci1pnzC/?= =?us-ascii?Q?aAgc6MT3wuq4SL/AKbgL43Io27O6pC4AdtWtOfdBpw/2STfvZnximf7Iz5JJ?= =?us-ascii?Q?ycgRZuikOMZdg0WqAmi/KdDY8UHAamCcrHU+1yWBZFLqeVDfJD/AAwK55jIB?= =?us-ascii?Q?Hrxq4WviQdb5u+IU8AYZmm/Sjf22V0iGS2gUcaJIYG5sWqDXljG6oc6OezaX?= =?us-ascii?Q?BeROJLykOHLC8eTaPFavf5eDnkTiaQJxaVJ7Qs+UncJrsbgu4Dt9IuDg8Yr3?= =?us-ascii?Q?bAGi6zgXGUEA4kU+Elh+A1dxVWUljczckFB60ZwMpCt5HFuRF8wBVdpDHDq+?= =?us-ascii?Q?uCbhiiFhPdgrqB9k9n5iyrs+wk40swH0uj3djIt67idzcXLF9qAysBEpHsHP?= =?us-ascii?Q?5J8bwy1eEEZRWgBCI/8FaavP+ozZ7Hg7AEsRwCWbbjffunXnhvkZJFO+OsmX?= =?us-ascii?Q?1sTrDrJfVe3bcjYKSJizXEHlTm/2GDUz4pCHY3s0BCetdFdNiwXvAbrrYgu9?= =?us-ascii?Q?F3ryFxBLydSjRy8FSZNEkxMSK0QPNJl6mGU9WWg5w?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2041; 6:/QJQArq8TZDLkmTgM6mLi5F94qKC9fHMhKSRGp09?= =?us-ascii?Q?SkurnkZeTFrX7GBCVvscm8GDRcbP27jC2Zgw4xRlfYRZ7ebo51AXuDFa7VjZ?= =?us-ascii?Q?5VdIGMIkrAdWIm0GOz+4ymdlmMJrJlaSsz8fqrbr9tmbFw/ZsH6gikLw3Yx5?= =?us-ascii?Q?y4DqfDhb00Ysx3CRggXsfFTo3E+m6eEpIyDv3t5Fo/LF1Z/Mp9q4R7Z8wt6R?= =?us-ascii?Q?LIpeZfvZErhjOEm6Fv48K5HY03mo77qxpFGSIvdSz0GhtKBz9uOt9+DcGG6Z?= =?us-ascii?Q?3WfU2J694DpD0cnrr/e1KcZTNGpGEsYZBipUk4nAAIHxau4ossoSSDX7u3lb?= =?us-ascii?Q?TwzXzhHhcF+sIHSagJt9sabC7ywOOa6SvuW/NCYkE+7KfOLmgea9B9eKFwc9?= =?us-ascii?Q?NAGeo4qysMjpzqeSJEcWo9+CQr5ttYd0Al07lZWCtrRJx45Vhg9mIctqLXJK?= =?us-ascii?Q?2PcUPLnLHFKnGGMrhmF1yLPn8XRNWE7YG9S+7S8bqaAOroBjyTEB4tv98PVs?= =?us-ascii?Q?oHGIFt3/ZVXt+MQmInKCi+cMS+2y54TZVlzSsnND85F/p03DE60Tl1tPRxdN?= =?us-ascii?Q?8BdKbJDUT0jM/ofE8qRJB3o6FWbRVab4PZ5p2SlMF6d+Nn8b9uOtHidHF/44?= =?us-ascii?Q?FlVPKH5Ws58Kp35GOW5G+hUeW6hm8l6IZEBakrMOXw9v3dnEzP28AsbyiHxk?= =?us-ascii?Q?v+sCaQe1jN8MDbd1kY9lJFa0da+CRXxbIGfy8S/IqlR+dMMvxzEuGwVWGKVb?= =?us-ascii?Q?/esfI9Zs5YG/ay6V3Kqf+tInuH8qLixmlivDJvUrv2E3kxE60dbDCBdLk6GT?= =?us-ascii?Q?SxLxqOmkTNWpzvsQGzGt+G/TrMyip/LDSF9kOS0prIcJOkaSSQ8qrGFoopaV?= =?us-ascii?Q?CERf/ZsSq8avbtX1F3E6L9pmSOxrBp86sebOSG2nbeIHA+vJpK0xY44eEED5?= =?us-ascii?Q?RDJ1UPGsav7Ozv6QkxWyNwmomw87vYf9aNG7lwds4W5QFIj6aOQ5tkMVxqVl?= =?us-ascii?Q?ygLzhrs9sQsnOzW6zHa9jZxu?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 5:gVeXehQY5MHfX+6Y9WmyRiuyUGAJVx5xmDhB9CXGnVI06BRbBzpKG7fOK9Cs0+991N/ht7DbB18PfXAM1WG6KHF07zKW+udtEQmvz7r780ilYrrmLrJjObdod90o2ZWMSuURsPCoixSn2OTRYs3riWLND+JRd+apOZ2QszgfxRNn9Sksb/Ftlg3Fkr62Hv3CKg3qHNXlG22FX9r0gWK77Fssa1/dCrsLAFKIg0NhBCYlw8g7ls6WTVNoNW/a8SLyGkwhPS0HSsYG4hRUfAlorZRwen9qroqGYuA+OFDDpPqCDplejsMu7D6H5vq/bOeym8Ph8pba/h/z2vdtlHKyj+PwenCGkgZK/P71ZagOmCQ2KeAOeAIi+Wqd15vmQjdVyOBOYr29uDTPnGNnL0+6JFgVD96pwTWHuBJT+SLwEvhH+cr42jCvbV0rKW6QVJNpEzHCrZKNZ1JssmHD5UlabwxTP2b8tS4D/njv/Ao/qUGXOoeCp+BVu54Lzub3yPwC; 24:y6C0dI2FkbcbXftgY4ksx7+5r2JvMe02q+sRNlbg8Gtn6AfOcRHyHFDyEGWJfyX4GG2iA8kCqe91MkUhTAjSkIVExzhNR8IWLIeLL0YuUQk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 7:oj7rB2NEbU550TSoLGe7GL2Jt7M7DTnK7w5+BFjiAo34tr8ugyNJycSbpgsXY39uY+k+svtygjOjeUJ7CBY9f2qhMGSjitvhsUojL6kms0XTnJHDnD4692Xiqs/2JZR3xzs3m5kEIIKMWhSUXiE8At74SLWsmJYJj0Qj0KBn+FI5aHqQ6O0Nff4A9a1YPA/nthiZ7vKBIHb50PI0cpjjFSV7fyYIMgMHbZj4O7c3LSps3G3hCTHkV6dJFQCZUsp0bSML9mSXnq83+WghlL7vfV42pgf0gsIfs8gbjWRzXDkKX/ghCuRI4wxu0RL303h/iErPn1NcMRK66wFw6KUoJ5HgDScZewfxfEdCn6VJGgJb7aW76YqdZR7SJagx8ExKFMbt1SL/1NRFqVUlzc8q9s8B0C2lJevHSpZukX+cZyqkAh64tgmxljgTla/XkNpjXNB7zi7Y1GLpe0pqt1KKcYTSJAEbUA6pobLcO7306cmTdMIDWihHKLKBQBOvJMCskgbqgx+DwVwQnOGoVfBQ9S//9hVPU/wA3uOVvgrZtcTqJ0PkSZ05NaShOQW7fx3ZLTgT+Qaj1yDf9lx0PmwEiZJWjVS/K4s8Z+3+aAciD8S9w9JCq46QB8m/L7iApQ4aB8kgIIVp4cmG/wOsA4+xTLeci/oIitDf/sR78cDyj1D8WgPNTHp0zJyYTuZEpEHRAjxSiXHJc5Mqhr/CZnW5J6F6az4YvriM8OClZdsPCj+DmyIPJF0keyC2UXsNflEUBNuzjDp9iJepYJ3BsREUazXKbCTibYgPdNeYVITCHNs= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2017 21:13:00.3075 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2041 Subject: [dpdk-dev] [PATCH] net/mlx5: fix trimming SW ring for vectorized Rx 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, 03 Aug 2017 21:13:05 -0000 Unlike mlx5_rx_burst(), mlx5_rx_burst_vec() doesn't replace completed buffers one by one right after completion is processed but replenishes multiple buffers later with rte_mempool_get_bulk(). Therefore, there could be some buffer addresses left in the SW ring (rxq->elts[]) which have already been delivered to application. As PMD doesn't own such buffers, it must not be freed by PMD. "Trimming" is needed before cleanup. A problem can be seen when quitting testpmd when CONFIG_RTE_LIBRTE_MBUF_DEBUG=y and CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=y Trimming should be as simple as possible, it shouldn't touch any indexes and buffer allocation isn't necessary. Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86") Signed-off-by: Yongseok Koh Acked-by: Nelio Laranjeiro --- This patch should be applied on top of: net/mlx5: fix MTU update , which has been sent by Nelio. drivers/net/mlx5/mlx5_rxq.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index a82c415cd..74387a797 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -642,11 +642,8 @@ priv_rehash_flows(struct priv *priv) * * @param rxq * Pointer to RX queue structure. - * - * @return - * 0 on success, errno value on failure. */ -static int +static void rxq_trim_elts(struct rxq *rxq) { const uint16_t q_n = (1 << rxq->elts_n); @@ -655,17 +652,11 @@ rxq_trim_elts(struct rxq *rxq) uint16_t i; if (!rxq->trim_elts) - return 0; - for (i = 0; i < used; ++i) { - struct rte_mbuf *buf; - buf = rte_pktmbuf_alloc(rxq->mp); - if (!buf) - return ENOMEM; - (*rxq->elts)[(rxq->rq_ci + i) & q_mask] = buf; - } - rxq->rq_pi = rxq->rq_ci; + return; + for (i = 0; i < used; ++i) + (*rxq->elts)[(rxq->rq_ci + i) & q_mask] = NULL; rxq->trim_elts = 0; - return 0; + return; } /** @@ -696,15 +687,13 @@ rxq_alloc_elts(struct rxq_ctrl *rxq_ctrl, unsigned int elts_n, volatile struct mlx5_wqe_data_seg *scat = &(*rxq_ctrl->rxq.wqes)[i]; - if (pool != NULL) { - buf = (*pool)[i]; - assert(buf != NULL); + buf = (pool != NULL) ? (*pool)[i] : NULL; + if (buf != NULL) { rte_pktmbuf_reset(buf); rte_pktmbuf_refcnt_update(buf, 1); } else buf = rte_pktmbuf_alloc(rxq_ctrl->rxq.mp); if (buf == NULL) { - assert(pool == NULL); ERROR("%p: empty mbuf pool", (void *)rxq_ctrl); ret = ENOMEM; goto error; @@ -759,6 +748,7 @@ rxq_free_elts(struct rxq_ctrl *rxq_ctrl) { unsigned int i; + rxq_trim_elts(&rxq_ctrl->rxq); DEBUG("%p: freeing WRs", (void *)rxq_ctrl); if (rxq_ctrl->rxq.elts == NULL) return; @@ -1078,9 +1068,8 @@ rxq_ctrl_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl, if (rxq_ctrl->rxq.elts_n) { assert(1 << rxq_ctrl->rxq.elts_n == desc); assert(rxq_ctrl->rxq.elts != tmpl.rxq.elts); - ret = rxq_trim_elts(&rxq_ctrl->rxq); - if (!ret) - ret = rxq_alloc_elts(&tmpl, desc, rxq_ctrl->rxq.elts); + rxq_trim_elts(&rxq_ctrl->rxq); + ret = rxq_alloc_elts(&tmpl, desc, rxq_ctrl->rxq.elts); } else ret = rxq_alloc_elts(&tmpl, desc, NULL); if (ret) { -- 2.11.0