From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0080.outbound.protection.outlook.com [104.47.40.80]) by dpdk.org (Postfix) with ESMTP id 480037CB1 for ; Tue, 4 Jul 2017 06:55:44 +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=XIS2F2rfLUswDXtiGLyHmqK5Adugpif6FmGDMcgCeHi1joD+tzfD7TNjOEZrasFm5Sczrmw0RrndZVHvaOEwf/MxbcZYEfz4es8jat4NNq/B3x67z9EzLxdmhfz9s8A2uIEod5+GH/TKxd8qyAqnxJkUBCRWFjk+3/Qo53FRrUw= 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 (106.200.206.49) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Tue, 4 Jul 2017 04:55:39 +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 10:23:22 +0530 Message-Id: <20170704045329.24711-28-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20170704045329.24711-1-jerin.jacob@caviumnetworks.com> References: <20170703191402.3638-1-jerin.jacob@caviumnetworks.com> <20170704045329.24711-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [106.200.206.49] X-ClientProxiedBy: BM1PR01CA0106.INDPRD01.PROD.OUTLOOK.COM (10.174.208.22) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 912457a5-e439-480e-a3c5-08d4c298ec86 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:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:Ut+ndxpA0zwKC8iHsZ2HzI8SSJjyiLWqTWkLoSj+Q1rkA8//6ecOtkMWq3r/Z23vQtERnFS0jORJraEsmQTUEqi5t4+Ley3IcRl4f7lAbktz3Jshz4h/JVwQxQe6vqZc50YQhhRmpS3eH93uKqTWllYp3ebDMvBIQUKi9zBeN1k8SVP1G0eW27x2OL6G30ZH5DMnKCewzZBArMDbhXR20qkcEIHB4glN+BLyBj0jq0JvPDl/d9uGrJsBo2inLPXzylkt+GJwwICDy49cwC22NSucdjCNRouiNgKAXAcDIuOWBuTvdmFIM4TYbjakd+FJjPlSNvuA3KTsQP/2K8ZVZqZy3AJwzrbhVKM39c3Pd40nUUoWlVjWfjOrgdETLwzwBq5r0dynefCpnUniZsclz34dDAzdXAvwEdGKV/09JWyXkn/AEgMb0PkGlHe3UrTqb9mbKwEWCsqY1RiQXT7A8XXpX8YOJQhXRDrt0z5xquPe4S1o3ixRYjgu7FsPz+HRcCDLMKONJjpY/WIC2ssovo1UKTJ8zuTHeZMiKQea1C3RgDwDMjZF7sFGBzvNpKoReV/s6c12Z/KUSsNrkiLD0IBfo+UPfujfqShALXWy6ZqoCopg0mWZi438txCdL3NAxeJeuOhSD2H98LBg8PD7eA4xr0958SEMmSHMNFN3SstAKRwGpaNXmVFLTWdmEnh4URog+Mn9XUKF6xqw82kiFJGokUHaOfJniEkdPyPNDtBfnkW8Wjaf8AluhXWkvrp4 X-MS-TrafficTypeDiagnostic: BLUPR0701MB1714: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 25:IbeFMS8p7uA6hTSdSOsowatSgvfMAGnsl4Qwd8TtyyB/3N4QRRmpk1B4gQsyUzceAHFcWFu2bLzUoBnjnVF8QlZCSv/eMnXRtP8IeuIeEAI/CVU1e3B+R6C3h1w2EbxaOjwFU3w1uFLmJ5YSbDLnopHHAgDP3yC00vR4rgkfMxL8UWUxTN6FWmi5pRZGmlt2pM7+UE4gBRi2nkK1JK+oFOTedkOkzr4UbFQsv4SjV9uJC+hU5vsLJvmbyX36qYxl9GBs4Y7PUD8hU7A8a1RltrKk215quboAd+Bo6nLA7Gd0Il+dT8aDt/iUNjTLcSiASn9z3PaGEvcCfcaMbBJv1KXDBNoZNhdGont8yWmzAWpCtQ9qOclI7XDJFWTNwXzBMIXk6AHKzW6hHGajiFrSp3Nnfx+2zaMeOvBUAyAKvLwD090YAm0FkDqgNaieGRVal0kycpm9JEvyCN2M/CDbU6rfMZSpiU1/OvP+sy+X/wcD9KhLF8miSWCkRm59kel2b6Oy2z1BqX03YWBsBA9Dl8fEjl/N7ekS09mI5+8DQx9IPeJHvpWzS9V6qICa7mgSAoa4ZuOEW9TvKlM9KQdx/zvF7H3pEytENJtqASKwYu3hNDltQnUahCBaXa/Il8A7PYcn6ZeSZV+w+DxCH389Jrj5MGc8tZbb1L3YA6OR2mTWvyM8D/tHe5MjSRkpvIayFQGy3n4qWbkE3yq97uwDPp1vOxgzp5SzQBKFbYPEc3TNCrOYA2Q8On6uY/iEadYRBeET0OsWXcwmifPv07UBd87ff+ArbRbCmd7xY92V0YyDaiBmfkQu1FieBRt0y5a8SqSyCD01t4JT33vDOJCFMxjaf9ly9XhByXtTQH/ijK9bKWdrRnYRe11q2p7PpwTOviWJHMAREWTkTAiy9av2dZnWrsZNzcWiutcb4miBUic= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:C7Fqt+Jr2z44S/ijv55m0VlKc3Ea5GUl+ECsYvoDufn5ZQ7V0Em3oBf8KwO+uNzc37Osj+6o4xnWqwVNoyTAg0VxNLmt2qiEbhu7/TJXVllmDhweL1wn8+9Of+Yg8kOLaaq/dAC6fJ6i2J/9IWa0AFYdMRJVqzZ583DBa5g9JMbYeIr39zIkuVwweA/8uJtWDBiaur3HbHxVPGDqqHRHDZSFwqE9oXPgpFiU+I5+a1zKcgXPZwl2u3ld9U+UlxOuKH/aqXfMJmoCk/6irYYV3VW+7r1HesK3PlcBBgSB7XFssNKtfvR/d+o78KaeZA0HuWaws/N7iFy0viKDFOIgHWKojFm5QSmiRBYJXDgYjlpGm3Y3cI5a1d3asN0ly4CJhUEgJlSIcmjp6/U+8tTVcSJBRv7uUpuER7NtGl6p2lIQgjNEHbi8u1fumZC1aIENf526PHqbJ6V2KJllH156oSe0e12vwL9nbEfEm9XzXmYnYtXgUuj3OFoQamupvU1kLbKokhYgSWOksX89VdGijqbzpVxKYkN9H8z5KWFn6yHC6IpYWO2+r/hQWiws18IA7vrTnMH5EkJVwkzK9yujm+esWoQKxiS6N7+W4sMkDu3QNbiLeEhgKeaqN4wf9KMJPjvYpb2x2q1lJPgcsdzIm6nf/4xNK5pqJe3bt2Ycbzo= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 20:xHzGPQFKTVGL0thO9u2XCcx4B/HKe+Qs3zgRbjcM9ONdzEAv/5m6Bo3GeOoadCM+9JvOQf4YxYOch4NtK34rB6vnyJ+PvS7bw8rWKaWk/fjJh1u3RAXLkY/2JAapAmEiCGCmGwK5X3DSB+ZNWWY/p73G7lSLFUheqXdMOTMsPoCK+/LCkBt4yAd46KB6o/ivKiwH0ZoLOI8xSMyq23eX8AmQJ7BaBNMfwrNUBCNZ/DZ/p7XYFp5zORZMZrv1fVNWeAOGWjoXVDCJnWhHvCzkMhyb+RLRPngiET+oZ679EkHjEkcW+JcEFQ/WqJhzID/qCKWNTreLAS6jGP/8sFDqAsBuaaqTcZ1x+E8gJEQ/yYeh4U/XkFu3R+MPUkjO6QXLPAapw39lAhmfQNeY5db4axB1FqNCso9Q2jXS3ix50y78PnTDHXfWAn5fdvWl9b7HD8X10TZbeb40CJP/uJ3ZjVLBP8otCsw9lJni8HbzoSMbsx1ZZhdkM7xaQpLSPpCwSwuaGndY1jx/Z7QQhGZkE/vZINfI2xq4sef7vuXh1Gj2e2b7THmBSePGBoQDXzSAwbk/e22VCFVEcU9z/mt8AC6xBP+V+5asgWqDV+7emxU= 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)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 4:slv8lOlVo0+rOaVkAVDvAIANUyosBmzv59xKVSPJ?= =?us-ascii?Q?Cyeqn7fGtiepYyQoHhWoPqMt5BdLfJo0DhtKhAsXiKKWtHS/kc/PnbfuiWFC?= =?us-ascii?Q?CU0hrFE2UIvO8JRAUydAspYHVp+nSdv7M2ZrvsfgWUiqyL1NUxT7QPwMYX5Z?= =?us-ascii?Q?3hAuwF6AfllVjdJ/mA+xMXJ+i6lpH/6KZmQ7nahRSOAXyXOwSalDkDnQt5yV?= =?us-ascii?Q?58lbrjkVdbcWcPlZ9m7zZAJny3jG/dAxVqSqWe/wKEvLcCE65NGBzvOrlozt?= =?us-ascii?Q?ReVktrF7OPd3Dbf7mnX3qWRSjhDmg8hh5Z8WCfIUEurrhHUeUdT0Mrlqn4Fh?= =?us-ascii?Q?bXcufp4N6D5ZXDUbOntUkHk+8bEvGrRHHrFKwZXdL6qsy4B72pqPKWMKpQjF?= =?us-ascii?Q?uaVWxH2HFJjHV6+aslm5B2DtkAovr7+SMMnaFc0tQB0Pb1rscYtXbEjWtJTV?= =?us-ascii?Q?Ec+jCXfFpIZRw8oKzTpT4zg0ZaKAcSh1ygr/bTaLUmOL2Jyy6RevOqSDFujK?= =?us-ascii?Q?RQ3wy8y9qe2NsowzNP20yKPE/AUA4PbOKyFUY0ABlDEjsQirNbPrlMWhFeVq?= =?us-ascii?Q?XR6ZM8ANADra2gL24gGSwhxcoI/+hVPJ9kVKo8BsWT4jwIOhcxW7K3qms2tK?= =?us-ascii?Q?van1XWqD70lnc9J8FejIdhd78Kvpn7BHZ20EuTF1qQKGGeRVTWuVHenB3t8P?= =?us-ascii?Q?KccKhulkxS2eMtqcu5G0l9p/WQzYFygavT6qdecwH/YSDBHZvpB/xGFQU2M2?= =?us-ascii?Q?WcagBuWUt8mpWL5JzIEARe7exI8ccB69sn6u3twWSlibOoA4NMgXYOOYBKTB?= =?us-ascii?Q?q3M8qXFEP7QewLOhrMS6y2Rd3wulVqmkOxWr5G23El2AY576+dKdg2t8/9pq?= =?us-ascii?Q?u58bVKCU15bAiHCDsyshmrO8MxQ2n4OaG/R16jsWwTnhkCHkZUwYhAWQCiwW?= =?us-ascii?Q?gmgBR5Qyv3nHpSDjSO9vHD8tBPpT4wXeSBjN8nUlcZNob5+pgtLMlwgcZwMR?= =?us-ascii?Q?wBNZxeEs2y4EThGirxWGNG3hUNI/9LsuLah4thiR/0oj5rE0ds5FKRVeY6rl?= =?us-ascii?Q?Qt9XjvA8b4g4fogGJlBS6+Ta++mRBQBAEf0Xy+z4s1rq20FtPpIH/PnasfgD?= =?us-ascii?Q?DFC50Y+o0hSn95eIsy2vKdiXIiz2mU5c9+14IftfD5kiGMcXFT7Ufw=3D=3D?= X-Forefront-PRVS: 0358535363 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39840400002)(39410400002)(39450400003)(4326008)(107886003)(38730400002)(6512007)(42186005)(6486002)(8656002)(6506006)(33646002)(53936002)(25786009)(6116002)(6916009)(1076002)(5003940100001)(3846002)(42882006)(47776003)(2950100002)(478600001)(2906002)(6666003)(66066001)(8676002)(50226002)(48376002)(81166006)(7736002)(110136004)(2361001)(2351001)(5009440100003)(189998001)(5660300001)(305945005)(72206003)(53416004)(50986999)(76176999)(50466002)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:jerin.domain.name; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 23:hW+ia77TVFpzDhNaTy6RkIucn7chUjD3T6pdZPW?= =?us-ascii?Q?G4Q2eAX6X29ORluES4hvntda1pmF2S3smYaaOQZN6A6m+poYoUxdncGdyKA4?= =?us-ascii?Q?ek81FPuvNIlE6FH+GrBzSe0B0OWjpBRg8QWtR5oFSSwaBP6BPpDdor3nNAn1?= =?us-ascii?Q?UGQjsZXGRhWka7YJExuDiBMKBv30gWSmRQKkAqTUdTuadToEZl7J9GhciEgL?= =?us-ascii?Q?ds6LI2vcgQIEJjW04SqJWRz7sZdtyYiMkdHJnoLBA/Z1wT9yS6IZnOwwHl0Z?= =?us-ascii?Q?lsD/yJOBOjhR0HGFkqTC4oGer21QOKM82PJs6jeF3HS7IEvNw3YNSau5qhRs?= =?us-ascii?Q?jJu4TjOu1HmrK00LaIYHUeoLBcip6CxLgF8d4uK5Q/EjVNz8B3qxE4/baj6X?= =?us-ascii?Q?M7laltFVPZ2g+tS0YBWV+OR4mtKxiY26Tc9nargwDN++/fEmK+obED6px3IH?= =?us-ascii?Q?SqfGL3o9oknHEibTp/n/jWOw1gYPPGbDdnNB3HLSIb/eCdlg4sohKz6STAl6?= =?us-ascii?Q?5Z7e53FWNReuXcT8AgWVfVb4ZRTJ+26VNQsQ/doWi1rWR+l4mrsb0uIsP+1P?= =?us-ascii?Q?p8uHA1fAY6FC2HESiDrQeseF/RLUryRESAt8o69bvZUD/NRqjhuU27OXVXdF?= =?us-ascii?Q?RlAKTTatYHeR5I23cV9rBIMN9cbZLHF4KkqtWoGWpepvVvIOCBc3uXFATGpN?= =?us-ascii?Q?HQObI+yZ4t12NOfrb/IJrpaytkkqq641tIAiTXSHHrcRqmd/oFspBMAWAbw7?= =?us-ascii?Q?TzPn2O08/NkBqlrp87QKn/XHyDtGEaF6Qr972sFzlv23CoFqiLoe6IougO7+?= =?us-ascii?Q?YDBARxwOlm72CWp3x4IYOvtz00erCG6pSF6F05UknD9NK49NbTmsz7/5PmHz?= =?us-ascii?Q?Jce+esDhpQt/Li9hL2v/VUV1LozFlsX3KAbMeVVNmrNXr+cXudBABvoYZRPI?= =?us-ascii?Q?4aiUyo+6cGy26WTwfnsdpxOmhJN+3bE5xlZC+pptSG1g5K/t5iPbl26ojWGt?= =?us-ascii?Q?YlMMg2dw+1k7GPc1DsbELXXF5deL8gRr1lotsxBU/W5h+NchWNC1TxV824k0?= =?us-ascii?Q?5dkwKkOZvusFQg5Q7OFUDat+LmwSuT0w7BzqOQtlvTLUrEVgsXNt+f2YSQhV?= =?us-ascii?Q?mVmNoGBbnW3f0I/ojkpZuF3yv1fr+WxZfFwgPDK5KqsnpCKMpXmPF7Y9KS0B?= =?us-ascii?Q?ZuWzf4yEPeyJyOEvIWWoVc7pur6ToVL/fjK2v?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 6:o+QFAp1bNkwI91whpsb+IE4uH/qXUsIfPhZK5DIG?= =?us-ascii?Q?uAif2HKAPR60mZdyiffqxDj5fYDAWIoFBNMoR9iIzT5LnWf+/IXJQRg1uvDq?= =?us-ascii?Q?l1/yiq0MM9til29HMWTodcvQ8l9BUzXzbigR3VJ18ocMx54AHlUNsDZho5nE?= =?us-ascii?Q?xuRbPdJoNPa2gDd2cxQ3K38iO4/bg25InWHNaQhMZoH6ibY/JFYvc6y8ibST?= =?us-ascii?Q?WecWxFMqqv0cBYghX0v3keOhrSJ3BS4N73AyS7ZCdbEw3xwfKU78C47yENxl?= =?us-ascii?Q?jEMFUPww/RpzJXEpO4CvyrYJGL904DOjyjr7REEDMpZ6PwbUyveDohKjMNiu?= =?us-ascii?Q?cynni8XeDhyuRGZGCrLiv5EmHMJti5X95IeiT9JEymmBgAAGEi5kPCHxQvVT?= =?us-ascii?Q?yOZEiU5U5PWdqdcKM3f1GT9Cwl3IZ+OwnnICMEaT0Ht0C6KmAgXBMI9za/qp?= =?us-ascii?Q?307KXCMG4VtaREnMkUPEV3pybaLcgebIsPIs1jWxk1lzfj9QRNHqDPwPUEzw?= =?us-ascii?Q?gIrS4vnksUkke+8VJxeQsD8MHyvChlIScE5u7o4zkjHlzhpu1VOUcEZWGZRU?= =?us-ascii?Q?6ZarBpQsQDt5SqFIGBg8xpeWQPH7dJuw+7msY+bkSJSV2u+eIRm806QBHmHk?= =?us-ascii?Q?zHviV7jsC9ufM0wz2dHFquQxYxhvifqI7l/zGBPJ4P3cLjaLjUSvF8uL0YXR?= =?us-ascii?Q?ATdPC/03MEVAHh2kbpq9M59lutKjLGTUaaATyJ9/rPUxNoRjyPab2elhPWw/?= =?us-ascii?Q?I7ytOrwGxq3PuLtPd+EASaPn32f5UHmUwJtGwMkbCoBnbeNy6HkHSiPNO6uF?= =?us-ascii?Q?i9u2QEPn7Qk880MO0saOEH3bS3i7JGVSBfY+0D54OTuS5/0cnAOiXx1+CNrF?= =?us-ascii?Q?pjFXbzflZ2qPPn9ThskLKmEfXyPxbhMTsm5+hoOVoattwMCExv/njZXwbHuM?= =?us-ascii?Q?CZip9DZuVYAyyqlkTZE5GxkIK2lpxJsApc7J1ck+Xt90HyLk6talv3qgk+wo?= =?us-ascii?Q?W6Q=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 5:1b2LqJ4FaHnB+wF7BmdHDZiaW5ggRY2AjfTDZwREutCjAGfMeCHsrsGrYCquI/C+RcJkB7WhXWg8j70quFiINztAwYwGptvTcrGpiJwK8ECA6nFBSr+AmgXdOWxPJxeF0rjY2NmgGAn7et2QonisL6qpCj78RsuLM3sIIH7PGvTo2tVYsmfjyyZM/5njFAMTOdgJZMKmy7Jyx5HuwRM2+Fs+ki8sx2ya9Z0DBvmpTz1BgUJVEXaIwaExJuxlmcv5WLXXgzPRVSRkR2i4OUr4no4FKBNvmXTpbKYKmtWsTKcB7W2z9RCWYXaEDg2PKD/xDGENCJ07ShXdPo6XitrzcTNQvMpCoT+Ea3znj/4/L4cUt0EVISd1Of4hb+oA4qoYm1ylkCDNr77heuUQFqoOq3AQOoQjZQmU2YsSdCh2c+aWoNPLHplD8bLlMosGljq78kUXoHomDArw5BaGITFy8mPPqedebeUW3qgRH/PjRHaafbHRrDSpi11f7tWNJgl5; 24:EBqe9bfqJgUaLpbXfMlU5dWAI21MHZeyH+/938cd3OY80Pozk+ZWFOmldYjKEM/h5oyOcLDrxOyitnAYUPUxi1W6YiuZ5tisWpg3yueON3k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:Uuh4XjwPF9RD5ZL8qUYjCMNlGnJ93KfeIFIcLBY/qRbzojB8ph1jhkF9PThFb0THEXsWeny+IIYZT/FSyzGqbLSuWF7YRAL69ybdSRCrPkTuAvUhufIt54aI18mltBhin/v/vIQd7qCSBnLsdVMpG3FmuNqjVEH+B2tptW6TW7D7z50AfN6+PRRYydcMyJnRlAv997AXHOwMqeSV/McMqyQAfc+iVmmXw7KcQ+88UP9tiJDkNIpZ3veuYNylifwgLFM/6a1qjgr1qBKg5KM6cMDZ+ZevouuHXhrgqXDrtQhGl9b6hDauD6/bctcvp5krCkEi+SOg2gHCVSX9zavgh9epp2tpxenN1MZY/itrJm9SVEgAu9CoWcZINUYLmVacA8n3rIu6oHqOgb87umW9KmFINXPq45Gx31TWI4FydQWVPhJpqvUcJFp9FBiPS3v4kVxfxOBVCIxhAB70ooMfp3+CuyVU6dCht8TuuWSb+He6Ghb9CYLLf0c2lETOn/jVbuWo/pco0EYHx9kXwVuQ5dB4rdZSxvKnJKK31McF0MQcD9i4V6SoBzLiL0E4s8r56kyzFxnYboPX5tbSSMq0RkCcvJhCJMWA1wxxekgViXsB1vwIYP6iqKyFddzcUtSYVY7nmcgcyHv3FLLwwMn9Ws8zZHjOgxdW4el+8VAqqyuL8peWQh0yE61BUwTlfWZkKEM7IK2Yn4PyLpVtLhYU9hAL0NsTxTGgHPyi1EkofsdCq7OaZkKDaB+6EELN9atv+xbCbyFEjpwM+MlnOKUibTv/ogdjd9Zzm6umbmoKwlc= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 04:55:39.3498 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH v3 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: Tue, 04 Jul 2017 04:55:45 -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