From patchwork Thu Jul 20 13:47:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 27082 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 592385699; Thu, 20 Jul 2017 15:49:03 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0086.outbound.protection.outlook.com [104.47.36.86]) by dpdk.org (Postfix) with ESMTP id DB8532C50 for ; Thu, 20 Jul 2017 15:48:58 +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=F10cS70z6cYQGeuJ0VFK6DVJ1xTgDafVFIjUrOeUuJo=; b=GGStG1UZm91MEcYjvmXnbsYiKZNq/GZWBkHhkoCVflYk0qt2S2FhcbKFyff0WjL2XFM//zXtUR7hjimXDZ0YNGXoeTrQVnRv2xm0moL97R0Nfs45KnwJxXDIcBkZmMzz0SSXS/sYK2/uHh7lqpuOs4LaFFK9+tMqC4KHfwIJoOo= 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 (14.140.2.178) by CY4PR07MB3095.namprd07.prod.outlook.com (10.172.115.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Thu, 20 Jul 2017 13:48:53 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org, olivier.matz@6wind.com Cc: jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, Santosh Shukla , Wenfeng Liu , Lazaros Koromilas Date: Thu, 20 Jul 2017 19:17:54 +0530 Message-Id: <20170720134759.4680-2-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170720134759.4680-1-santosh.shukla@caviumnetworks.com> References: <20170713093255.13986-1-santosh.shukla@caviumnetworks.com> <20170720134759.4680-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: MA1PR01CA0115.INDPRD01.PROD.OUTLOOK.COM (10.174.56.159) To CY4PR07MB3095.namprd07.prod.outlook.com (10.172.115.9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8fabff7e-e08b-41f7-d976-08d4cf761167 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:CY4PR07MB3095; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 3:oI91+AnudIUIYadCsudjCHtTmhcy4XEJbis44cNcXY8lbLaq1d6Qd3s4h3mD43LU/ysSoYlztGIlhoxwNvfDm5u/HD1Z6GbRvAtmhJHVwJt3gsEi9ix7bvaVvSMfZex1gcLt+H4El8k2BEp+FzOFspSq33Pr5MAn1XlXGgoKVZdZd/c+2KpsEqv4z2F423dF9470prKpV3o+PmpdxZZYESzyBtOyjOlHsH+KshLS5XNKV0JfCq9saiNV1sCSS4BhVet7o1pmceFP9HrrHGMUE7FKFINjetd1OauR1Mwdf/SKKZ4BcYpY8R9zvKfAYnB7Jqlq/K5TrsIipathI6PhcPZ9V50kKK/O/TGp8Xs2xUnr05zgVE+4qFzDWaI6UtAcekBniCHW2ldLsHk0bsW6k6V5EXZJxT9D3/4iXR7E1QMh7Xix9RdYTNCCfiW+qsw3JUEY2tIYk/Z1JJUYqg8SnGAQkPE13RnlZkonNAAz7GEz11kP4qqxk/1Dpy9bZqT5KOaMepMhEDZqRpPJLXKj9Y3vub5aV3BuoixeTcV5PJhI77tac63Yoj5a7JlsKLptt12iOWm13xwcxyBvb4tJJ9MuWcz+Y48oXaRL0CF6RDHO1lg+xs2d+Lp9rloVjYsrVmhZFL+6fuhxzCmuOcmte6xt4Wc4x95prK2WkFTWK6WkR90Tf736c/XYl3r1cVdJm0FaN3ldtlMhUSt54mpzlBIdMDcLTdR7Rt9NKtyJm1g= X-MS-TrafficTypeDiagnostic: CY4PR07MB3095: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 25:aZYRPTwxoQwUwG7oAVUtT6PG+TN9FD9OehQT6lL8sTNJZlK56r1Pic8cyPmRxbJ0a9feak0APBE28XcqxsI4vIJ6bGqw0IrIuaZAFOgRFaK6r3/3K78vYnilXmqad2dHrggygs5D4LcGguNhbq0plgmOmigD5iPmhCja5GZTWNWEZeQX08HUaz29oFukfzByKWa3/Y5dEy1Ocm/L7IGz9oEYXgUvVs5FiJhDlb7XeT0/jzRKC7pZ/jGix0YeW0+Lh2CyE4kndlvEuakkIIwJyySPHFGbRQd0HZXgvjG0z2waXG9fegGCouw0AzjlaQx36I5G/1JJNwMZ9SqyelxmDkBPOFivr045caJ62zhuQIvR0ye2TBhOgYE1vvpq86aLhSuI9OO1FMucvHIfgZS1MNmNtrSeK8aOVfUX0DOEHdSKFthJ3gw6GdjjlsGFLUN32eUzgX9xjw86jxvGfhvSagCZzjOm9SoWGRzKCclOgMJdodmqfp3JXr3ZXcX8Bs9GM5Zk7o6s+SopOU4kBnjvKh0hYYUAzxOX/oGeJ2PTmOnCAD/kUn5H1/HUdm/tEJWkTxliWOuJaiF2KmLox+sQ1D+OkDUwHmNxk63+qbipA4SCRnL1080FFHdRbmgSlggDM+kd0TUfrTDaStMs1lFk/Z1hQMsX4Kz4pJBIzCBHpYtLYcSoaT9pU2ZDIPsEg8ptt8t/IdntbNeugds8OVdQ7nu1+fCSLqqH+9pUowQAhk38MR2sUtX5nTNyPY0bRVcsWaNlx/vBLTSsAK3cGoGvnjnma0zgMYrkhRTha/tRR6zmJQBCZUonvRxo590rNd292dcgdjohDXXedepnUg6u4cpFMj4kxVG3W6Ez5NJcyAyP3g4xC05YBCHI+ZVCUm4WqFlbbtJHuP1qfJmPuLt7B9R/OY5F211hz3rFO0MFcg4= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 31:f6DO+0+uClyNuyADHzlB3Fjf7MwtWv0ZWfUc+YdxoH8qGUUI4xsit7KRXcCfdOGzunT67xrCxhGONxfIYTPmWcnbk8OvgH4VvrhwSQFeLBpalm291l94ducFDnpM6z+Ieq9QwDU5Czjt+2fmPvRqaAs0Dk8rrwZAgJ41E9vPGTl+SezVXbzfiSYJhpHzn5TRIgM80F9vjJstVZbkr25k7quk6NPfio1iCx5C6ob4xFm8675/5OENBW9PsVa9RKuSpbsWo01Eubd482Efo/t/dTrzHDHvfIocI41TGPe0l2+j0rG/KTw+G2oAWvDVghLV1onZS5YR4e9hviaqDczLmATmQWL14vwZwGC2cg61xh0PF04MyAeg6X9HN6+E3INwtML/ph8K3fEGBN02LQFqk0FsQyW8FIXWOn3CH3GaTAsRLhrcRLyDxciddRMvJxdNQkWIJBs5fFLqPB/xi3qu7FpXEp5jcdH3gxMODxhEFqcMPXJyLwpokALswAc0WPNQLj4zZp9E+mBvZ5bEjcDlK75prSdy3Ui/fEN/bufuHkz5+4IzK98DKXAp0Nm1H4hugAPRA6B5nMIVYJPy3yQv0hwvkZODQNrnyhcsMekOIkRNLqdFakaryWm98YtT+6SH6kdnKfaDAhR2lZRSQpUH7mlp146b4b821tOi/j23DCs= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 20:+B9cQNLNlFpZ8zCKWtXDBxOPo4ABnjX2LZGtGUZoepLLhnx/I4I80KnvywkjuBjqhMHQb6+YeF2wtmustflMpi/AnzrTRfqxKpJd6t6imUu0AP2t5utJ/L2QLWlpcAuTHyI/ft2Tx6WoI3TWjUqRkD7y6TLq5Ix2RMiclCSEpyTZ5wK3nWWQEbRczBNoglc8b6Ip57ccKpQFhyS7iKnInI67iHLsq900vwPEwQhaMH454KFteB0MuCeXfgXygR0wFujSl4En6zoZSqFOZ5Y0ET9cZSBQ+qXx8TVvGDAVA/EoyLXvCKSzFbIv/YqI0RJmK4dW870zZ/E6KywWHqlZ/Eycr/GBjBeVI3Dr5NEH3CIRxV2ct7QUZQmte7KIn27VPXYfjeCGlKgJjbXueh+wC1aJbQBd6bFMl9OKecqdKkppVyXB60+5xIu32Y9P1/AtlowJ3rI5BdgKWNolK5Ejhe6r2uhYmwBTUqP6kNNlf0SSOzJkj9E7xN8na0ktWKybTi6+9e7xDFSUiA6PeQCS//JcXmKC0ZAqvebmEsy3jziOyO6Xe7oTDY7GBosvPZnYW3/3cTsZAIu8iKKFu3SBqSFO/aXRnlpg06haLEXHhv8= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228); 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)(2017060910075)(93006095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123560025)(20161123558100)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3095; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3095; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3095; 4:ohV0Q2m/sPUUuXL9vN7oNcw1gxaZBFE60dMmVvP0bq?= 2z1qfRY8Ve4Lak0zAXnCRqa4ej8nKouxrVBeuDi9cszPKN0Iv7MQVd8Sd+VqnV/Z9c4AgOA4adS2EpvTQ0qdS/Iz+nzTGN81sWdY0AvRnpv+dLetwVPq4HB4+LkYZ2vatyDO2k/oe5Mx12gkMdNjdWMB1Lb/bd2XR/WrxJT9Xb56b/ZMjM7J4G/MYrKik1sQ28O4UA9NIb5NBNv+ccfPjsd0QUmFeT5Fnl8Ke9ik6aONgYB/0KRl+K5B0tIOFf18coJzP3i+81U7Tyb48NVDIzrL9T1D0D500AYr00I4XiSZFUHdU0aujVdTwukZPARkiZzC5fSqeBsMXctcy9pkFX78kw/6/5aOJitamr6QWBXQz428PRoCWX80wVPLffSOUcdS1gTNPnmOatCCJS7ropStph+4iE5iifhaIn5HbWJIFuF4VkGcdbc7+gsSfW3u7PtK2rS0tsCUwuTtOl4MUyJ6oyCVsNMRjzQ7HdBy4+shhOhAGxySsihtJ7EP3r1McDyf0QDnlGuNce6Zlc+pG/FjE1LXB9VTHs43KUIDKbvz+A8d/Y+U73JTQlqVKh7y3o1H/duUMYK0fGmTsrNcPREl3wQdr0tG0OPtmVZSgUdl4blkEt4SF2vDRbkyd/P0FoMoSKap9eXp6sbrHeCc2T03vFGkBOf7vZE7Be9q3Rh//Gol1WYuTJfJB1RH0nGvxFqgztrTpaZV4670l49l4+rog6OS0+5iheHD+JCtZUY7b4l084LORcYKGkem+oFXx05kEid95kaxd4PZFMvukXM+3nJQmZNIUpUu4hV/REGrV5p+uWjIEPq4OqAadzYzgj1qfUQnWauHBMEQY5Gh18TJdxvqngn0jdSO48F6BQ2RWWvMzBAc2oYj7UGQ1Ts/xFLy78p92oEQn1FcUz/qHNXc7kvfP9QO5/lzHmiZNALkY0eQvD1brJGhfz3KBwlQUgWBYijO47hAGNAT2UTkuljkvZ0BkSH/WG8jARf8d8S4re7E5eVKo4Z/QKx/VWVxxxUou1vd5D+6mE5j3dvOoB61tsyoOU1s8ecvWhhWykM9BAq/FVd4LGim+fGgxbStFySkO0eUV4DJxvoNzR34G/Gcsb1rw+Pc9JSL9s7tkje3jzW9xotgPC5xj8HkioMALN5ehAhOnFQiAPuDw/3khT X-Forefront-PRVS: 0374433C81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(39400400002)(39450400003)(39850400002)(39840400002)(39410400002)(39860400002)(6116002)(42882006)(72206003)(305945005)(7736002)(48376002)(2950100002)(50466002)(6506006)(5003940100001)(7350300001)(47776003)(575784001)(189998001)(478600001)(4326008)(110136004)(6486002)(5009440100003)(25786009)(66066001)(966005)(8656003)(38730400002)(53376002)(6306002)(54906002)(50986999)(76176999)(2906002)(6512007)(81166006)(8676002)(33646002)(1076002)(3846002)(50226002)(53936002)(42186005)(5660300001)(36756003)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3095; H:localhost.localdomain; FPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3095; 23:0PE7HnpekRy/Li2Zzi+rPoyBegr78zgqMVC2NgfRT?= y3MR40wPp0FZWKiuqLY7heDbtkQ7pnyEJaqqDdLvfusYI8yuFbmawnqJ2hse+tUs5c6DfEsA2yGyXf37cYn1tcg9PmEYIkkV5jynqfOhsWvjjXgPA2SFnQu5hXJTrBEwNDi7muoW20S9848tO+cJxTIWt0Im8t0IiKNIXCfPvcjS6OGRi2jtiAHoyzQFcNUziKIetcpHhDcJ8lSMRutY/+0UIVvfYay4UbDhV49dp9/GZ0/QtwHBNO+fRx76RiaI5f11QZNxXNacRIQ6yVgdvKujJLQo8TdGcrq9DJtzJnYa2NIYmjTGVsAmbUB70U3MuLUYlvC2jFj26jCPhLW6HHYqovuKagrx7SFjrR54voRdh0Ga+nzlrAnS+cMy4OmGeyxTFUruMlvldXNdMb5V/CTTblj4wv9ic64cQ7RaZGo7ps2vaWkM6jpEo1YxQJWCCEeyRjwJX7hROdwD1ZIP/PfMqpLbTRXhIr+Kn9Tg+YX3tVOZMJHySYM6ivmfIFGesqlvUzG2azMFVWEYGN6z5Hb6kLcjPIMS5u1eGw3qumXbNGH6AKCuF1+D2p9/LytRi9Q3GjdB4I6DAwt1YiMw7kCa5UzRQvQ1dhvaf/lhuOReEUjvQIu7iicAms0+mLFU8XpycY9uwc2Q4w3cOOrebF2CVYgUg0DDKx2P3F3f6aPwPTqLYzl+rm/0aRdWk8kX9tUH8jXr8vzQwKl3eK4kgD/Wnz8ghBnIkgH858uuFQs/6Rl85JjQEziXyxCjLOTob7F/AuHwdXEoLePf9yy0Gpd0YqT95iifXvGRRiW/1+ktA6F7Fb+CbhTvFcerVNU/NI7SbuEkHSJl3sgTM9ctDqmG0sqNS1l/2NxE5/9zVLU+x/1tEaUxm6Dg3PkOav20kQdtEF2U6FXKFQTP6EsT1xelDTqukiNKybetih+j8sfF23/PHEtCcpSIQys/aXiew/bgic4vdMY1Kw0K2eU6cT1z67WanfhP2icsueT4oA+3kpE5hiHOY77qFeC4lcvJz/rcJ94sVb1ExCB4BJ17lK26iK6ujkym9g1L0kAf5PmsEp83x0zQFlwk7vHAwpVHI0Coo6P3CUAKpizyDqmcyFhG3Ibi8eg6EQiCvtGjv0YMv/ZWDsHWChNtMXhgnpmDDDuwJqreH76vYqJZGSQ5ijDZVNh+2Rk8V9ZkSpE1SthG7vfMmUz6FU3wqG56tx9BFNlme30wBY2VyZDjjB3JPYi7LXOdgL4xrZTSvHMJsJ50yXXkNpiiTwKN7KyeMXYgqY= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3095; 6:BdFdYIk37rFjGE44JpCwhZh3FyvR4QdJ7sXIcCjTOw?= rxxdITPdbnwaDzExGbLt/0Lp5W/WWQ4N4UM9Bh6uq+VuVqNNtHmT/WI1gwPDppyonzbX17kvrkx1CwNZmACWEpUIJLMv5k0BM3xy/8AbmUhaEiBTSGCGkzJnU6yHMrS7WJ/VyjC9foQ6H+qG4xNcaH5I3XLjuDuHopfgbmo0KOupV8+x9IuMXfkMlbpF0ciHepz53Q47k3uUNAdX09kLfkjmOngPjYGAddSzrstM7jndW6O7/m2t2AeNjcMyzVcez7eEmS34iSNQp+mxjxAESAaDVjf/mgS8n8Hw3ltLi9ustaC4b0MRSNVIObncdjua/SbKlOnnMZ3l00QP3f9bMV4J4Hncc9cgajIkyWqJurF2P59PzqLLfNdNDpdYoEiZfeYjU9w2+T2Loe+cBReq/weWxgt/cLQQYPXrkWUEjdIQdi00I8jkiP7zQFErnHKmkjezdKoHIBREL1U813/9Tpc3laD2AQFzEsO1fZ2Qqk9W4nuwq378FdCDWyYRaKRz2vMURZmHXlqPDLH//J1zwgnMicVaCL01aSSK4Mq+AuUeIiHzhhJj1V8OHB8XUZqYXwXazfcfvLw5HqjtJ4J6bOTJoVBhHgQqlwBIYhHAcT6k8AoAUzjaMZD+/XW4OhA5jpCTjShuKhJs2FlZ7qLAJphBg0pVFX/HYTouMPGhuW0GydRErytGDPYmDCuddQZK1D7sHG9PUnLbX7A6mE8fnkoignxsGRZwsU5qeoDWsgUONuSg7lBGvNeZ5rLJdSAX+/mty/NZ9FhylKR1artyApFCZAk4lnyKdvK4jzugiS+QMJ86Z0GrTTYWMGCVExb5byqoLM0A0mP6IE+UYMyeeMPwlCvtf0gO1BLRj/4aYLrMqLtZ8LlT6rUNm8TRZvndQGCbCyULEVCVtTjuXJsm1vEyDfUAmmXJVV3+QdX8CjsXJvCwH2mi1DN2v8kdgxUv8= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 5:DyJCYquajrFbRKWhYaZ3EzOhUOhsgNY9PQLYUupNj7yU/m29AzGV/pmQRsJ2zB5FyhN4AifwdxIQwncvQPKaiN7JQoJ4p+plo2Ssp9MHBFtg9GqSsM1lSJuzi7uYrduRSFBDlANBBCfa2mlEEWT8luRUh9UIZ0RbO3fv1jigpnx3omHEgNOtwyiN/fxowytzWRd+vDXN2A3W+Fzp9Lw0HDiJCvhZIgjlZTGgA5d3YJOuvPnsSpV1Hf3XV4Qd8FxiEyEwIn6zo3prdSl5utIx3/ktgcldHHjaxcC7KTnJbOVVKXQy/1De8HIvmJjb3rHSdre21bnsqAam/ene5wQrnKp+OxhVypIfjcQ2OPF/jLJbKxsLAjLMIOQARmbWzAC38XxnmXw5lnFEEdIQBt8Ye1FW5jps3txJ++55wferse3A8whoby+kkO50bHOL6pu7ZgZoQAv6d1VSZfuoIJxvUIQi5OMQg9JaClUk/jnK6WpOy/CieUgUVIB7rRo2TLRB; 24:qwxORETPvTG+chNc2DaYeGuBZ6QMuvyL9Jw0BP1kjDojOgd41AAdyeE8ZiKAa0sgAxzFRyiCplCDPxyTU60zB7ug2LhZIOJ3z5BZ79s71Ek= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 7:6w9VLuHq2RIUvmc4wVc2QtyhwQF+x4iA8gu7R2cfV89ZG74R7DiIKdxLCpu1I3aU1/w9xgYUzn7s/jN2rPOmAlEZgrGtJ9YpZXpZHHZet+FbWoWP3l1NsQhokrBfpH/OCNHr/xt3RAPq2lxGkAZu0yYQvTCS9se91rv9nUovXeGTCPYdtn03jqCEVnbTknsoEIvmH6gwLq9eP3iv7OXhhAFdjIGyvgT/og4sp1g4Q0tB0sUFbJ5bDvexfdz04Q2gONfkmmMobuCjCq/xHy0hI76+aS3vGOKbiKVVDtKWNKdTqyNuGhankqPA2Hkqan7cIbvMFz4ZCuD1sebuznbjpEYTmasPEar61vn2pTMyqE5iwGvQ9UXZxrWsV5x3YYc1oj1mYWM6QU405+72Z21+LqfkNSeJb+zdm/3R4LTh9JyFYMSS6wnYvDERP7qLzHdoAJactsi1+tQPm41w5dX7r/UFCh86kKC4BNXVqwEdDpBTArKLXrUbd7SA9pA40vbDZ08FjYPil1uQy/TsirBUR0qQecPgMdSxWK65qoHjxqqLxmv7arEpylS3a7+t1t2teebAvOrXw2kRp3BDT+F6TZd9lm2exNEaL55Po3OHh0RzBshe2iNHLm5mkiddINvpIEVdm8Oyt9jS0XFijl++Y8lAEl4rSU7CaIfn8bqkCw/32N6wIVO0OLAMq3ODibsQurSbnY6eP1uJndqmJROjTZkAo0lRw0i29N4Sb/Zn1uCLWIb/MtpIBfibF5jr4XbEenjyt9mEEPokdFf3Peb+HvaW4N5st0h0hZDmFG4YO0U= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2017 13:48:53.8534 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3095 Subject: [dpdk-dev] [PATCH v3 1/6] mempool: fix flags data type 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" mp->flags is int and mempool API updates unsigned int value in 'flags', so fix the 'flags' data type. Patch also does mp->flags cleanup like: * Remove redundant 'flags' API description from - __rte_mempool_generic_put - __rte_mempool_generic_get * Remove unused 'flags' param from - rte_mempool_generic_put - rte_mempool_generic_get * Fix mempool var data types int mempool.c - mz_flags is int, Change it to unsigned int. Fixes: af75078fec ("first public release") Fixes: 454a0a7009 ("mempool: use cache in single producer or consumer mode") Fixes: d6f78df6fe ("mempool: use bit flags for multi consumers and producers") Fixes: d1d914ebbc ("mempool: allocate in several memory chunks by default") Signed-off-by: Santosh Shukla --- Cc: Wenfeng Liu Cc: Lazaros Koromilas Cc: Olivier Matz v3: - Changes are based on per deprecation notice [1] [1] http://dpdk.org/dev/patchwork/patch/27079/ lib/librte_mempool/rte_mempool.c | 4 ++-- lib/librte_mempool/rte_mempool.h | 23 +++++------------------ test/test/test_mempool.c | 18 +++++++++--------- test/test/test_mempool_perf.c | 4 ++-- 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 6fc3c9c7c..237665c65 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -515,7 +515,7 @@ rte_mempool_populate_virt(struct rte_mempool *mp, char *addr, int rte_mempool_populate_default(struct rte_mempool *mp) { - int mz_flags = RTE_MEMZONE_1GB|RTE_MEMZONE_SIZE_HINT_ONLY; + unsigned int mz_flags = RTE_MEMZONE_1GB|RTE_MEMZONE_SIZE_HINT_ONLY; char mz_name[RTE_MEMZONE_NAMESIZE]; const struct rte_memzone *mz; size_t size, total_elt_sz, align, pg_sz, pg_shift; @@ -742,7 +742,7 @@ rte_mempool_create_empty(const char *name, unsigned n, unsigned elt_size, struct rte_tailq_entry *te = NULL; const struct rte_memzone *mz = NULL; size_t mempool_size; - int mz_flags = RTE_MEMZONE_1GB|RTE_MEMZONE_SIZE_HINT_ONLY; + unsigned int mz_flags = RTE_MEMZONE_1GB|RTE_MEMZONE_SIZE_HINT_ONLY; struct rte_mempool_objsz objsz; unsigned lcore_id; int ret; diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index 76b5b3b15..bd7be2319 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -226,7 +226,7 @@ struct rte_mempool { }; void *pool_config; /**< optional args for ops alloc. */ const struct rte_memzone *mz; /**< Memzone where pool is alloc'd. */ - int flags; /**< Flags of the mempool. */ + unsigned int flags; /**< Flags of the mempool. */ int socket_id; /**< Socket id passed at create. */ uint32_t size; /**< Max size of the mempool. */ uint32_t cache_size; @@ -1034,9 +1034,6 @@ rte_mempool_default_cache(struct rte_mempool *mp, unsigned lcore_id) * positive. * @param cache * A pointer to a mempool cache structure. May be NULL if not needed. - * @param flags - * The flags used for the mempool creation. - * Single-producer (MEMPOOL_F_SP_PUT flag) or multi-producers. */ static __rte_always_inline void __mempool_generic_put(struct rte_mempool *mp, void * const *obj_table, @@ -1096,14 +1093,10 @@ __mempool_generic_put(struct rte_mempool *mp, void * const *obj_table, * The number of objects to add in the mempool from the obj_table. * @param cache * A pointer to a mempool cache structure. May be NULL if not needed. - * @param flags - * The flags used for the mempool creation. - * Single-producer (MEMPOOL_F_SP_PUT flag) or multi-producers. */ static __rte_always_inline void rte_mempool_generic_put(struct rte_mempool *mp, void * const *obj_table, - unsigned n, struct rte_mempool_cache *cache, - __rte_unused int flags) + unsigned n, struct rte_mempool_cache *cache) { __mempool_check_cookies(mp, obj_table, n, 0); __mempool_generic_put(mp, obj_table, n, cache); @@ -1129,7 +1122,7 @@ rte_mempool_put_bulk(struct rte_mempool *mp, void * const *obj_table, { struct rte_mempool_cache *cache; cache = rte_mempool_default_cache(mp, rte_lcore_id()); - rte_mempool_generic_put(mp, obj_table, n, cache, mp->flags); + rte_mempool_generic_put(mp, obj_table, n, cache); } /** @@ -1160,9 +1153,6 @@ rte_mempool_put(struct rte_mempool *mp, void *obj) * The number of objects to get, must be strictly positive. * @param cache * A pointer to a mempool cache structure. May be NULL if not needed. - * @param flags - * The flags used for the mempool creation. - * Single-consumer (MEMPOOL_F_SC_GET flag) or multi-consumers. * @return * - >=0: Success; number of objects supplied. * - <0: Error; code of ring dequeue function. @@ -1241,16 +1231,13 @@ __mempool_generic_get(struct rte_mempool *mp, void **obj_table, * The number of objects to get from mempool to obj_table. * @param cache * A pointer to a mempool cache structure. May be NULL if not needed. - * @param flags - * The flags used for the mempool creation. - * Single-consumer (MEMPOOL_F_SC_GET flag) or multi-consumers. * @return * - 0: Success; objects taken. * - -ENOENT: Not enough entries in the mempool; no object is retrieved. */ static __rte_always_inline int rte_mempool_generic_get(struct rte_mempool *mp, void **obj_table, unsigned n, - struct rte_mempool_cache *cache, __rte_unused int flags) + struct rte_mempool_cache *cache) { int ret; ret = __mempool_generic_get(mp, obj_table, n, cache); @@ -1286,7 +1273,7 @@ rte_mempool_get_bulk(struct rte_mempool *mp, void **obj_table, unsigned n) { struct rte_mempool_cache *cache; cache = rte_mempool_default_cache(mp, rte_lcore_id()); - return rte_mempool_generic_get(mp, obj_table, n, cache, mp->flags); + return rte_mempool_generic_get(mp, obj_table, n, cache); } /** diff --git a/test/test/test_mempool.c b/test/test/test_mempool.c index 0a4423954..47dc3ac5f 100644 --- a/test/test/test_mempool.c +++ b/test/test/test_mempool.c @@ -129,7 +129,7 @@ test_mempool_basic(struct rte_mempool *mp, int use_external_cache) rte_mempool_dump(stdout, mp); printf("get an object\n"); - if (rte_mempool_generic_get(mp, &obj, 1, cache, 0) < 0) + if (rte_mempool_generic_get(mp, &obj, 1, cache) < 0) GOTO_ERR(ret, out); rte_mempool_dump(stdout, mp); @@ -152,21 +152,21 @@ test_mempool_basic(struct rte_mempool *mp, int use_external_cache) #endif printf("put the object back\n"); - rte_mempool_generic_put(mp, &obj, 1, cache, 0); + rte_mempool_generic_put(mp, &obj, 1, cache); rte_mempool_dump(stdout, mp); printf("get 2 objects\n"); - if (rte_mempool_generic_get(mp, &obj, 1, cache, 0) < 0) + if (rte_mempool_generic_get(mp, &obj, 1, cache) < 0) GOTO_ERR(ret, out); - if (rte_mempool_generic_get(mp, &obj2, 1, cache, 0) < 0) { - rte_mempool_generic_put(mp, &obj, 1, cache, 0); + if (rte_mempool_generic_get(mp, &obj2, 1, cache) < 0) { + rte_mempool_generic_put(mp, &obj, 1, cache); GOTO_ERR(ret, out); } rte_mempool_dump(stdout, mp); printf("put the objects back\n"); - rte_mempool_generic_put(mp, &obj, 1, cache, 0); - rte_mempool_generic_put(mp, &obj2, 1, cache, 0); + rte_mempool_generic_put(mp, &obj, 1, cache); + rte_mempool_generic_put(mp, &obj2, 1, cache); rte_mempool_dump(stdout, mp); /* @@ -178,7 +178,7 @@ test_mempool_basic(struct rte_mempool *mp, int use_external_cache) GOTO_ERR(ret, out); for (i = 0; i < MEMPOOL_SIZE; i++) { - if (rte_mempool_generic_get(mp, &objtable[i], 1, cache, 0) < 0) + if (rte_mempool_generic_get(mp, &objtable[i], 1, cache) < 0) break; } @@ -200,7 +200,7 @@ test_mempool_basic(struct rte_mempool *mp, int use_external_cache) ret = -1; } - rte_mempool_generic_put(mp, &objtable[i], 1, cache, 0); + rte_mempool_generic_put(mp, &objtable[i], 1, cache); } free(objtable); diff --git a/test/test/test_mempool_perf.c b/test/test/test_mempool_perf.c index 07b28c066..3b8f7de7c 100644 --- a/test/test/test_mempool_perf.c +++ b/test/test/test_mempool_perf.c @@ -186,7 +186,7 @@ per_lcore_mempool_test(void *arg) ret = rte_mempool_generic_get(mp, &obj_table[idx], n_get_bulk, - cache, 0); + cache); if (unlikely(ret < 0)) { rte_mempool_dump(stdout, mp); /* in this case, objects are lost... */ @@ -200,7 +200,7 @@ per_lcore_mempool_test(void *arg) while (idx < n_keep) { rte_mempool_generic_put(mp, &obj_table[idx], n_put_bulk, - cache, 0); + cache); idx += n_put_bulk; } }