From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0071.outbound.protection.outlook.com [104.47.41.71]) by dpdk.org (Postfix) with ESMTP id E0D747D6B for ; Mon, 3 Jul 2017 21:16:27 +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=Z9137AnQcmSHu0aQwv0CoX3EcJkNSdSKMyyghY5PHWw=; b=HYyl5sxDLnpO7B8v+z+nHONIV34i8dPIl3XKINsoKlgYWWMwSKGZaiMg2F35W95viDxH86pcqHag6QqIS7RtioS7y/WlecT69VVpnDApxoI3BtNkwa219/rDerWq6KHZ8Q/xXlpDXa+hWLCI1Ianwg80Df0PZTRxyQujY5FaTKc= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin.domain.name (111.93.218.67) by BLUPR0701MB1716.namprd07.prod.outlook.com (10.163.85.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Mon, 3 Jul 2017 19:16:23 +0000 From: Jerin Jacob To: dev@dpdk.org Cc: harry.van.haaren@intel.com, bruce.richardson@intel.com, hemant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com, narender.vangati@intel.com, nikhil.rao@intel.com, gprathyusha@caviumnetworks.com, Jerin Jacob Date: Tue, 4 Jul 2017 00:43:55 +0530 Message-Id: <20170703191402.3638-28-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20170703191402.3638-1-jerin.jacob@caviumnetworks.com> References: <20170528195854.6064-1-jerin.jacob@caviumnetworks.com> <20170703191402.3638-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0103.INDPRD01.PROD.OUTLOOK.COM (10.174.144.19) To BLUPR0701MB1716.namprd07.prod.outlook.com (10.163.85.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f7229d01-d8c0-4de6-89af-08d4c2480091 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:BLUPR0701MB1716; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 3:IMieXMOuETj8cYL/q1NoeZ95xd40RZhW1s/mxT2yf8Y4Frs9s1uEqswBdjhbjpqtZrb9bhbOz3uxDG170qog7PW6XHhk/IiSpgNVSOzxl/rQmDPq/q5Tlpd8lqf352Q7BSnY/yzZDGaYQOuRLSKDsNI/sSSwrlEO7evR9U8Q50dgn6oOrfWaPYh6+M5yOCdNT8ONRFsy8K/fBlI940Uk/YZErtPtFVMRlh71O0+LDOnYy3NjWSIBMS1w0VztGURXg/AsPbtrcxcUAwav0NbzbPJEk+FBN7KsLALFjp97u+vYu+pKwro2qsoiGH8pn46FCDzeDu6kyWHm+qFUuzxm44NQf3KMSOYIpMqT+5IcthdUt+6CgjYiw/SfVpXZUgn5KaelAvgJEW+stGSoPGVOQkO31F1gI3FXxwTPjsPfEJrLv27W2uK5+CKVXooD+gBImCmPplX/HWapWUMXHb1P3xc5otbvcd18c5q6SipvlN3y8CVcX/sBGJDLwNxgzB9Pfpb4BuZBXYhzDGOddAgTssa7y0XcDAhTUBgT/etrq/T8Ckp5Oyoq2Y3cXa75vqtH1aF7yZ5dHNZKBzDjzqeeF94G8A7sDP2xH+MQ4vPGZSv54JOucXsyNO8KkLq9YfEPFP1YX+HAXBkBCaYBFXitJfPyXplrqmFEWtAC5zGpyyNoIAKG8QzriCyEuXxl0rHKDnwzTcCLGCL21itryBFIi9wV7AI5uyDUvElSe6yu0C3Hf3XqVRHSc/5XeeE9ncFt X-MS-TrafficTypeDiagnostic: BLUPR0701MB1716: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 25:AAyQPmRiAqbUomUzdoc98PBBLGPqOBxzIVjjOYuikVgx5LAPoSQPRMALLCWQcHcz4Z6/yUbvHSKjvn8TSfQJlXYmd8SNeUxOGYdcSqkj/8jnGw1Q/Q4mk57ngFNPMaYYaE/ZVT0NO2UBQxb1KS4t9NUd+TNU8SrRFL87NBwHAVMwq23SNqBTjA88SDN0qFuOKzf3ttB3yFNw84lVnvwQMnPwWGixqRqcBozRRkrSPQ2M2s1cu7sCsOaXs3Drzxa3LT/XmhZBt5Hwm35+hVft4mJQYtRqvHzn3loYSKaFFXDhdVUuE4sXx6qTyoY+QfudS82SP7kTCL+tpgjOdeMZOOsCfklcpic8I5a6HoCzWA1FvyRZTdEIcEIjRauwP5LMSruAlXOT0v0ltdswKqrYPh16AZbRRBPFTgB7CPyl/X0XWyYyfTBUQrkHmbTiLw/zH6PwDzbb/7AzCNtfcpm7Iz5EonJPZ+0SN09eaGhZY2nqE6RPJpsGyRhlL7XkMpM5mEhDnwsQv3yGP4Q8uPlhSSug6O9JME52o33bFPIPCFcW5gJ1xf+PWlByI2Hlg6XUnzUVmsNQak6HJN/lgLhs3wxP8OMon42MfOq2deC3WALv5wRdqdCaxr09fI04Ml0HdLrpn+Pkp5r9jhF3mwfv/Wtgt6HayofYe3bLbg9+Hip0Oj4reUpVTy7cGdsk/q+Dh0UVmsbNADtweVlAzD3C+5f67Vcgaokgdqw6trswmBVagLQBA8ExHJXZXz3cbA8OKcol0qfinFCH4JtB6oGYR5zhvvSRPBkE4e3Ij8b1qrjSPjLJSGGjEb9GpRiE7Vb1LKkpfIPF3Tt+wUkKH1okvBi4UMspNuxn8VnUw0yPinYqI+GS8ympUMNcl11Z/dJZr3xxmbE+ezHu++sp1Z2KE4l7hynpY1HWZ2ZbRvVXB9E= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 31:vdxn996oOR1FnqtndCPd/1GYmAUltnxe6ag520KduscOgL9eCmU5baJ+Y7vWe7tcDwtxS4UYiyCy524JpkQhVdG+Sn0Y4Xak5jleavsLmhuqIBOQHB56DQ6X33varBr1C5tw0hnY1pgUQdNAy2+y2Ns4P2qAaAfu1H1hyi7jVnRoEzPplYHfidpc9iZxATEtjBnY2OTnJp/GnbNseXxnHdV7e/HCq7Du7IpZG6/kce7y66DvkLeJEzC0aPMGHUtIJ+VkLWyzxQr7P/rS75Pz6x7LZn3fTrAX3acPwdILArj7eUyRR2GJECfH8uPpedgtg6ssaHEScR/7eM1Q8g/L+uirN6kc0Q7Yo7wDt9x2DED1AzW+yXPDSo/qRljLjqi5vsET5oO48OcROCzZy3zdKbCXo6OmzeBKVQXr7zaECPfQfowoy1QE8sBiKYymCwkvm1GMgHezAYvl9QRW7Hia6PUuEVNTlvLqKvUVi8wRnJMxDZH8uChqu5x46CKsL3C/GiPTEfNqkXT+zDmaPjOxOM+nK2bA5nnGu3EkQpk3/mH7v7o/fyeP3R4GGuWMyB6RNryo46UgAdS7F42VrrIApYAY6WUPbyGal9O3YPAj1x+j4mVEiELScRC60ICOJv3aTd0JMjt80D1jAI+mmOhLEZdoEpXjTOFVT/Ge7pOl440= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 20:C6w6mB3/wT22nUiz1RMExyQx8HGpv8hJdlYXZF6RLVFn8CP8wDjB7x6HF1Bcx+Ms4s5F89f+6wJZY4sAXRCMSlgAa0emcgDw4la3JIwzSC8lGUrYz6GngazyBDCqWwF+uePXJ0/w96aLReXZKtpBLRjd9TakM8Hab/JyAtFgqnXnpVAXw47DBCqPZjueRCNdESkDAM2+k4DvJZy3CTfHJz8MarQrHgztDsqGiQN3xCqz+JSd1HRpxZDJRubFtldpGWs8/l9sqOpu0g+KWx5tgxOODTafZKvm80v28GdWJyIqs57SAsYDkq61CjUvlMppBjlzZ+ZhBILZschu5BW78ufnoYgWij7TipA0TGC2fiEiQNd5SjmJGtcaSg4ThlNSyto477LkXg92tvwfWnPL5yRPSsR+gnOM36G7R364fA+7ydwZwZoxdANaTPnKkiGdKRTVg6ZZDaY8TSHmR3+Ucb68o1uq1pXZW9OqluMXE4FU2/rc4sWhQxo+plMtNYxqqeECd8fs6vgO/w6ANY7WYV5jXRX909T0+Rigs1Oci/jWE/ZZg7LWXBtTQA9XZaW3vJPKExJvjbCEOL8Z/XyaOcLbGv6EkeXZgbF/OpwH9nU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB1716; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB1716; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1716; 4:hdveMWiiRhDOoyhtrzS5Lq+bzn9FOqBDTUcBBfSW?= =?us-ascii?Q?KkqAngmTeQh4TjQo45n61C/zK+LvHUMnTczj+E2ZN21neQzIlAwPkUHdKkef?= =?us-ascii?Q?YTKF7hcHzQJEHSueAfGL4jlVUQWlknecRDPgA+dIE5EL1MbX1EYHpeDYPp1c?= =?us-ascii?Q?KNVFcxE8AGIHFuCUq7oSxr9E9xNZ+xJ4na9VZQbrAfhnOtVm4zZyp+Q3jjyH?= =?us-ascii?Q?QRijRtN6w4zHd4TGl25AIiOqyFTu7GXpIMp8q4lYzUuSSIy8QJhIRn5jS3OY?= =?us-ascii?Q?ItlVzZT7sQlaNN0OBWMFtQ4WAAuYfcKbgIWvMrDP17kCqONlux+OBa2kwzuS?= =?us-ascii?Q?Hrt5mUzD3n/IMpCi6+sfyW5RQWo5X+Z5ZhvxsTZXfhdNeOI+gbV8ZXj/BdrS?= =?us-ascii?Q?nzdx1NFSPUL54NVJ/yeocDkApDkal7DTqKPigoxc4O3o/meqSf9RdhWEM7QW?= =?us-ascii?Q?6WxbL3vQKRc1SSiMpOIcfhXvZoQV4mRQTsfnxPr/fI4nQfTdNi3L6B4+iMoY?= =?us-ascii?Q?7R/LSqwHdR9rNAA55WLOMG/TrSRnFYLV6Z0S/30vrSdF0HmihXfCRIJXB/r8?= =?us-ascii?Q?q5yrTURqcBo5VyUfcSGQE+337ReihFdsfAKcRkBlB+wA+kXPFRzWjswo6WJ0?= =?us-ascii?Q?3ZdPcwRVG4chXE9vqwpK2p7N2hfbbiEVlDM+Te6RZD3V9riDZ9w8Y+heNnwz?= =?us-ascii?Q?/c76VCFF1y3x7Ddo2yNBgT3pvrCaNHax2Y9LS4eKzq8soJFLMFNqeFS+TkWg?= =?us-ascii?Q?DW4E1jwpmUKJ1IE+svuMbkMaPIhddhnNlPpG5ZpTjJvl+YdFForxSVrouHOe?= =?us-ascii?Q?n7Axp8xHa7oeIp3rxQmkuye21nS1sm7TvjtUYjRMBIhttU++hZRb5IbH776F?= =?us-ascii?Q?Yt38XYBTtVB1XlTKoYlDEwJJ6Aork/NC/ZsLXMmrokjzLQvToAtpjAaDPUC0?= =?us-ascii?Q?KP3IgqJi184JznjZbnwLSTOXl81IxkAn/dtUovR7X2svq2yS6Iz3+i/udUne?= =?us-ascii?Q?D6eAr7GXrk8wXs1njtgPLn+tA61VTlO/aJLAHwBhbUSnFB1XNwpYme4GEjtU?= =?us-ascii?Q?0l5B9OKQVWG/FyY2qMm+uDsr72Tau+tE7o9clKnnPbK1FsfCuKOIpZSeMgf9?= =?us-ascii?Q?aR4regozDeb7Jy99p/ERZHiUVTN38MbwRUwLoKkLM+q99VemY38FLA=3D=3D?= X-Forefront-PRVS: 035748864E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39400400002)(39410400002)(39450400003)(7736002)(478600001)(53416004)(72206003)(38730400002)(110136004)(107886003)(42186005)(8656002)(50986999)(76176999)(36756003)(6512007)(53936002)(4326008)(25786009)(5003940100001)(6916009)(42882006)(2950100002)(66066001)(5009440100003)(6666003)(2351001)(2361001)(6486002)(6116002)(189998001)(305945005)(33646002)(5660300001)(81166006)(8676002)(3846002)(47776003)(1076002)(2906002)(50466002)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1716; H:jerin.domain.name; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1716; 23:VFCOyQANNZXkSgbsCDDIwUmz+GTl1WZPNNu+kok?= =?us-ascii?Q?C2jk2azotIr+OsTR0JudbGjv7u6fxHrAHisxKkzt73eH5QdlWjtowZAoHte9?= =?us-ascii?Q?Yqy6+eOOVbe3wTU7r90UlpLTuSd4iNSS3w+AYG8NazwuA2cIjff8ELswzaAO?= =?us-ascii?Q?fQsL54thu2uw3gCgOckzFAkgzloUO7q1RfN7iVILtIQ2HTeHWEjV4vnfRveF?= =?us-ascii?Q?x/ipyjD75+3vXZjH5exrASQwq65vNYLqU/1jGknN2icdWsMdCTcEqcbKYQqm?= =?us-ascii?Q?Esx7FLYvnuDW35wDfbdGyo4YMNg5mAuoW+WRsR4ZLTai0ngbbDjA2byIetyS?= =?us-ascii?Q?fx2I6L3HxNxIFSppw29FMDc5QVsi42Y5Gou1ZoKLAvyLmj14Thwt9+/mMlMa?= =?us-ascii?Q?qHR8ko4EjdpPNHXEaFUKrATMz3oLYkzGoz8CVp7eo8JgRxiyhF4jWB9OiMFW?= =?us-ascii?Q?ehBxraFNemx2TZnT97Vmu7nA5fCW0p+5NacRnIBcbmItimqk7AI5Mwwhw3LK?= =?us-ascii?Q?VZ0HDMgYjqV6iRjQxAn8B19lNoLEGjnNMQMRo/samy7URSC1im1IFFcj0dP1?= =?us-ascii?Q?MidSnVJJyaU5o6x0l4OYimVlFECETmreHEE10Y8IIztsKxAr1B7mDBHx5Kiq?= =?us-ascii?Q?jZpg+bL5PhV/cKvKzZ+krRaPDj+DHy9p3V7kFhsR4P3iaPQ+rdzPxGakDCrD?= =?us-ascii?Q?/8x02go6aDFyHUTzhxzAuXvXsYqFhHEeRUjmllkLo3Yw6l1a//jPdmKcGiUx?= =?us-ascii?Q?f1Qo4D7IVSORRmb4nxbBRUbHhrrJU2AOmcYtvtC68/5zyVeiHlTKXcv0Cscs?= =?us-ascii?Q?aHnmcP2quvInbMQXZvWGZTNImTT/wsooJDlh0Rws+Sj0ppzIKn07J3jMgZ4b?= =?us-ascii?Q?KoWXx/mGqmdPHNcd/f+rdbWBx4TBqnwV5cMUPetgO1srlH2J6hz22JkJVkX9?= =?us-ascii?Q?kpxHadqKRSFE070vrLmi3Ff5Y5vtejr4Xi7dYtrHScnxBa8mG5OVy5+z4GGg?= =?us-ascii?Q?hFpInw4cFsD+e9qbVAqFITwFB8Aukv6kav9fcBIiZ0nVwDcjNA/nsHf8pnVH?= =?us-ascii?Q?oDVHoIdmAXPN5XqkYXhTsw/3r4SUykkvnMi8cR98vHDwfuR07gaov2y5RH+p?= =?us-ascii?Q?jGfnBybyauNxzgx2jx8OHKeAADCNYxEYWNk4oClphVjKh0Wzd+DFVpw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1716; 6:4pe0HPCzkwfz09+4EiXl9aDGpejuq0WjqSixEXTW?= =?us-ascii?Q?0PWXp4WNCNxgVd8XxdEdSUViDjK7rzHPg+8PJOSti+ASILWZkNC92E6Q2hG8?= =?us-ascii?Q?LdRrR5cH5E8eid2ZAiXyaoMNyJb0/nzDxdIYAh+NdOWTa17+Wjyn4Vq8zUJr?= =?us-ascii?Q?+EEO0Ds1mSCzWLhhuN42q036/i+GSeKPaWHDwTnnrRjKxmEgnatA5ZxADY+v?= =?us-ascii?Q?ty/pfpU5XK4mjdUlv/EjMGzz58uqv9KQ0twNOaBJYNJ6Pgw5C6TWgYjKY87J?= =?us-ascii?Q?o/8/H+VrWa9qZkjeJL8sgfgSTL1pZIAJTyzwBSxIG703PbpLaF8RLkzm622N?= =?us-ascii?Q?r0okNgnfr1a3Nzb0tGLYANE+wt/ft6jxv6oGNsHxIyLxPguAAasFJQIMvSpA?= =?us-ascii?Q?XfsLZlYHONmga/xBF8pfz+Vy2lphuN70gSPScKbL0Czs0OLkcSbMkbY1dl17?= =?us-ascii?Q?nl1Zv797VbT2OYqBqJ7WjumMzj/qAjF1YeBIa2y+fKfX4RE66yNvpZEYblIG?= =?us-ascii?Q?tyaOUpyJq+u9SL12N6eX+Q1jMRGLTGQcYS5NWV9sgZPOBnHc63aCoPl/2hEA?= =?us-ascii?Q?HGFa8I9o/d/WjMLNau1vnh61Q01C2mwM3czrHjv/W1Z4UV+beG7YUf00/v65?= =?us-ascii?Q?+qRX+Fk7HF/gdHeZrX8B11jGE1mgtfdZSB/OVJTUuSKhiQwramb8wzFTCjj1?= =?us-ascii?Q?W6UshcT169zybu8yiUoZVuCM5Hncyb6tDS//akty5XC7xqmYb4fn/JaRAlSS?= =?us-ascii?Q?1PZ4djtnWJMEDQ6+nhwlx8hxEMqrzqPZplQpU58rphZwFGavZgXT1hiW+SV/?= =?us-ascii?Q?9jZV2VYDtKF/rQgv3ZLR1kC+MzSP/xakaKcyK3HZRDKPm9WX7jptCz68GAYh?= =?us-ascii?Q?h5MxNcHX22Rb7VG15ozniH5u7hfCdY32uI6/P5hnQPBURvmaswMnK3gfx7O7?= =?us-ascii?Q?TxwHSvqFHRof8zYFsxPTEci2/5P+0wiFvYlk2b/aEC4uK5f7Bvxaq/Itn7UZ?= =?us-ascii?Q?4ls=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 5:KxJBzT05SmEVRGEHQ/JRBU9Sr4Ax365q1jiuVoTeJ0oEeSyABI0qnYZtIyFjZ6pbEhcIOxMw6pbS707ketJx+zuIcXoACKuxAzxiL9/RtM0FsJYa7zc9T3pPL7jYU4mIVCI+9Cay4TuoHGXpzCjm+xbZ25uki9Yq1qIf0eyi9JDrMFuwi/vmAJpifZMCEFz8NZbkXSI/rgLW+ez2/vL+2Jd3bpGi4KFik6LMYSHkb0+osusk0teq75RDGg0MbMXxhAj25g1Ef2pdvV+TmKqBglqH6txNkRUJCk1875MK8hOxVqYttf9tYb8xMVAKOFI7F7VDEreABsX+hBOeqBEoJ+xt8h1h2a58VUS+IhBUu3CaDoQC3Bca4d6kx/NJdveySQIi/99zNmv6rSVN3aPEGXzZzWlt7yupDThBIAtRaspn13ui//ghjqgfrOVOp30DM+0MMbfK0Tkb5mtugppa0Y5txllsvyeSbtXXGQckzhrhdd0bG/b4WfYV2Akpbt/k; 24:kKBIgOB0awA8mvvx7yhDvC8hBG0IB8XC7eZtLzOQr6CBtrrlblKdNEGQulBWgyfdcBdk0xGx4C/ivPTfHOFnpMEeNP3OlZzUhp+pppmixog= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 7:dTeR5fEDBKaTvFPux29MF3iL7iT600SrgHnx8KlcU30qgSS4HVELcVjHxCqTtZbbYQ2UYE/gC56505R5+JtBS8q0lXfGN3MDcplWBqaTXrWCGer2fTpguiaIrOWI3x9dNrmwJ03TiwJqDCrGaoGRKSNkt6880LNjSK6i4HrXFdC18e76plus3wsTmTuNiXmSaO3qtDySFs3HCIZb2GqEI7AbVIA1nCo+0c9WVjZa7+mfFcyXLltOE1Eft9nvG10gcOOqZe20wF5RegOm6VTbz4hNYom5FUxP0MUbMYp5KV7lgAWAPBUldCtqIZsjbXrV2sCQrReYkf8lDHof3pBBw6YU48xiwRhmYbCNzH2y9J7U5We0tC6nPvRSrbVX84N9DSOVAxfENKNB3Adbzw0askk+U/R29sQdPQwpSnAGM20mrK7BJijiGahABonRvS+zFdTcaO+YbvVH8xo7wMnXkSCPEA8YlFiWnhVo38x/y/g3/Z9pytrYT9joL5TQj1KR4lvUEXXowYFUwYyNv63pDPqN5ca3Iz6l1jx6GCME4WgqY7OFe91ESJiKeNgilMgPh9sEAex8CVsxUEybT+KWfUzjmlkq/FN0sv2nXLrJFtQ8BAV1raVga0Y2PJreGPiIUVrCKaSEy12+3pdPc27yQ8qYEqa6TbLdx5jnw70dDx/5UE5AtjNvsm4oAfV7zp1L+esnxmdg/WRvFQn4NbQXOCqSzglLzzEBz8cFq8RlbSNN69B8vxnMGJcCefQ8XfDGjKd7GnAqtq1JapRgmSRfx5Reu88apT0SskXwhpag47U= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2017 19:16:23.6865 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1716 Subject: [dpdk-dev] [PATCH v2 27/34] app/testeventdev: perf: add "all type queue" worker function 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, 03 Jul 2017 19:16:28 -0000 Signed-off-by: Jerin Jacob Acked-by: Harry van Haaren --- app/test-eventdev/test_perf_atq.c | 140 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-eventdev/test_perf_atq.c index 1beb7042c..f2f57727f 100644 --- a/app/test-eventdev/test_perf_atq.c +++ b/app/test-eventdev/test_perf_atq.c @@ -41,6 +41,145 @@ atq_nb_event_queues(struct evt_options *opt) return evt_nr_active_lcores(opt->plcores); } +static inline __attribute__((always_inline)) void +atq_mark_fwd_latency(struct rte_event *const ev) +{ + if (unlikely(ev->sub_event_type == 0)) { + struct perf_elt *const m = ev->event_ptr; + + m->timestamp = rte_get_timer_cycles(); + } +} + +static inline __attribute__((always_inline)) void +atq_fwd_event(struct rte_event *const ev, uint8_t *const sched_type_list, + const uint8_t nb_stages) +{ + ev->sub_event_type++; + ev->sched_type = sched_type_list[ev->sub_event_type % nb_stages]; + ev->op = RTE_EVENT_OP_FORWARD; + ev->event_type = RTE_EVENT_TYPE_CPU; +} + +static int +perf_atq_worker(void *arg, const int enable_fwd_latency) +{ + PERF_WORKER_INIT; + struct rte_event ev; + + while (t->done == false) { + uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0); + + if (enable_fwd_latency) + rte_prefetch0(ev.event_ptr); + + if (!event) { + rte_pause(); + continue; + } + + if (enable_fwd_latency) + /* first stage in pipeline, mark ts to compute fwd latency */ + atq_mark_fwd_latency(&ev); + + /* last stage in pipeline */ + if (unlikely((ev.sub_event_type % nb_stages) == laststage)) { + if (enable_fwd_latency) + cnt = perf_process_last_stage_latency(pool, + &ev, w, bufs, sz, cnt); + else + cnt = perf_process_last_stage(pool, &ev, w, + bufs, sz, cnt); + } else { + atq_fwd_event(&ev, sched_type_list, nb_stages); + while (rte_event_enqueue_burst(dev, port, &ev, 1) != 1) + rte_pause(); + } + } + return 0; +} + +static int +perf_atq_worker_burst(void *arg, const int enable_fwd_latency) +{ + PERF_WORKER_INIT; + uint16_t i; + /* +1 to avoid prefetch out of array check */ + struct rte_event ev[BURST_SIZE + 1]; + + while (t->done == false) { + uint16_t const nb_rx = rte_event_dequeue_burst(dev, port, ev, + BURST_SIZE, 0); + + if (!nb_rx) { + rte_pause(); + continue; + } + + for (i = 0; i < nb_rx; i++) { + if (enable_fwd_latency) { + rte_prefetch0(ev[i+1].event_ptr); + /* first stage in pipeline. + * mark time stamp to compute fwd latency + */ + atq_mark_fwd_latency(&ev[i]); + } + /* last stage in pipeline */ + if (unlikely((ev[i].sub_event_type % nb_stages) + == laststage)) { + if (enable_fwd_latency) + cnt = perf_process_last_stage_latency( + pool, &ev[i], w, bufs, sz, cnt); + else + cnt = perf_process_last_stage(pool, + &ev[i], w, bufs, sz, cnt); + + ev[i].op = RTE_EVENT_OP_RELEASE; + } else { + atq_fwd_event(&ev[i], sched_type_list, + nb_stages); + } + } + + uint16_t enq; + + enq = rte_event_enqueue_burst(dev, port, ev, nb_rx); + while (enq < nb_rx) { + enq += rte_event_enqueue_burst(dev, port, + ev + enq, nb_rx - enq); + } + } + return 0; +} + +static int +worker_wrapper(void *arg) +{ + struct worker_data *w = arg; + struct evt_options *opt = w->t->opt; + + const bool burst = evt_has_burst_mode(w->dev_id); + const int fwd_latency = opt->fwd_latency; + + /* allow compiler to optimize */ + if (!burst && !fwd_latency) + return perf_atq_worker(arg, 0); + else if (!burst && fwd_latency) + return perf_atq_worker(arg, 1); + else if (burst && !fwd_latency) + return perf_atq_worker_burst(arg, 0); + else if (burst && fwd_latency) + return perf_atq_worker_burst(arg, 1); + + rte_panic("invalid worker\n"); +} + +static int +perf_atq_launch_lcores(struct evt_test *test, struct evt_options *opt) +{ + return perf_launch_lcores(test, opt, worker_wrapper); +} + static int perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) { @@ -128,6 +267,7 @@ static const struct evt_test_ops perf_atq = { .test_setup = perf_test_setup, .mempool_setup = perf_mempool_setup, .eventdev_setup = perf_atq_eventdev_setup, + .launch_lcores = perf_atq_launch_lcores, .eventdev_destroy = perf_eventdev_destroy, .mempool_destroy = perf_mempool_destroy, .test_result = perf_test_result, -- 2.13.2