From patchwork Wed Jul 5 05:30:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 26477 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 ADB962C13; Wed, 5 Jul 2017 07:30:47 +0200 (CEST) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0057.outbound.protection.outlook.com [104.47.40.57]) by dpdk.org (Postfix) with ESMTP id 85E552A58 for ; Wed, 5 Jul 2017 07:30:45 +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=0xzOoKXLSVMVT+dZLugqv/c4wyPiDi4dSyn74ps2yG0=; b=hSx2G5eB2bF0+7ImEcH8EO1gRsTA30evg3E5Hh+d0Td9BmVOpnnYfmgN7XQiyKmvkyzglm3UFvWUs9tti+SpdsLAR9T2DKZkxHw+wa14sygCL2wwsSXr2jcZRPOAT1hsZiRCGRTs9vVds/a7L91GH+Hc+m6j9uNkE44t0OMqXPA= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin (111.93.218.67) by BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Wed, 5 Jul 2017 05:30:39 +0000 Date: Wed, 5 Jul 2017 11:00:22 +0530 From: Jerin Jacob To: "Hunt, David" Cc: dev@dpdk.org, harry.van.haaren@intel.com, Gage Eads , Bruce Richardson Message-ID: <20170705052853.GA8031@jerin> References: <1498751388-41571-2-git-send-email-david.hunt@intel.com> <1498830673-56759-1-git-send-email-david.hunt@intel.com> <1498830673-56759-2-git-send-email-david.hunt@intel.com> <20170703035755.GA6275@jerin> <25452a77-c5ae-97e8-b41a-5dfcb9fb19a6@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <25452a77-c5ae-97e8-b41a-5dfcb9fb19a6@intel.com> User-Agent: Mutt/1.8.3 (2017-05-23) X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0088.INDPRD01.PROD.OUTLOOK.COM (10.174.144.156) To BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 37d737f2-087f-4016-6c5f-08d4c366f9cd 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:BN3PR0701MB1719; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 3:8okdBOaPo+N8VZ15gWlD3rUPa7AblstpeOVZVxUfwG5rYMR6rXoA1HUct455Ie0DvTWWRGAVrLSjnECbQ75R1+3hltilkhixVGzcQvoSkdOIGsMFs0RYtYVQehzRCkRgrxD92VUtCy2mhuDImeGIqyoR0Wwvo3EpwkJOKAVwKSoHHtuoWxsDRsyXfcfE4Upi16cGuv3MNiT642lpwP6WDknmt1Zm3UDQIxXQsGlQphyLN7218wr72hfH3qL6J64nxA9Gn97XWfakXF/1C30SiLpAY6GVQ4jQzFuVQT0IzFzu2pBPfB/wmWtZFGWUOXIbF6NIUl9vK+RCN7bTD7SZtkl1dPU4VL0LJga5LDgZJt4wEkVRclDGWpo05u07mtj1XHLXWx+tolSLnYwU1PhMeWfexDGTpEs7xmr8TBmRgjVVAa1Xoen9eP/j7GQidCXy4+sIdIMLzVDRLUjX0kC5BW23BXsImmdZlSEpramLd5MRNPF+ZdoZpcvv8vJGClzeFY00u3rjD9GzwBXvNPhDZ9jxBVuHQay8TT+EVQ2ztZqe9S9VBbOIXTM6jYuNkT6lhjbVJJn3pKAnj1+fl5VpbhQvI7XamucafPuHLWIOn7aiNJmHltB/gjuDOlkNXn+2NWoS86+LVW86g1FUHtrA8GonuqHoUWkumon2RzM8jYho0GqQocQdN/stVdxXKr5vJFqj9Dh41mvh2Z7EQ0vi3sb9cpfvprCzU1+x8Sj/Pgj0b5Hmt8Xz37CuIkzBN6b7 X-MS-TrafficTypeDiagnostic: BN3PR0701MB1719: X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 25:QGTzLR7U2f4992BjjHB9MD2WPF7zO+WRo0zT05kME9E9tPm3p3/7XnIxYW6d8ru30ckFBT/a7lmsHXf0N034drPliPB7gNbv9KM/Qw5v6SMhQAhPlXxeAAgFa+50qiOSeqmnTjzP2xbOwyDM5/mcEv2AcHyYRZGnqtIf6LTeqs32t/ITGl+MRbK8L1YyCCJpCjhDc83ijI35Kv96qMP3IHPfSmQZzXSOH+xbUXQm0wJqPIQodxoj4F3HzGfdypcT3z3Er9f3m1GZ2cfPcv/4f30jaEh0iOVQw3zV7ZWbUGq15D4RdmgJ9KAVYJm/yNbusRvLsk3T/rULMItRCn5SuUGdbDtBhOorMIewQRoFljCORu4HuGLR4bEzJR3Hl6TrPbf7Nx8mE92O0xMnuYPThEQYNAASmqva7ls7PeD0aCmmCpRETStG2NINgxL3ObMSqvsOA8m8vbrEO/uwsfzKwyIRYMLRi7znWGz/V0ODTyuHLkxoyoVJT1i5TE7QJLwn4S2yjBepv4MzWbNigqwhafIg9cyP4wdpVswhWw+Y0u9oEvkt6E1kJiSgY2X69cw20FG5J/dZjlPbhKZBI2BBLyE8B4sLeVOw2VYbCiTnRFTbhBEybduxIy7/uzS+a3fPysBMcknb9uWJib52yyhN9DP23Y2HEKi7+zwFUGPm+6K9r4aMJ5uoRnTVovp1lh5lxtO0c2h6p51QimnEcFIFvMjjVUOkEzIt7YDk7MEz3+BSTMjgHGAt/3QganzAXjrHGknR6D+1NYcD/KVxz/1tdC6Rn4M7CYvlACRYAKf8aun+RF8n/XcY9Y4+JaloH/cZ7AgSBIMHfby08eYMFGNDyCxq9T2DxKCqEacSFc4qUcFMf+ON02SXfPUY/b+Il1gKYqFmlq5mAqIEUcNkc3q2bHl0eKWfxuAbwfbWjkw6QOw= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 31:LNIMYujMTkKsi5h0O5fm6xYuH932Uk9CvS6YlRpFlsmcJJLr5i7zCkRWP0kqQActe4pGUDdx2FVGXQfyACH8fUzkEW9oGXfJZ/RRZMrM2a+xJRLZjOv5wANeC126XXih0Vrc7kjxDW4pL49MM7CN+IJx+GwbLOL4yhvOXGmCLeTqw4k6rfTH+TpxYh2hAl5Mgs5rrciMRixoHCn255fCXWjhxi4hPREeBN2rVGPBlAlruH6Q4zDafyIGlLp4jRJ93ysOgaASh9CHafKK6K9CaLyPg4+fgTfigqjFsXPtUynCS6mKCIObpFB3clEjKNMcwqQFlWSMup6YhQhFz3wasNMHurUDL2aNckEAmyMDv4WYndS0MKhpUMqRh9wmkgve+y+Hguy1uY9dXRxlyfCDxLwf5Wfc/vFzsvWIfnpXuthfd2p8PfM1yI/fkmXLluS9XLHDRD80sj9o4PmGAilUL0ElQfUPIrTCMPm8gyOTdkSiRVrXVKFYCNeV+7Ewb8aulEtiIFt8RZzNL3cpqfbZVWIROUE6rQAGvb1v01ktFRhr+m78gHU2RK1oRf0b5Fa3XmH8U7r18iA16+9YILlIc4CRkHA0sglMRyDRvrc3/4cxrWYnQcA8sbigFnFVwmT6M71+QHlUoFOlSmaRIdZXRaBnHu2scJsDfQ2mTekO6I82p1ZKGs9b6l1PaKhKHpiq X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 20:7fR+GqoOtO1Qkxahikq4ySrrSFLGzeF/jQIQc6VG5Is6s5azHA3f8LTsanNb/WY45ZWsy3qSHT8aD/nWlUuphFl5QDB+mSQoxmBs8jL+lpBUbIAeirgXBuR72XbnnL29GY2wNFGjyTTBS30lAvFdQeFfpqiAhb01GdRfTltHuklBhzKdEChFxsutf2Fc8VAJAUIzgMrTJFBygz8JfWYXrBvZISLiz0kmFIjWeO0kxnCX5LkcvL8RArXrMQDLpjdHucS+kskFjPN8uby+wKAb+vKXonRV+t0b1W+NDB9Y3EzVEMNX4VpFiE8JGdGGH+axOPsduwytMDECtsoH3mRY0sUGw5HCreQJiKCcqCWuHNXiTjVEgCfzzjMbpfnGeiFJXd1NA5dPzm/pCQEb1Xwz0ZqagvTHSsNmucW6xvidj1x+2QRyNpghRmMu5/X4uRDJ4pO174Utv+T47kPbUJ9oRqqpoQGzjszkxFcA1qTd4j76c5Co8ssdhszCcLIAfxYK7SvJVCBr2fHE1FIpQ5rTPYc3YOKm0qHILWD6jPcjbxCo/SW3X/G+W6/hTT1I6XQ+++I964XIVJV241sF2s45lle3gO0NzZeSipB+Vb0eV4A= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(167848164394848)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(3002001)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN3PR0701MB1719; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN3PR0701MB1719; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719; 4:PMVnaV95vD8OgcXA4Ck30zj/AC+9k319eKcG7Dmb?= nkKkFCNwR4m0vKNi/iQnReNEeNLPNSZcgq8GcgVDBezizXXSTA+S2EzTbL9bf0j9DyA7XtZ3Mon9HxqAFHR5+WFUYXX7NZH0ON+zZaEKCM7TWT7f0+SgGgKWmqd34W7TpUq2f1XK4N8pq9AC+OstPmymUndh7wuYJeLTmRKWovbZQiIDEfuqeGAvHShzWW+GY/T+5SsF1GOiLWo0FLisbY2/nz5BVXUMjRi5iT+eqIF0pdGt1qdE0AkDdQ4Azie1P1fx0a1cuVpVfrY0cchoycYJUPHTwwmPqNDQbLIc61SBPd4YYDV2nKoROIv2KCOEnoXMgZA7s6qJqQNCBaA9HAcE/uomYmKGuQXabuJ0PNaHYCPtpel31BSGe/X4kNJi5FitddUj+VcE/hhs1kMWKe8xxC+B0SBrWTStsZ8ouxCxRLutng4QSKizpbUvCkxR44Hj6bUfZQCHrwZxT7ENDLAmZ2Do1M3lreONq+eE0jG8KPvp3lh2MsKFQpJd+AUh1J81J92FYNeMUAAHne8ZCe0PIHboDw3KDU+x1u+7JmhOqW9NHmajYZpKKcePiy7FPyG8WkplbNdLP8M6VOfEKZmS8+/wDvjeoe7fkjHuT+UqdXUSKr6cUYxe4KduG8fz46X9zlEme8n7TXOStDCr++lrTJB7ukMJg64K9DeNq0PfdRcGUC2BtE3WBoTmNeu1dAowEvT4eKpYwgt6qN2X4xZaACPoKEzCRMMaaIpyctjecYYPW1ZyI9FOkNlVeBcNYQFq9UZ+KzHsUHehHjWg5+b3f5YrzC+tdDTBO+yMJh91Zs3u2shPwrs30stJe5f5PNB0sJ1CZWKigp1R4+o+5DReu0a+SGP0UELkYKIJeZ4WA0is7nzdXeoemRfVm3Zt3QfnuAIydFvTSx4HvFGwGRijBe5nn20f17VzFdA26rEcxsi0BHMWxl7tJBt8Si7S1VpgiWsD6rm02COXScgG+V6tJzjcc1H3j9GmmYZcHxKQDy5A+alVo+VsSIav4GKzYYeo3ApvUdfakgIDdYVCybPkmRBsqwTex97zHvISpWbtsGTjVWRbKWrh6FpcoDSaYi3+FGRb2ga76oiNYrH4XJXL4qB/Sdr/J/t++//iTZelnVPaohV9HPbxIkw7Tf1rKXf/6SBsDGF3L99hGAlihxAEnWNOP5RvO24jjVIP+KOFsVFTbmp6DeevAfO6I644v/XvfR8RnXlo4A18E9ykSss0 X-Forefront-PRVS: 0359162B6D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39400400002)(39450400003)(39410400002)(13464003)(24454002)(377454003)(57704003)(23726003)(1076002)(25786009)(7736002)(5009440100003)(189998001)(4326008)(50466002)(5660300001)(83506001)(8676002)(6116002)(3846002)(81166006)(305945005)(50986999)(2950100002)(76176999)(478600001)(6666003)(42882006)(4001350100001)(2906002)(53936002)(42186005)(9686003)(6916009)(72206003)(55016002)(33656002)(53546010)(6496005)(54356999)(93886004)(66066001)(6246003)(47776003)(229853002)(33716001)(54906002)(38730400002)(110136004)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1719; H:jerin; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719; 23:2WrlsbOpORQ5HqvW4/G1FmiKdO9ov1Klz7Q4jcR?= 2KdBVe8aKNka7LVbX5+z2PXdmPqMnqzWNwNrOC44T1JdodX1ac0NR8yhXwLz/qZkobmIsIT0Sg+ttkYimsq7bvOCS9RdCJxL5y4f/z/ix21+wijJas3RlnabkkMpim9FJYQ6ceEGoR38iw/YAVmJR+vbgV3f2XOUrkfVqe3bOPb2wSTg2HCQDWlRBpuM8nk+xVbj2Yio2UE7Rk0q9iKTDbG69is3U0k4KsnbXMFyzTxX3BDL8z2Es9MC4qcAWHlCqWT8udp8hSGXgIQ6gEV88yDwcqIO0Bfti1UrBvQu85YPrMZWtWwQI+c6Ptg9TtmCodCjLVVjkoct1Zf8ztX5mgA0yUUDzCz5ZBXqaGLQT/+i61h1g84WOZc0BSRxk0J2MKgSPhhcGzLiyJjDw1NhM71XJX8vz9W/Y4gbQ/sIgBsqtpU7uBfCnQzoZdYrZMugPiR9nLcXm8e7XR/FzFj9N6RbSQPfmDKHXMHz1+/R109aBJjGiJltZp8hl1zp3KiK3XwrsPA5WYYTyBF0oVXdmBpZNqYx+7gQDvakeN+UNhWq1vMB2yg+x7ZdgHis15+RPE4OiciZBckLSxUfmBVXd8DTWemP5cr1HqLcALosRtVGX1f8nGsK2hcSovFv9dRur6hyHYCzPdJrjrFUMo2boiTPsgaX4CP9ZB/FyiUhHU9z5gbQzPjUJ9CqGB/SCj/xWWMEOfZRaURIHSv7/Ruu9uO6pQMPXgixgY1idoXXZ3Ptx7bYC4IhoZS/AvABJBbVr95H/cTVVKNx0bQhR75zkREuiGoDLFBkWEBUAvE8ELxFCpjFRJbx6eFnu2SY6yIZgRICJtDrJF//g3Xf0tJ0VlS9e9RM2/UVd7lWGdTu80sqfxKgmPojgJYbVJSP87wtCFUZbAeuEbxPe4UvrLrKNigTGe0djAdPLIP+tSOflOkGegOwUrHPdtsMqQp4aoP7fDYv1qiJSKzuLRe1b34UPyVbXj7R2Dr8dJSrJYbbPBYOivs4EV6TWQ36+eD+YXZKEMwvkfY/i58eVBQc4X8oOKTPr/hMRGQmj85W1ToPPdUflBJ4L+TrCrQHKg2B4P7QEpw0sOcU2PzCBCZepU5u5hi+c3tAedtLcy1zjz+4H0AWYXn8uCF+hTOyRysbHrWi5RXWbOKd5jEYP8WOZIwSzDp0Cjz0hgYQmLaO1m1ofX8RySrn3PEn1vO0if3eZ95Iat645NJGUMEiXHIsqWYp9aTzM6ROU13t9aOlA4otdeJ5dS8anCHzz/58BvpfXYEtaVAW8usZL3OBHBbH/gl4Vqyg0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719; 6:LGlxz/gFMWSZXasBbCiSf/UqORrSQfP7VWDG1Cjn?= PBrwnMaY6gua+HAOWmq1bp+K8jvteKYvkf2lgne72qdHR3iFhIfdJTJdwrxSn0KPQhmX2hekaNgJdaLCrb0LSOPnhGjv1kDW5m0viT0R8i1vLm3VAA3kwNiKcin3r3uuI9madO+6tiV9DkTtDamXTkEEsAqhh1Vw0sQzCDVM/rikBj/2kmHr3Qg4ind5nlhwp7tpAh1ICe6UjGkasAvWrLjgNvFRR/p2tjYT/606BLae9QcFIIOEXRp89JzePKAqrotkYCLHOBAoxme81Aw81vSgtAYTeQp+B9LiEbPtiMIORvGaccx068ARoy3535JbJA+mFR7mPX4yFk9GEt/OA1cDNDtwgi8jlm4uv9+6eXhXsw4tv82j4ZhlCOMTFH+y3e0QaVkJv2+zdnKm43Yazj9u3ODKakTdFTbCL62A5+X6506HBaKYe/818GzUTGolcaWgwOFuYpe8ecu9XJsSzOIzWinU9Icj9l6UCW2ycqridczN8mVC8j4kD3UxLejefGYaMxY3wxWSkklntfIThRS1rBRRm512ZFoZD6COYtKRIivafFLSCwVpsNX3tUxzUeeyav0HsQRaC8V+PA4xiMmy0z1kIA9ZDIgqH5mL9O/wiwRpKy31yh7Z5Ue7I5sNWPTktmp9vJz2uGm1F5EFI0YXR4NHfpLeLMu3LR9Zfb610RTRRXjBcOyaHb/KMcK8zsYRHjG/NSjovX5iitRGTk0rwFr7ZN6btnDPpHJkR45moWBNRSGYaJS4tdT8zy5vpeMWkwp+R8cD+lnAPB3YbgudUZMJM1mzacL62Rz4gcBSAdk7CY1O+BcbVIwQdzU0DtFpZ3JTPoun5K9ODZdTaI9uSoQd9rPnUVhD+PHqvRbodU3gn33gTDr4Twq9sA0OrsYiFlqhtQjSt5p7A8tU+7ZxgKDijp+LzQuzpxEtA+e2QA4aRVed8tkcdYRCmEnRmlo= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 5:c9ZJRMf6ZaWr2Gyv8kPyGnoGIbJAZ1Sd1FkAy4pFI9uEdsxg+KBSpENSsn4UdO81DrvJX52xnFxv90UKxz9Vs/fQ573ZW31HCssDNzCp7Jua2uO5LxiFc6A8fkxJBiLjIwOTLKeqPCZE/JrXzIWXPf/0lFATNuff4ZQKWQPYINg7zinC1S/jgunfr+R75OE0tcSc+fTNgTxZOaVS/nGBTksmnEJ5HdFAqxtAf3AFsWgEpm/CrkzKqFLMqYyZiuRDZ+FIDEMC9/oE+WGfoRO1biSddQZA+TIVNQE/5KHxf/J4nPprXwyIU8YOmYM95Fm/3k/MANxemzOhk8Yo59NqcuOyGi9CsbSIfdvsbbwra/+TWt5S8p0bm5zV4Un9AEFSDFf52wcwYXEzU7RSEKYrzw6yrHKQ1e4oa4YtBm9VRP+PMcLIwvyqvMcIZ+OAKyswvXouXBLZyHlGOqW5QRCaI4se2m0kVMC9vftKVmJR0oohri++45U1gqKqmKEDXMdY; 24:EMfBdBQHOM4JDjS8H4nwLPQz0V1IrVy4r9awRPD+Gmp0bIye5JCoIIVtY+9MyQceeV5kLfZhfWiQXCSVuYQtpHt4GCV43DhA2/Bw+pMsn80= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719; 7:8DNO77cu6LhndIDcGdhgjkOXrj+bJ7uJ8Mk//dRgJPGot94WZTEL/+33dQD+gl8HAE6wAYcRSELb9zwoqwxT+kT1miqTKc/lKNrwneIk3shPyrJGs/cjIbxi3LJzWl0wQ6E0Q8MEXInWlYIngiDEo63JsvY6MWJx9iBac+Q/0R1JD25W96tUnPJXAgs7c9FGsR42PaRMznr0vb0iZBULay4xpEt9aPeKW5TE0lKYtm3a4lR05hL9pYWnIQZYK2XVE1+7Z/UGsF+boJ8yYaLFPWJmtZBgBQ2f0WXcFldmHdkHc0vpndV1Y36vpPDNX5jUOvU4qoSAkkOoYkRF/Y7Ss0w67eOBen2zKK/fr0Z0dPjNjZjoQUV4LsY1qYo1g7mp+4lvuvFzuyhv0JEbvv8NPmPQN7kSEJtblJors8YxLmSck6hn/kqgziaHFEks/dC95G6CvpLRLnzxkgJdrYYYKTrzPeZcHHS+GojjcdjAMNyOmGuZv3i0zeG9Pu6eA8xkZBeS7eUQhBo/hpLT/fYEC2FZd8bDz5NYkigQqp0ZyeSP8jaRBiGHz2TBceD4uadTURtFc6l7ZvJ1TVv8gouNKwvnpDnTnj7YmiE5VgLNOkjldM6u475QUGVeSGoRjUXUXJrfAurQCq1Fu2zGitQpGtB2ywuoU5rOmnSVR+IfLVh7+Q9DcLfu2vjqdN1Cf0CSb1gVM4U3+eUr0qwFdbK4f5B3ElmGwA39dr6+U3GXB+raVv6PMhfGAVAOKI+/+Id6eyZc5PzE8FsmQVzWmqTfo/7kLmokUhryg3NSv03hecQ= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2017 05:30:39.4120 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1719 Subject: Re: [dpdk-dev] [PATCH v5 1/3] examples/eventdev_pipeline: added sample app 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" -----Original Message----- > Date: Tue, 4 Jul 2017 08:55:25 +0100 > From: "Hunt, David" > To: Jerin Jacob > CC: dev@dpdk.org, harry.van.haaren@intel.com, Gage Eads > , Bruce Richardson > Subject: Re: [PATCH v5 1/3] examples/eventdev_pipeline: added sample app > User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 > Thunderbird/45.8.0 > > Hi Jerin, Hi David, I have checked the v6. Some comments below. > > > On 3/7/2017 4:57 AM, Jerin Jacob wrote: > > -----Original Message----- > > > From: Harry van Haaren > > > > > > This commit adds a sample app for the eventdev library. > > > The app has been tested with DPDK 17.05-rc2, hence this > > > release (or later) is recommended. > > > > > > The sample app showcases a pipeline processing use-case, > > > with event scheduling and processing defined per stage. > > > The application receives traffic as normal, with each > > > packet traversing the pipeline. Once the packet has > > > been processed by each of the pipeline stages, it is > > > transmitted again. > > > > > > The app provides a framework to utilize cores for a single > > > role or multiple roles. Examples of roles are the RX core, > > > TX core, Scheduling core (in the case of the event/sw PMD), > > > and worker cores. > > > > > > Various flags are available to configure numbers of stages, > > > cycles of work at each stage, type of scheduling, number of > > > worker cores, queue depths etc. For a full explaination, > > > please refer to the documentation. > > A few comments on bugs and "to avoid the future rework on base code when > > HW PMD is introduced". As we agreed, We will keep the functionality intact to > > provide an application to test ethdev + eventdev with _SW PMD_ for 17.08 > > > > Sure OK. I will Address. > > > > --- > > > examples/Makefile | 2 + > > > examples/eventdev_pipeline/Makefile | 49 ++ > > > examples/eventdev_pipeline/main.c | 999 ++++++++++++++++++++++++++++++++++++ > > > 3 files changed, 1050 insertions(+) > > > create mode 100644 examples/eventdev_pipeline/Makefile > > > create mode 100644 examples/eventdev_pipeline/main.c > > Do we need to update the MAINTAINERS file? > > Updated > > > diff --git a/examples/Makefile b/examples/Makefile > > > index 6298626..a6dcc2b 100644 > > > --- a/examples/Makefile > > > +++ b/examples/Makefile > > > @@ -100,4 +100,6 @@ $(info vm_power_manager requires libvirt >= 0.9.3) > > > endif > > > endif > > > +DIRS-y += eventdev_pipeline > > Can you change to eventdev_pipeline_sw_pmd to emphasis on the scope. > > We will rename to eventdev_pipeline once it working effectively on both SW and HW > > PMD with ethdev. > > OK, I've updated the directory, app name and relevant docs across the board > so they're all > eventdev_pipeline_sw_pmd. This should make it clear to anyone using it that > it's for the > sw_pmd only, and an updated version will be provided later. > > > > > + > > > include $(RTE_SDK)/mk/rte.extsubdir.mk > > > diff --git a/examples/eventdev_pipeline/Makefile b/examples/eventdev_pipeline/Makefile > > > new file mode 100644 > > > index 0000000..4c26e15 > > > --- /dev/null > > > +++ b/examples/eventdev_pipeline/Makefile > > > @@ -0,0 +1,49 @@ > > > +# BSD LICENSE > > > +# > > > +# Copyright(c) 2016 Intel Corporation. All rights reserved. > > 2016-2017 > > Done. > > > > +# > > > +# Redistribution and use in source and binary forms, with or without > > > +# modification, are permitted provided that the following conditions > > > +# are met: > > > +# > > > + > > > +static unsigned int active_cores; > > > +static unsigned int num_workers; > > > +static long num_packets = (1L << 25); /* do ~32M packets */ > > > +static unsigned int num_fids = 512; > > > +static unsigned int num_stages = 1; > > > +static unsigned int worker_cq_depth = 16; Any reason not move this to struct config_data? > > > +static int queue_type = RTE_EVENT_QUEUE_CFG_ATOMIC_ONLY; > > > +static int16_t next_qid[MAX_NUM_STAGES+1] = {-1}; > > > +static int16_t qid[MAX_NUM_STAGES] = {-1}; > > > +static int worker_cycles; used in fastpath move to struct fastpath_data. > > > +static int enable_queue_priorities; struct config_data ? > > > + > > > +struct prod_data { > > > + uint8_t dev_id; > > > + uint8_t port_id; > > > + int32_t qid; > > > + unsigned int num_nic_ports; > > > +} __rte_cache_aligned; > > > + > > > +struct cons_data { > > > + uint8_t dev_id; > > > + uint8_t port_id; > > > +} __rte_cache_aligned; > > > + > > > +static struct prod_data prod_data; > > > +static struct cons_data cons_data; > > > + > > > +struct worker_data { > > > + uint8_t dev_id; > > > + uint8_t port_id; > > > +} __rte_cache_aligned; > > > + > > > +static unsigned int *enqueue_cnt; > > > +static unsigned int *dequeue_cnt; > > Not been consumed. Remove it. > > Done. > > > + > > > + return 0; > > > +} > > > + > > > + > > > +static inline void > > > +work(struct rte_mbuf *m) > > > +{ > > > + struct ether_hdr *eth; > > > + struct ether_addr addr; > > > + > > > + /* change mac addresses on packet (to use mbuf data) */ > > > + eth = rte_pktmbuf_mtod(m, struct ether_hdr *); > > > + ether_addr_copy(ð->d_addr, &addr); > > > + ether_addr_copy(ð->s_addr, ð->d_addr); > > > + ether_addr_copy(&addr, ð->s_addr); > > If it is even number of stages(say 2), Will mac swap be negated? as we are > > swapping on each stage NOT in consumer? > > The mac swap is just to touch the mbuf. It does not matter if it is negated. Are you sure or I am missing something here? for example,If I add following piece of code, irrespective number of stages it should send the same packet if source packet is same. Right ? But not happening as expected(Check the src and dest mac address) stage == 1 00000000: 00 0F B7 11 27 2B 00 0F B7 11 27 2C 08 00 45 00 |....'+....',..E. 00000010: 00 2E 00 00 00 00 04 11 D5 B1 C0 A8 12 02 0E 01 |................ 00000020: 00 63 10 00 10 01 00 1A 00 00 61 62 63 64 65 66 |.c........abcdef 00000030: 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 | | | | | ghijklmnopqr stage == 2 00000000: 00 0F B7 11 27 2C 00 0F B7 11 27 2B 08 00 45 00 |....',....'+..E. 00000010: 00 2E 00 00 00 00 04 11 D5 B0 C0 A8 12 03 0E 01 |................ 00000020: 00 63 10 00 10 01 00 1A 00 00 61 62 63 64 65 66 |.c........abcdef 00000030: 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 | | | | | ghijklmnopqr Either fix the mac swap properly or remove it. > > > + > > > + if (!quiet) { > > > + printf("\nPort Workload distribution:\n"); > > > + uint32_t i; > > > + uint64_t tot_pkts = 0; > > > + uint64_t pkts_per_wkr[RTE_MAX_LCORE] = {0}; > > > + for (i = 0; i < num_workers; i++) { > > > + char statname[64]; > > > + snprintf(statname, sizeof(statname), "port_%u_rx", > > > + worker_data[i].port_id); > > > + pkts_per_wkr[i] = rte_event_dev_xstats_by_name_get( > > > + dev_id, statname, NULL); > > As discussed, Check the the given xstat supported on the PMD first. > > Checking has now been implemented. It'd done by calling > rte_event_dev_xstats_by_name_get() > and seeing if the result is -ENOTSUP. However there is a bug in the function > in that it is declared > as a uint64_t, but then returns a -ENOTSUP, so I have to cast the -ENOTSUP > as a uint64_t for > comparison. This will need to be fixed when the function is patched. > > retval = rte_event_dev_xstats_by_name_get( > dev_id, statname, NULL); > if (retval != (uint64_t)-ENOTSUP) { > pkts_per_wkr[i] = retval; > tot_pkts += pkts_per_wkr[i]; > } > > > > > > + tot_pkts += pkts_per_wkr[i]; > > > + } > > > + for (i = 0; i < num_workers; i++) { > > > + float pc = pkts_per_wkr[i] * 100 / > > > + ((float)tot_pkts); This will print NAN. How about, move the specific xstat as static inline function. port_stat(...) { char statname[64]; uint64_t retval; snprintf(statname, sizeof(statname),"port_%u_rx", worker_data[i].port_id); retval = rte_event_dev_xstats_by_name_get( dev_id, statname, NULL); } and add check in the beginning of the "if" condition. ie. if (!cdata.quiet && port_stat(,,) != (uint64_t)-ENOTSUP) { printf("\nPort Workload distribution:\n"); ... } > > > + printf("worker %i :\t%.1f %% (%"PRIu64" pkts)\n", > > > + i, pc, pkts_per_wkr[i]); > > > + } > > > + > > > + } > > > + > > > + return 0; > > > +} diff --git a/examples/eventdev_pipeline_sw_pmd/main.c b/examples/eventdev_pipeline_sw_pmd/main.c index c62cba2..a7aaf37 100644 --- a/examples/eventdev_pipeline_sw_pmd/main.c +++ b/examples/eventdev_pipeline_sw_pmd/main.c @@ -147,8 +147,9 @@ consumer(void) if (start_time == 0) @@ -157,6 +158,7 @@ consumer(void) received += n; for (i = 0; i < n; i++) { uint8_t outport = packets[i].mbuf->port; + rte_pktmbuf_dump(stdout, packets[i].mbuf, 64); rte_eth_tx_buffer(outport, 0, fdata->tx_buf[outport], packets[i].mbuf);