From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0068.outbound.protection.outlook.com [104.47.40.68]) by dpdk.org (Postfix) with ESMTP id BD7C37CBE for ; Tue, 4 Jul 2017 06:55:22 +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=xbE7MKxCBtZF9mjp+bJyPj8BCMen9iV4A8G8uB0Bus4=; b=Ne1QLbOm6sCHs+PUFIMY9jXqiiVGWUOhsqq7dOyjcvvMnOXGJZrSPyAu7kqeUeYU70vVEGxprY/Zew1Mgga4sKKRNaSQ38utCX5tivhkcBlz1KDRIcVQa80Adk59N+J2zuPduPfQftqQZii7SzL5IRFSTww/hGrLVDK9+g68yp4= 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:17 +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:16 +0530 Message-Id: <20170704045329.24711-22-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: f9e80bf2-efab-417f-6266-08d4c298dfa0 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:vke4mAfj5G61qWzcAe1NKh6pEntoqCiWrTClugrkoM8mbiCE+a/aFV7bHwcmCz0AUBzgUK7BypOYrO9bmmh4awdvwmwGNkt9Dq2+n7+RtmpL+okY+5FUifIXE7yh9pKpO3QIRH2aCLHxLyqiruABpLOonDG3mzdDzj62Kv+05YFfShJcYXwfKiz866/UfgST3eZgGJgorV/hIulMgEuS0XF+A4z48HCqSkv5drOWKhAYY/rvQjFDch6jfH94qKRWewEOtH/mLReCrcC15q37dtyMauSXyYsUBrBfNvCkuYxk5yJpLHEBTtFmXFqKqPYk/+VUjM0wUPBqY6oFuL4PP2CrQ5yh1zPo9OvNxauSesNlEG6xSQuDQIefbNQUiGU/PnXGpoke8UozexOpsPDb+g2TytlKBpmucTzw7RJ3VrS8q7wqWbnlUz7PryXcnhopcY5CmaS0vDCt+SEE4deSTKGv7zTOfqZ2CCp1iNJy6nST7hD3EwfIQFMnAbYWsQuNvWX3clv/jKoTW/EunkKHj2odyZ4oFbCvpANOCkLk8lUWrywFFWbzXX4nniLgO6AK3efogwMz6Z76pDgdS/z6i+gTMgiVVZacGnoy9BmXhoyi3LvXmbNc6kmPUsElJF/11HvZfZcjfVlBHIp2o+s9MVKS/FJIC3+xj+f6p6csg9dGFJkO9ISd5nVrCx49s92JMj947NxI4OofmOgLHRPMf01oouGc5nXKXGwN+61q38qQDfJDIu/v7VEcRwIhEy4K X-MS-TrafficTypeDiagnostic: BLUPR0701MB1714: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 25:MBctW5DcYmUCw2D0i1+bKtUVwo2l2ZcdIZMBg8qO34/w1tpIEzIZyiL2jLFpygXBl7RKTnauF9SvBQsdwmM+5HdR3x/320IAY8d1xCwEaKeryK3bMF94TFI7sihWBoChuKai/7cvVwJgHNrQ6Sc0rQbPqC4cdummthynSihRH6KEN/ccIn/rd5viSpnlAE0z+/Jt1IsF2iNJhlCHhy6YDgHBa1Fq/fbS+fZxIdBzNh1W8PM4TB1+jUm2QrKTVgBRVr1o5+2rTAtoDjSpkR0blV5sjoH+V4r5jrystIKWmxP0DMqnM42IffstlViiG0d41cJLNAAd7dD4P4piZwEyuKfzwW/yD4YZQeaIjQ5Wf+URlie9/5jJ2rAmQmAia3AW48Aes8sOsBOipi7oEdOJDqSKqFbvsaXvxxam1dNzI24pgUIdwPXUtzdVdaEuivDGePe4wz5ZzQ+u4PE3+cO8g1ppdLRLQ85H2SaDez5PFfHhsC9nhzFWBRnEDQ8sGmCdArJYAG1D1WV2LwkwzvIou1IjkoaoiNQrLwvW5EdSUdAV/GiML9wgh8IgoGZUxSua1RV/vC7JonlwsJcsPAk8d9JdYmMSgNqVyo0+ib8cywJPNA3AsZqJ3BGhtl5qfEHI34eeN/TAL2eQhxhxF9fzyxK15HSMCd7ANefb9YXnv+3Xk0IWeQOGloqMBb6JreYuXFIZkPDUsZ1H1VVP1sY37FOqY1ZQ5Y5QmnKoatV9PZFe2v5+MscUU5GjswJnbo8VKReHV/YPGr31s/PdYjZyL01+gtZxTxvti6lI+01zc4qyz+7mm5/eJJoi0DZvAcFrtNbSec5q/MWvaNYLmTlB2S7DH26Mijn9eCehm6OaOeWHRRa0WmnoSoeyYWq+veOfJfUx/Q/N9SyA8oP0ChHFZ4Ugls+bSK/ZevT7+IKieLo= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:Bxfs/TKGTuwl1wdUK5DKu9Muj55XmbmM9puUp4o0Kr8eNksxOKSzNRDe50iibEbb1sck9NHYuNZjaycIF2gtautBjhaiv8oik7TYNDOXi1jYdIaArhbEMPHr+1O/BJSEG4w/f89VItg1i8WHTFnBCMjlX6R2/9P8DV2Wkr2ZIDYRg3uhkGbMzKOnYnX+yZrzvVJkykgop62Dzs0Yk4jsI8pbQGHB6IG3eRuIpnAXeFfSRPKOhmz7taIEVvd2IzMxVRDMNLmCcKHZ+DP/3h6JSP78O3Z0ddDnkNNXvNJq2xtnW5nZHLwt3ZJSU1OxjjXaX9oTzYzN+mTtjrNGXRJklUGZ46JgGJVuU5dwVkV0sb6NGsmVOU07/5u1RMqKw8zLdO+pxUMCfEZCfmpz4CmgcAVfiLKjLgaNIV/5M4MWaZkfceAmRAyjvNdS+yOB2dFguOzjMzlxwDyQFdJfXTS+VqksOVwgS/jsgQPQ8kXewjBj+43sfcmHuq69SCRFBfJ5y/JmlFpTy6Ycm51Vv9tFai4KmFg+UW0rtO9qSlQ7DOIV4pXgby6K/RTsYMyGiMqWN89K62wCXyeJy7ErnO6Yu8cVCVb4CSCumD5vzXnO7/HzFGV8x3FxiccNSE3sQjZb4YZsQorWsMkkUJKhZqzL1hP5MOYmdHw37qqmlwi8B08= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 20:yfChWKgi3hgJxj8y4h+ZnU4RhssoFzuHbRMfErL9EKciXtrW++dnwCI/l/7LL78FEkRipnWrZ0D5ce31oLDztjBeoPwIApCNWVtOeWS6ZGEqvGwA7ikBoDBRxIAgUBhsSycx/aqIWBFALBxTYri7X3Uqlh8jrgwyfHnfeGsTQ3POEq4YJ4xgNO+fozqr2zXR74SfgRfGv8zWiaZwtoEhCAfT20GwuMjmmNmZZBosrT8b7Cd/kmr4sAPa4nCVfYme/8edrabHHnhjjNDKwtJN2c5ESYRtDSSkYkkgwyvcAR84y/H6440CqnWXeIrLd3upxxYCcfkTtqOkLFYlaet/bBHwaGrNkliP/xsigry9Hp0CVbOYYRRsgs1Zz6rittunOSRfPpUyHdqtkKaScajD9Y37m4Sk31SE+q03EqJrxUKh1d4SHbQk/9Y1S/if9lC1ChpQJJxO8zi33C1C5j7duD9VDTUYBYhYK/LEejt+REPXOk1qvx9cfYDzZr3R3D4KiZnmDuSvuSMO9IzE8X0T+0COkztYGJLKKZcg53x4Sj2sJ3mwVvrN5Q1R4GFduZtUksL3PbXtKHi+TPcKw2ZMFDuYyWEgxdBb7pdnzKBDArg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699)(247924648384137); 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:saPKDRu7QM2f8jNf1YsvtqohqfXg6Kykkwqbkl1o?= =?us-ascii?Q?hTmgkCy4CEKqjsMh60A47xZa8XgztxQD+YmYbm03VBqTnFMmy+ziFV5XX9zI?= =?us-ascii?Q?Z5FNi34z2Uu6zxO9EU8gquq5hUqSuKbtORY9TjaYgUWSv8qcZtJ6ffiuh9cZ?= =?us-ascii?Q?/md9x5ncqrHvbqJb2XFpa34XI8OxLW5InAa1TrrFGoZC6AeIkhle3jzWRuO4?= =?us-ascii?Q?wSKR/xL2GeqJF7TS94SAFL6PwizKRBtSG6ayC6mYupaYfeHsVBkEOxtH8gPs?= =?us-ascii?Q?zfp0wjdUKkIR4KeoIUstLjTe6LHMlUkTd+4PTIYU9ZmLxe5bpFmNCPod2OPQ?= =?us-ascii?Q?ivIDoKhjLlnFf683ORlHap0BJVMZilzxlIkvRhRXRWAVHm8p3bVm9AGwwHBG?= =?us-ascii?Q?APByxUTFIvwfRFh63Alfwwpx+RuqTl1UdA8KznGvhnHYvTnbCLdNEUuFR0Ni?= =?us-ascii?Q?HT1Pud9YTc96rJg2rXy3xy3CSA8SHmkNaKq57oaTPSmMRnVltAjBV5nw4e3/?= =?us-ascii?Q?tt9nyiXAIpB5WLSE+J2exLsA7zsqY5KIDASjq1PsbmpZt5lJdK3eSGeg9vHF?= =?us-ascii?Q?/pPJulgi8iNB0CWZ6QPzUHsZF1gi6ctGkQEKOjaOb9Kq/h88yWQR23L9p98z?= =?us-ascii?Q?Evp5TOePYTeZeGh1wXtPfG1chnD+xC9iS/Oh5H0kpH7I07ouj4veZ0Vt+OLx?= =?us-ascii?Q?gOt13rK5NQ980Or8Guu5Uis7OOS5cCajU48NNWiPYeqsNIRWboZhPCsS/5Zr?= =?us-ascii?Q?bcTsFwQjGko7+qWYbEC5Xgwububgwo5FqfUz0NHoXjag5zuFzdu861ydhiO6?= =?us-ascii?Q?0e9Xxr5nEF6z11gLwrlFLkd5kg4heTZixSClkxlqJPm1K0/nrLo7x0NIE9/a?= =?us-ascii?Q?YNYVSaWN2iuNcQIHKjDy5ua41qCHTCd99vQvqlxa/SI2EngovmAx2GClJ6aK?= =?us-ascii?Q?yila0QBwh+U+klpwOLdCzl7n//zAVqwsk9Avneud1woXz+4nv5e6nOTgje7Q?= =?us-ascii?Q?91NoGLqBgozx7DPP4IwNOeQ5xbEZ0RIbXBIodvMqgcElpMXrDh1lnbjhQvny?= =?us-ascii?Q?kSd53u8ioeUiEvFb/QZspL1Nvamtt1DB96MUfw1CG6iBl8FhkylWP9ciVeUm?= =?us-ascii?Q?LK72DGuQGRTHdAHGKVPD5yPJpdx9VRAqJ/eR/GmPTvZkmbMORxf3hTcZrXh5?= =?us-ascii?Q?Rs7IDqqGNIlVwaTLOIiqBf+aV/SKGxlS4ljb?= 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)(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:oK8ljN6FZMsv79NRg/Xiw8Zlcv2mjUnPVCNBWGp?= =?us-ascii?Q?0j2FQD2TlHaPxxOLRBRTjsZq6kFwW29lm4BX9GaumLWp8O0HoABu8u2lAIG4?= =?us-ascii?Q?sZwnCcvTp7bH3xFGwROHTfQVLb5lH26W7Q1XeZDVTRnk0eSPU3QMsOlK+dwU?= =?us-ascii?Q?NjVYHe5uVGZYIp0UDGLimyBKOWuvEsB/x4oc3UvcaszZe8hE7jWYidGMBAup?= =?us-ascii?Q?b+3Pnv++Zw/CJwP7kxZvzso+s6QqLLqwafdmaZlDTUWko/8dY7+yJylqQHIq?= =?us-ascii?Q?Vn2FfFWkQLBgigfKNL3jF+9+o1EDfC8P/NC7PClnl4XftbbOpVlhNTusZX6H?= =?us-ascii?Q?t+fUapGxiOMWprzdQ4nbDL4rPvukUUDBtlDcTRsFlJnB1WjDYEH5KCebG/Sw?= =?us-ascii?Q?OisHPEkFMS4jHLKEfdmISiP47eThGnFv/2KX5bZ1U2gcocw8pMjn2zp6SaLz?= =?us-ascii?Q?gfVL7khokhsmwVbbOgIVKbO/VwtipY4x+s46GDU1gpbH2tlQnEuUBnslhMd5?= =?us-ascii?Q?vin/maW/qT1mPt6ddMtDBCT3C5v5JJpX7C25FaKTGU6PS3xnIUDSHAe4cc/W?= =?us-ascii?Q?Jhkx7zwwoy/Vj7josTXQxo4xT/A3cTLaVpB4TSWk3YrrLkwnqind6nIcYfzx?= =?us-ascii?Q?sYm21Kbu5PXOycrkMeXGJZ0Un6Wya2VBc8NB5vKSEpShS8asIKweCJSpuOoJ?= =?us-ascii?Q?D7Tx2ct17MJIfWhHxvWWvBCQpAcN4dNisydSdaTt9Z9tNeKUFELe0A91UkeH?= =?us-ascii?Q?hCmuMzTl6QEY+Zlp07HldO3/i8qnm6uxGym7VO5NMC9LJkXa6AbqdR0i54Kj?= =?us-ascii?Q?UCjuA9XGCXf9O2YmZP+mDLfG+uvhcw7tg/30SaICdM7RpenwlLzV2zfbnldy?= =?us-ascii?Q?uTvC2xthqcMyAsGcnvVfZlih2EFs6t/EzQ7V5gvIQpcfxKqpk7ivUKctVn3A?= =?us-ascii?Q?Yhj+2AjFUT07pxBiJ2P7771yUcX75jdUGWCawrDSnDhhVaT8B/VtYsD3GBMk?= =?us-ascii?Q?it9YVVfp+W+XXK44mrQffcGfYFmsp2KOEKSKbcW76w7Oyd/ZqiEuRSv85czV?= =?us-ascii?Q?R3LannFqm2SvHYBiDeGfUjbZfReCRPZuJE74wkw5LkHduaYkUV5y1a4zltq2?= =?us-ascii?Q?DXK3b49ramPuJNQOoZ4R0FwD32G/0Ahs4gTI2J5tgtSetScqdnJEb+NF7/uc?= =?us-ascii?Q?KfPBXKoMJyCUjRaA=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 6:q/UCwf8/7jVHW9DCyV/m/o9l2kCymVXNGDF4STwH?= =?us-ascii?Q?ILAAXVfStzq3JRNLjiQ8L6qm5g1DHzewymEWp3fUFNGYkjQa3y93AaXr3nKL?= =?us-ascii?Q?tS92SmCjD9RIRJotyuQyg0/w9r11SKaLRq79dB3dmWZ828ggZTYLY6KSHzeV?= =?us-ascii?Q?eYXUctQQl1/JXEQidc4UcdXzzFimGibPBL5d/Wc7MhCGjMsa6ncWfTRxjVlw?= =?us-ascii?Q?SIonKq/C5Vb+rC8dysE/FJ5eUyCXwWTp69kDZYYO8rqDCzuQGbD4b1su+ZBm?= =?us-ascii?Q?sWVGbUPmmHsvmUenoMhM3qi11If7UrC11uym/t3KducYaQ/NBVIleEnp/9me?= =?us-ascii?Q?TC5pTZ1R4RDlFPYzoEl0rzcK9gKlH98l1QozGqmlRzTpM84GGK+LNemtUk9q?= =?us-ascii?Q?kh75Pu4XgoA0VHc2ypCNAR4PszhG3vdQwnCraSUPyh8junfMnbIKal/gUXKE?= =?us-ascii?Q?1ukH994m6zdTsGQhlkYujZ0Hzy/2FrvKfK3cDuOlNQy2lZzAprpoBDWFrG71?= =?us-ascii?Q?3ZJiuWvA1o/QyhSwHCk/mDObUIjjly7+l5r+uKowh8LHPveyG1N73ss0CeP9?= =?us-ascii?Q?K903ohcKRhBV/Dh0y8lkyFAq65ZtuwkbVuKce4OT2c2Rx1yOuiw7dhI1qIbC?= =?us-ascii?Q?hZsrT/DgNWpyjsoi1/uiFlXIE4IQv6W862V3c3CnxXMKDEgzpagPMXbI9hxb?= =?us-ascii?Q?q0qwctN9uWgsMFAiIQFdQfRq+TIumMMG3mHOisbhQ5a9whpK3ENSGC5wl9AL?= =?us-ascii?Q?RPftggl5gkfjrL9GT8yAFAdE7d+zkl6GfRQ7Acyo4PotENCncyH2wo103gdF?= =?us-ascii?Q?zJ/vbT5Hx16EfKFJPIwUPQGE2yP7q2MOmZjLq5iNSy/iBsfTbfK9qbveT/xH?= =?us-ascii?Q?M8HPHaN/jEPtQdeX/EONxZIrv5XUyKBZT3hpjblKUvk/V4sichTeC9ErFg69?= =?us-ascii?Q?RrPYbktV8NEMCgro2kfDVPhvKFbKokrW2CzWXvGErb6q3+1d373pCzJHO48m?= =?us-ascii?Q?dMM=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 5:fJGO8RqOHUkCpOY27ZJ2yEpGzpksrhsQRLhSKKrYfr5fSHEsLpkq0zolshviWa6BNl9bzdTSPbfs0ki1iY/L9psWe5vUcg4473GHoSgdxXfk94FDmg1DIyYU44i7JoL9/IOyQctXiyw9H1ZFEFrGzjgzTEe+uaIT1mi5Qc5FUkymJXWVIksOHQ7/dHoptR/Q08uviKtlljtOw7fcHFfuZwBcQZZ+OnYZWsQsVilqBhoyKyd9vl9FD+0M9Wrn+N7K/3QgLbLcdUYJsNu91h4RLrV7s/AUwpIOAvn9stGT+cdExSsJ6oXtiyvAruN5K2ZEFH2peR5+iRo8dyAtY/OvyPt8dPjuZXM++vXO+SntVKe9h6//GX/aARbZ1DIS7GQIFTs1fQRkIY01saqhrE+FaNLaZBwH7H7dzraHVHrWEG90VS+IQEFERUNxqUaOZXLgQpO7p/HpvlpisZ7WFYTglKotAF5iR1U8cz6Kdi1YvIbmCfQWemJm2PtW5SsdlQI7; 24:WYq4pM6BF2z90jJmZ5Pubo+/xK3oyPt91y/A0jotE/SKxbY76sbifv3f+Yw/GFlyVKPI9OmTdjrwjRb0fldFxAIR115Svu2Rd90g+cRZFLU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:xwpEbTfvL6NEIcW68K7+BCOwOM2zTffQdV7UdDDwVr0LqPsu2jbYL21znpxYetw2efN+ZfumR44uhTGm8S+YPTh4c/qU9k/Pa7Evf1JHKlVY1oz1aQ+3MOxl36keWerNnfzj1Bh2vGXrVltE5afHLiHNt60PHL0wV/mTnXW+17GDMvt9wR+/umUWutcYgojRJOiWDd9Jzn2mt2AbbzoaBBhC1KGtooQUYGRUgA1+ogS26t5bpR9Erc7+LVRJnwvkAAnR2vWa5oY3DOPmNve6zSsdlr/MqM+LDAFd4uEtBfzI/9aCDRXR8ou9cxED/TfzJKQW4Fu5d3znO2MjHQbhVpj35jgnyW2hBLJIzm8wSV3Ag3UKJjeJGL8X1RA/UWsQm9ttUSH4ccb+UWJxrwX3xBh+XrFBDoaxQ1TikWRB6SuNmUL36WoNfKw6W5pgXnXCnKwCFntp6RQ6nzOkJ+Zgc6H26ma4PiszlJQfayVGcYFjE5Lbh1SjiIKehYxUSsL9a/zT58us6hszLoXJ5Pz7sWmO1ql/CUFb1Df1VRF+sTwciglLYy9NkCret67dQoEI78xUQFalssd3wpHSC6CWn7+3BDHuiIXeR0hzhWTtDrDIg4RdRqDbakezguQj/q21S4XyEQ2o7C+vwxYmQiqPUvuwwNPv5GRMgvEdf/rAYc0+88WS46Ip9Obh18ezSjIhbFt8o8OWuLDMfmeRtcAve4UvsEWzcvt8FRaX2lIWiin0TOs34gIxb4gD9d6SghTZxDvKnJcb9zgumqC8AEhrnRvtEhpPrRpp63Xrs2wyhKM= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 04:55:17.8252 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH v3 21/34] app/testeventdev: perf: add opt dump and check functions 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:23 -0000 Signed-off-by: Jerin Jacob Acked-by: Harry van Haaren --- app/test-eventdev/test_perf_common.c | 109 +++++++++++++++++++++++++++++++++++ app/test-eventdev/test_perf_common.h | 9 +++ 2 files changed, 118 insertions(+) diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index a44f2df5c..f889b1a59 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -41,6 +41,115 @@ perf_test_result(struct evt_test *test, struct evt_options *opt) return t->result; } +int +perf_opt_check(struct evt_options *opt, uint64_t nb_queues) +{ + unsigned int lcores; + bool need_slcore = !evt_has_distributed_sched(opt->dev_id); + + /* N producer + N worker + 1 scheduler(based on dev capa) + 1 master */ + lcores = need_slcore ? 4 : 3; + + if (rte_lcore_count() < lcores) { + evt_err("test need minimum %d lcores", lcores); + return -1; + } + + /* Validate worker lcores */ + if (evt_lcores_has_overlap(opt->wlcores, rte_get_master_lcore())) { + evt_err("worker lcores overlaps with master lcore"); + return -1; + } + if (need_slcore && evt_lcores_has_overlap(opt->wlcores, opt->slcore)) { + evt_err("worker lcores overlaps with scheduler lcore"); + return -1; + } + if (evt_lcores_has_overlap_multi(opt->wlcores, opt->plcores)) { + evt_err("worker lcores overlaps producer lcores"); + return -1; + } + if (evt_has_disabled_lcore(opt->wlcores)) { + evt_err("one or more workers lcores are not enabled"); + return -1; + } + if (!evt_has_active_lcore(opt->wlcores)) { + evt_err("minimum one worker is required"); + return -1; + } + + /* Validate producer lcores */ + if (evt_lcores_has_overlap(opt->plcores, rte_get_master_lcore())) { + evt_err("producer lcores overlaps with master lcore"); + return -1; + } + if (need_slcore && evt_lcores_has_overlap(opt->plcores, opt->slcore)) { + evt_err("producer lcores overlaps with scheduler lcore"); + return -1; + } + if (evt_has_disabled_lcore(opt->plcores)) { + evt_err("one or more producer lcores are not enabled"); + return -1; + } + if (!evt_has_active_lcore(opt->plcores)) { + evt_err("minimum one producer is required"); + return -1; + } + + /* Validate scheduler lcore */ + if (!evt_has_distributed_sched(opt->dev_id) && + opt->slcore == (int)rte_get_master_lcore()) { + evt_err("scheduler lcore and master lcore should be different"); + return -1; + } + if (need_slcore && !rte_lcore_is_enabled(opt->slcore)) { + evt_err("scheduler lcore is not enabled"); + return -1; + } + + if (evt_has_invalid_stage(opt)) + return -1; + + if (evt_has_invalid_sched_type(opt)) + return -1; + + if (nb_queues > EVT_MAX_QUEUES) { + evt_err("number of queues exceeds %d", EVT_MAX_QUEUES); + return -1; + } + if (perf_nb_event_ports(opt) > EVT_MAX_PORTS) { + evt_err("number of ports exceeds %d", EVT_MAX_PORTS); + return -1; + } + + /* Fixups */ + if (opt->nb_stages == 1 && opt->fwd_latency) { + evt_info("fwd_latency is valid when nb_stages > 1, disabling"); + opt->fwd_latency = 0; + } + if (opt->fwd_latency && !opt->q_priority) { + evt_info("enabled queue priority for latency measurement"); + opt->q_priority = 1; + } + + return 0; +} + +void +perf_opt_dump(struct evt_options *opt, uint8_t nb_queues) +{ + evt_dump("nb_prod_lcores", "%d", evt_nr_active_lcores(opt->plcores)); + evt_dump_producer_lcores(opt); + evt_dump("nb_worker_lcores", "%d", evt_nr_active_lcores(opt->wlcores)); + evt_dump_worker_lcores(opt); + if (!evt_has_distributed_sched(opt->dev_id)) + evt_dump_scheduler_lcore(opt); + evt_dump_nb_stages(opt); + evt_dump("nb_evdev_ports", "%d", perf_nb_event_ports(opt)); + evt_dump("nb_evdev_queues", "%d", nb_queues); + evt_dump_queue_priority(opt); + evt_dump_sched_type_list(opt); +} + void perf_eventdev_destroy(struct evt_test *test, struct evt_options *opt) { diff --git a/app/test-eventdev/test_perf_common.h b/app/test-eventdev/test_perf_common.h index 442ec99b8..5c56766e5 100644 --- a/app/test-eventdev/test_perf_common.h +++ b/app/test-eventdev/test_perf_common.h @@ -86,9 +86,18 @@ struct perf_elt { uint64_t timestamp; } __rte_cache_aligned; +static inline int +perf_nb_event_ports(struct evt_options *opt) +{ + return evt_nr_active_lcores(opt->wlcores) + + evt_nr_active_lcores(opt->plcores); +} + int perf_test_result(struct evt_test *test, struct evt_options *opt); +int perf_opt_check(struct evt_options *opt, uint64_t nb_queues); int perf_test_setup(struct evt_test *test, struct evt_options *opt); int perf_mempool_setup(struct evt_test *test, struct evt_options *opt); +void perf_opt_dump(struct evt_options *opt, uint8_t nb_queues); void perf_test_destroy(struct evt_test *test, struct evt_options *opt); void perf_eventdev_destroy(struct evt_test *test, struct evt_options *opt); void perf_mempool_destroy(struct evt_test *test, struct evt_options *opt); -- 2.13.2