From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0058.outbound.protection.outlook.com [104.47.32.58]) by dpdk.org (Postfix) with ESMTP id D8E0E2935 for ; Thu, 13 Jul 2017 11:34:09 +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=WVmG7T1HLH9RxIEpYw3kWyOLicsYXSWrI/MbLAcqWi8=; b=jHnH2yvxO8jhuIVpTsG8p2mc/khT3FLUYiXJFx7FOrC8T6ixNiJ3bSptWDt4HXp5tETTggk6rgggPcd9+9tZeaESCvzkUuIbaDhWEjoqYH3JJghPeDjGGva4YEb3oEfgqjciJd40x85YDG6wjHxflBXg6ERLdv252QmlrRJzyXk= 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 (111.93.218.67) 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.1240.13; Thu, 13 Jul 2017 09:34:06 +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 Date: Thu, 13 Jul 2017 09:32:54 +0000 Message-Id: <20170713093255.13986-6-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170713093255.13986-1-santosh.shukla@caviumnetworks.com> References: <20170621173248.1313-1-santosh.shukla@caviumnetworks.com> <20170713093255.13986-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BMXPR01CA0016.INDPRD01.PROD.OUTLOOK.COM (10.174.214.154) To CY4PR07MB3095.namprd07.prod.outlook.com (10.172.115.9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1bf3b1e0-2585-4438-67a4-08d4c9d24f99 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:IGK4FDIymq17amFx4vWGuh8/j+ULQBgl0A5nAIP8iElw3HVEMP5mI7vKPp0Bh0bGb5xxPuBYe7KuHo3hZQovo8qEJgL4eoUaCm22OdKp4uR2qC3mtFIDqCFes4VpMREmRYtf2qlvHsAfG79JGNIqN/RtVm19zlvgY6hu8YSB3pZ7iWy1DiEajREW37jj4AIII/P0w4uB+s7G4e1iNLJZYZiViTpbBcX11HVHheLkL3IZoIkSy1SpXbv9R2LOjJM5jKqQfhXSX4iv7iNo/neGkjakNSVGJr0++ow/gawCbnGVjh7V3sPQCnBPnae0TSxvLLo/isnGG6JcLpi90sD6kRXR2HGVQ09D0vtfQkvcU+y8/rWHtZwOkFL2uz7uUAyk+14ydEASuYEfSD1dnGrxKxP0e+PDAR2BUQISD0KLNpcvV323CRtKX0bIwkmb5tAsfKgZ9CjPZ+ohw17uIUIpyh6MZaxhN4dzwW+M3BE7BtmIcKStdbLb0IyWarSji27+qCmLpBIx24UM5Kfc7Na6wMXIwQdjpNFIwxMo8efgO9XwaUbJLs6PckUOHEWEIlZWZ1/QNDpum58SNjIuqnnVZ2y5MZGlhwrQ3iOpkC2tmbX2TY9KdmBrkF1FT7M7/akZ+f/VKCGKXKQgg42zWRsU6IQZyOzityenFj2D9/ySFCAhkTeCUV484KyBrn+9cf751p8yn6UQ/sapFnbTvIY8j74WRozS59MZcY7Uh7JJ0Dg= X-MS-TrafficTypeDiagnostic: CY4PR07MB3095: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 25:gqu3p1sAbWmpn2VvLewa5ujntGJY5DA9yHk0xlPIz1XbgMG9RQEXcxshzmSd244bxnGxxheKrqwsQcQrEE9EnWD41eKKReds/ornOisYw3MBROBod1PorVma+9uYjmpoV+f8BUVApPwLby0Wx1GtDvR3CiP4XIwmua6HNm+wsnmWH3cJDg+Cl5FhrZ050oyd59J9Be/dAw8O9QU0BAlgn5AqGQ6jDIUsD3RTy8Gf4ZB3ELn4F5cc95EYxMnIAwfmA+Az1Cb1eJLTsizDjRSJG4KGHMumhwLoDVppUGsV5dsmo6RBonJebLqaOJD5NIba0Kmgs9M+jxyYMPbY3ppBfhVXAYxKAsdP4iSOZBW1CRzPYGQWmUAP2Q9md/zkSrOfD5QmOdZdAlUI6sXlF8+QTRjkJ9bpnjEmtRZoOV1gmdDzvgkD21EAt0br94bh5an+uOsS0IdTW2BzvaDcDeVO8BmvhDsqKnbAktJdsgesxRaRTA8fbWLStd0Ko3UVdmk+cOEMtWXz7viXQJ0TtMtwmlhoSyeARJSPPuobfAm7U5X5qKzz5xMZoC0aCNZLhDoWYmfvbeA+Q5N0xyp8OR/EZd/Bqa/Mvk+3yvRYauOnVLjT/Fwz7rxyI/GgosTuzLL67nSwHWlUoeNTrh7rJLPENrip39O8D0Bl++GdraENfaMiBeNo+ETiBkQ22AaZbyuI/xVBlNl6h/peZqZtwF1SEBwZT5JiJNHL3LHIC9E9cFc6n753YAdX+uffPGIk6kWXerqoR+QG4aIDbRHFpKa1pRmkqqJaPJbJP5k8uaH2CbvWi+H84BmUjAT51SpXlrDiJAuX0+AAcg1NyKYEgUnjldAv9mqjlyReviSH0NAtPwpFZwl+1/l23Q90DVDghKLU0Od+RbGK6OfONy0+1pJsICsvRW0QfYoAJxIyPGLDU/s= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 31:Er3OGPHigPePizFbxaFzE5d94QpJPwZ4Sy6bi54It3f0GukCGn2gr2uTKwmyUyUFawm+ggWcUHEB6dMdfaa/3DU5LPDw5KjoqtGUDugaQze4lpK0IlATTfUxZkbHpOIHXzHk4uDbLY27kw3VsZ6590pRqnV9+nZ+lP0jChOi0/dmV2g6FwmTTePzE+UdPRBT8R9PR8Nvlz/eLyFDsnrFkWCmk+aViqLshuL+WMAYFI+1Md9ujcScWLgYV/PLfh3eViR5h3kV/UmuQma0j/IIeg+IljYI/2urmHfOJqnuO9UtNwj29r985AuDqr28Q1ucVXNUd9o4BaZoSaTmsKoEm1DmVSr4EAbHc7I7ENtBRDTehpJVHxrQhNLPnieqNaAxz3GEQFX7Nk5F8Oet5G9mTF9iPLt2XXg4JWvn8njXeoTo2vdaJmheqfeUAuUVxSUPfLmEP8ukmW698UBihTyjl5BkiHd7lVKNcyCSjK697388c8AxbUscpITgNt/WpkmkM1sEYXBf983ILbc/Xzv25oorTJ5/E86dgN4Rl0icQflw+yrSA+kCq7WDmReFov2RrTbgv9pJ5p63wNr6JT5a4H/kqmSSSHElhKk6OnmS37sWkWi8p5XVn4KrYHnsweqIrObTH6UBrUhm7yqLuBexygyS9eTl//ucdKiyZNk57yc= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 20:TxOs6SiQuVPGFcCDYSRmULeivZ3kxJcl65ZOaRLHFl3hqhIo49Y16g3i8lRlf4nYIMK7AXZFmJ7ERRUosbu+63xxryKyzYaPq94Efbf5ibBQA4GSrcSMWkzTSNYZDJf/bUTRf9c9OmXlEL8FjTvMYVtepyV7T04Hd9TXSmlr+jQKSe+g+ufJc76DHrziNfASriG+5MbCbD9QNQoHRMRI7U1Tj0BxmodRHdxnMDnCB7oIUQGOql9RkvRhcXiMYRIsPuxpfv3lLD4uqS2US8QnnaPYoYa+KhiXATnCFOcNHHktyQJsmKXM6Zs9/BS0i4gZSlO4tNmIZv24egXz84IxjpDzjF1VsRewS/3oj/mBOMho5Ytj/lwDuBPVb2GdnAEzZLDD5+n3y7FG4JuNpis0nJ6KIivzsBkaii6xLPr09c72FDeYvzvldzsfiGbL63qyH1rk15bY6wsB9hFlIpvDv99Fnm3O4hevAeG8QdhCs11KBcQjVhaQ42X3FMDr5SXVJ8V6Q8jBGs4FeRI5/3a8SJjd+iwPEot0Mj86s6E0h3ukA9HMtWTina24X8IFT0v34mmgBC5HvnNOKk1/IFuTxqtr8PzmlUujQLrPzWv4BXM= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(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)(5005006)(8121501046)(2017060910075)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(20161123558100)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(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:dSMf35aZ8yIRCacaD/5/4qYfVH5shPEitn7TVqp1fB?= =?us-ascii?Q?pp62n3RNAUsYBt+kEqNuXeKdIKK+dt18KqOgCBwWJ1+xbiZOZxFrmS28WTd6?= =?us-ascii?Q?nKlBFuJupjtRHihSlXj8IcP4NQgN6huz9GsHp4rCqyESIYIwIFVXCtoxp9ef?= =?us-ascii?Q?md7ZmxQiMP1n2+YvLwneFGDORQsOdOMDWTHyctq3Sbbn+EwznVnqjmRJgkvv?= =?us-ascii?Q?RXM9tHtsWCG1JVQOqcksRtvRbdFc7BsGb/yBqZ4bjQ9S9TrsgQQK5nHx0iLY?= =?us-ascii?Q?jd5AtOTwfbL3SC9U3/K3Xg82jIxrUQn8AkEgg8Zh03u8TuOCF/QvUrOOO+qf?= =?us-ascii?Q?ob0c3cQqJQ6QobKhe5FLRVZea/iYuvqF+QcbsT74zzMCxzwYH+IIQwmSwJHF?= =?us-ascii?Q?NMgANeyW9ej2fGruAfgn/T6YczHfYqZQw6c/dizhLo3KT4fLmmFd2yLL5Hgt?= =?us-ascii?Q?UHCNMwWsISSvjZeHNrAZ+gHol9s7hlT0crOxYPc38Tb9AA769lhic6P2quqF?= =?us-ascii?Q?IJU/CIw4S+sSXaBNoef6H4Wpoaqn0w+hnQKmIkEYSOlkd00WF7s6kdyotXa+?= =?us-ascii?Q?Y238otZRDKj6wyEeLQ59rGGfE31BuSgmW2WARqBIoiYGBuP5gmz6LQrjKWYQ?= =?us-ascii?Q?P3poKTK0XZYul37fOXjCXofqSDUjXaXXjDi0yRFlvkh85NeKZyB28Vcwv89g?= =?us-ascii?Q?Pjd6JNkP2uiNrxa25TJHgvutUlY2XqKsvqimaALuUukTGsI704v48AYbvqB3?= =?us-ascii?Q?n77lF8EcdefTItxV4+J8Y3YV98xPMheL1qlRYaX9lInv6yOFohmG7Ibs5Xep?= =?us-ascii?Q?XdHNj7/d5k/6cxGYTbIiJlefQ4HroJsO6Ii9cw86W6pk/C0G03VVqbkcKf77?= =?us-ascii?Q?2SiYoBIpATmBqFWYIeRhn2HKwToahu4he6EN69vUkwzYMf4jN+fj5Vogotz6?= =?us-ascii?Q?Idd1BsT/CWg/Ub5YRKa/2WCKnsVVcYqdHsAK1FVrtdgzdAoK9onvAHyKlRtk?= =?us-ascii?Q?UfnoXUGvOJJyh2fKZR5ZSwiiTsAZyQv+5U0xfvunRpacDvfp1JWG2sUTpEDd?= =?us-ascii?Q?yC3pUMxhdgowKRF4U9n5NFo2lJmYaxoYa1/izWdB2DQK10Mqeyb8wz0fS1bl?= =?us-ascii?Q?jWn5B5xEpELQiHTcKpojlxpjxacIAFNSSdYbEjkuVptqykc00fwY9CdNQIA9?= =?us-ascii?Q?bVUGMgZL/Fdg0+4/CFE540JpNw0gESR0e59S0UOFIfwh1AXPnQUUz0/A=3D?= =?us-ascii?Q?=3D?= X-Forefront-PRVS: 0367A50BB1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6069001)(6009001)(39840400002)(39400400002)(39410400002)(39450400003)(39850400002)(33646002)(305945005)(8656002)(47776003)(25786009)(4326008)(50466002)(8676002)(7350300001)(48376002)(5009440100003)(50226002)(81166006)(110136004)(72206003)(5003940100001)(53936002)(76176999)(107886003)(7736002)(1076002)(6306002)(42186005)(6486002)(66066001)(6116002)(2906002)(36756003)(5660300001)(38730400002)(189998001)(42882006)(53376002)(6666003)(50986999)(478600001)(966005)(6506006)(6512007)(2950100002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3095; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3095; 23:A3Jo2RZ3jl+os/mB4dideAWnwxmlBTraxsur9LKxn?= =?us-ascii?Q?tCaSd2jZvWs7SVzRqsmMbU37LcbmUgQCDUmte3C4/IFm6/fcijC+hUSyVax4?= =?us-ascii?Q?a13QR+UtycWYfunYqVENf4QKBzSaCe/PBgmTq5kSr3D4S04h9h8cFiyWQBxB?= =?us-ascii?Q?gQbX1pJGlN595p8UnaIdtiz3u7Qb8UYddF1zwzjRoM7wHsNjs6MtNwUFDBuK?= =?us-ascii?Q?eQjGE6KN0eh1kgAdiDT+WKrbiZZicQeKOOwl1GvhhB8AoevJyPTB0dZIpK8V?= =?us-ascii?Q?vGKDM7+hGON1IHpsGpUnzrjBec/trzz/UNCw5jn8K6YpwEZ8VJC8meC9sMOF?= =?us-ascii?Q?EBUvTajPDjxCAy9t+yHO6RhQt6e1boN0bq3fY3CMlTvxIQVnZh+IjwgFxY5q?= =?us-ascii?Q?n9DotZ3LB5/I14zE1ymx6679xaU0Zne6ljZGss5NTP6Y+34I9iL6cIZnJzUW?= =?us-ascii?Q?+7Lf6DjcxW2RbwDAV18IuJtypEs1VHKdXoaLpo95zybvtMaj8Ozv57zKzgVj?= =?us-ascii?Q?jE9cZuMKfxIKCyyR6/O33N5RKH0EBAzo5JM8+kiqohM0Vbq8w4xgpEf9pCqa?= =?us-ascii?Q?n3lm9lrQuq1nUo0A2BZsQA2WR/FEu+tM1V0oLyOlAPIWoLv5I/x/d30dvZFa?= =?us-ascii?Q?N6m/x/wb8NwGkXwtnCl/EFIgNHY5Ci7mxzj84CH1260PvaSS95ijbPSm1jAb?= =?us-ascii?Q?juR33Oi6MnqaoCQhdp2cCMXtIEua6X3z444YUZDn6f+4XTkZEet+3kY5YOy1?= =?us-ascii?Q?gtxJQqr09IitgO2SJE4mgWtoNiS4L+nBSZo0qjm631n8W+LciakyFpnYzwkR?= =?us-ascii?Q?1ysjlg3Md20A+t+Zdykm7dp0+15dD9kYh4cJkc9Nx9+LUGlHH1CuWMd0reQo?= =?us-ascii?Q?UHoqgINycSP75r8HjDra/CTTXZHVdXWsDu7Jx6aF3uAQq+XnSbrqDosrtSnc?= =?us-ascii?Q?iSvCkQbRTrMOvbc3f93irjHI7ZSRkT/AFYnvVFazMFfmtQU9+aSCH9/EcADv?= =?us-ascii?Q?y7XLXJoer/9VkHMMkKBN9gDzi6xe+cGVWBA27YnqZwhqMLasevLESj0+LmtM?= =?us-ascii?Q?eKMUzexNY6cTfqrGwSDLHXVJDTrFq/25lO1PQbqD7LkJpPjhN2hWOKJvOHfm?= =?us-ascii?Q?Zr1H913ZvQEQ49W8bBBbudSsQ2ypZFqcj2bKjlpsgSSUh1awVk/tBZRSQ3Ou?= =?us-ascii?Q?i50TvPJNQ7YrYkYmqbgXbtErrAQ3lDgq6Q2b2QhRqfrMlAFCcOLf4pHptq4w?= =?us-ascii?Q?taPZGPPSfdh7Uklt30=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3095; 6:46JrrMyu9kQNXuD8x+ty7I8IqoBQjlsUxdYJdlCmx5?= =?us-ascii?Q?bdv+nyIttKsBvOteuyuIkEb2/mEIOL3XDpkUmH+xQqbPXy4r5GQDH14tLkbC?= =?us-ascii?Q?a6Jh0KXc/aP8Kv8FIynBU3UkOU7sO9EurWpmXzym2gbhOAou0ELDFSbrIeAr?= =?us-ascii?Q?BiftGb1plDR4oIVal2dvLhFnAKen0pcjOsA4GzzukEEKYRAdhVoxKKHsmwC0?= =?us-ascii?Q?TUeK1ytjUWUw3lhUWjyylRz9sdQsxrIyRogiR5zHSM9Uj8krFfHJGVtGM4Fs?= =?us-ascii?Q?/5J6DCfTUcImqHNWM/RP/e1GZwoUMD7D5itCxeXOsmsModIc6L3NDB9R/ZJ9?= =?us-ascii?Q?5khGJuXWntW5ML9GqsLpGEQ4Yz48ZYpb+BXwTCLkBzMF15MPUmUw+pE+tRGj?= =?us-ascii?Q?D8Yw6rstXn3Q+PrWMh9MsMPkSdHWfIkKpIlRSD1OfOUYlI+nbI2Z+IMBzYAR?= =?us-ascii?Q?Otlw4HETUiUjCHggBDlRbMQvXq2fQJNtXEbwVpxntr0Dv8MpxemivIOPwPnM?= =?us-ascii?Q?9Q1WfID5sWzL5dUOFgU/XE4OMe/+LoTMRsfkDdoFGLaHAZ5bASb+spy5Xhak?= =?us-ascii?Q?csnIS/oVo1CmqJbiVV03WK0+WEXkhQmQA7xqfJohX5YW0kf1TbgGRdDGS49z?= =?us-ascii?Q?gYjdVG3OePmDwClehoN6/fw8FdQuMejtuVDWNaEoxbN5DuM8JWAq5UZGfnje?= =?us-ascii?Q?PVKj6tgCdHj0QPcmQY3u5bRODao5+XpN06yP9Z5vF4QNo7251yWIBTbrQQli?= =?us-ascii?Q?D2DbzedKdLlDW/U7cAibIswOwCfo8dapBSsLjsxNOcAF/cufR4dUAM/Z2w8t?= =?us-ascii?Q?SpQKcneyM1nohUXxj3W5fqyTXja8NPIy7bdG+fgKc5HItFVEt0N1h3EtEfzy?= =?us-ascii?Q?6tbYnsIvXxbvwcgo/FSL4VGulG8VnXDLx+xPNodEMfk3EBAA1SFUh2ESmQT+?= =?us-ascii?Q?j9V2GET6HIR/HsO19OAsJq3kY6Qo2eECwY8yW0q4BlB7ZSG5V8xehsCj/Sx+?= =?us-ascii?Q?E=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 5:csRX3on91+sLUlAUFBLpqmJ8WrFxaY0AvUsYDAPMaPx0vcXCB9OC8vDHWiTTQa5xaf3UnZP83TsdgqbhLT1ODag4DysiQ9ZEKI/KUla8mCKeVJAH1G11PzK4kBQZWz0uleIlEAbZoaa4KS7gousmHC2NQNJv7rQiEHJ/mwcrJDnN32xaZRD4NZR+xk+KGFXzVyByKbM1PAjEUzI7ujCrwsyM+tetQWbEnxHdCinWRBlmcRbySNI9QzyLOMUzG3RIJeUSKdczpTlOLVVaSSIqEmy7TfWdq63cyXyo+zOALZoEebbDLiTYy+ID0IHp2uhVVomKjiDt3JU52FLdNOYvhi66M44YdUCVRH/aIRueuOBSqQvRMxTxKvI7iuYhD85BI98D7ZFhnt+NM7ATEbvvIWb+3tZOp7NdJ4DCsuJn2MFuBCOjjYFDHppEBFxWqK76GZqmIuxcwTiBYif38Shh5NMmJ/idxwiahQYa5OLVkfJgrHFzclQBkl9FkoUNpgnw; 24:Y6xlAZ5KoNwJdmmT03afYQVfKo8UIjvfXlAM9ty3CBQMV5yp7MCYpan4Qgv6Q5nX4heFoLNsfmtM4Vjk6iS3XISvYf4WB7ZLVV3hFFbX/TM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3095; 7:n8COFIm0kKsrfG0c1jEK2bdOX4dcyBkoyPvcTJPb7FZvRgJK++pKgIhOKL6i69Zwt4EBjGmEmeT8HcdyzwrvspY/grOKNNGUwUaQ/7S1MLLro2RsmjQBRJvCR2AIkUvMHS/B0DbBmCxVVmEWyEA/BBiHXd171C2uETHSf+iB7wxMKUvTpOtiiO75bsLUCTDsX2zNP7rRK8HRFxP1ldLFpwd0P1EMjpOH0o8WmopswIJbjvEK+VWo5ODFztI5Gvx/FpXKgbcNv9NY0QogTxItVT1+z5qtzm12T/Pu3H+lkwHgbyJEumPXdEj/TOAnepIgBN2ycPSAlrrb7kwMPy0TU819PoH0kt/puP/ytkOysBnZAmGY5RXdp40jyG6qVnLV/cPr7n/4u4Rh3Y+X0oN117XNaBxRQ9EvN1lxoYmAh8z3nBEgqRxZJmE4BRGzwHeWZYwgzD7vaLy29MaZIlBIAtY620USjpZk44fUHlVyg6ogfzxNnz6oHaxClSD5uq7cShniNDjyTpIpulOZIIjNaPhRFesJGOUh/3/irqMyuPX5bFOzjRvrU2jNH783rMln07JZAVc39PeyqvVOULCkj6WXxpXrU8tRCyLpJNhWWTwI+uhkkHbX1jf8i2Uxd0ApRtc+cmzjNaJYmHdytToNBsON7rxnEFSwU2PaKT3BgfRutKp3TGSvKzQWCnODnBbnKui906qte+I+ab/Vd9GpELoWZ8qphzhJ3yOxEGnJGAEDG+Oqa5ZdnmC5PEhdmDbByH+u4PdMkwsJn16+Y0shDr2DD5O3zmHg/Eu5t3lByy0= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2017 09:34:06.0601 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3095 Subject: [dpdk-dev] [PATCH v2 5/6] mempool: introduce block size align flag 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 09:34:11 -0000 Some mempool hw like octeontx/fpa block, demands block size (/total_elem_sz) aligned object start address. Introducing an MEMPOOL_F_POOL_BLK_SZ_ALIGNED flag. If this flag is set: - Align object start address to a multiple of total_elt_sz. - Allocate one additional object. Additional object is needed to make sure that requested 'n' object gets correctly populated. Example: - Let's say that we get 'x' size of memory chunk from memzone. - And application has requested 'n' object from mempool. - Ideally, we start using objects at start address 0 to...(x-block_sz) for n obj. - Not necessarily first object address i.e. 0 is aligned to block_sz. - So we derive 'offset' value for block_sz alignment purpose i.e..'off'. - That 'off' makes sure that start address of object is blk_sz aligned. - Calculating 'off' may end up sacrificing first block_sz area of memzone area x. So total number of the object which can fit in the pool area is n-1, Which is incorrect behavior. Therefore we request one additional object (/block_sz area) from memzone when F_BLK_SZ_ALIGNED flag is set. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- v1 -- v2: - patch description changed. - Removed elseif brakcet mix - removed sanity check for alignment - removed extra var delta - Removed __rte_unused from xmem_usage/size and added _BLK_SZ_ALIGN check. Refer v1 review comment [1]. [1] http://dpdk.org/dev/patchwork/patch/25605/ lib/librte_mempool/rte_mempool.c | 16 +++++++++++++--- lib/librte_mempool/rte_mempool.h | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index a6975aeda..4ae2bde53 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -239,10 +239,14 @@ rte_mempool_calc_obj_size(uint32_t elt_size, uint32_t flags, */ size_t rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, uint32_t pg_shift, - __rte_unused const struct rte_mempool *mp) + const struct rte_mempool *mp) { size_t obj_per_page, pg_num, pg_sz; + if (mp && mp->flags & MEMPOOL_F_POOL_BLK_SZ_ALIGNED) + /* alignment need one additional object */ + elt_num += 1; + if (total_elt_sz == 0) return 0; @@ -265,13 +269,16 @@ rte_mempool_xmem_size(uint32_t elt_num, size_t total_elt_sz, uint32_t pg_shift, ssize_t rte_mempool_xmem_usage(__rte_unused void *vaddr, uint32_t elt_num, size_t total_elt_sz, const phys_addr_t paddr[], uint32_t pg_num, - uint32_t pg_shift, __rte_unused const struct rte_mempool *mp) + uint32_t pg_shift, const struct rte_mempool *mp) { uint32_t elt_cnt = 0; phys_addr_t start, end; uint32_t paddr_idx; size_t pg_sz = (size_t)1 << pg_shift; + if (mp && mp->flags & MEMPOOL_F_POOL_BLK_SZ_ALIGNED) + /* alignment need one additional object */ + elt_num += 1; /* if paddr is NULL, assume contiguous memory */ if (paddr == NULL) { @@ -389,7 +396,10 @@ rte_mempool_populate_phys(struct rte_mempool *mp, char *vaddr, memhdr->free_cb = free_cb; memhdr->opaque = opaque; - if (mp->flags & MEMPOOL_F_NO_CACHE_ALIGN) + if (mp->flags & MEMPOOL_F_POOL_BLK_SZ_ALIGNED) + /* align object start address to a multiple of total_elt_sz */ + off = total_elt_sz - ((uintptr_t)vaddr % total_elt_sz); + else if (mp->flags & MEMPOOL_F_NO_CACHE_ALIGN) off = RTE_PTR_ALIGN_CEIL(vaddr, 8) - vaddr; else off = RTE_PTR_ALIGN_CEIL(vaddr, RTE_CACHE_LINE_SIZE) - vaddr; diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index a4bfdb56e..d7c2416f4 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -266,6 +266,7 @@ struct rte_mempool { #define MEMPOOL_F_POOL_CREATED 0x0010 /**< Internal: pool is created. */ #define MEMPOOL_F_NO_PHYS_CONTIG 0x0020 /**< Don't need physically contiguous objs. */ #define MEMPOOL_F_CAPA_PHYS_CONTIG 0x0040 /**< Detect physcially contiguous objs */ +#define MEMPOOL_F_POOL_BLK_SZ_ALIGNED 0x0080 /**< Align obj start address to total elem size */ /** * @internal When debug is enabled, store some statistics. -- 2.13.0