From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0069.outbound.protection.outlook.com [104.47.41.69]) by dpdk.org (Postfix) with ESMTP id D62277CDB for ; Mon, 3 Jul 2017 21:16:03 +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=lnlvikdhBmE+8ZCwiBO11bjBggonuRfLmZazRVER5qpkevBBKhbN8AojFN0gfsFpruY/5yYrNLG9sxczYUwP+XInbsskqzWzS2MhI/5fsuE9PcAZja/97VdKZTgt/PpdeViJBlHaAgUiRZuxhbRCkxDCKyuIn0O0/9TTpU/1tdg= 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:15:59 +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:49 +0530 Message-Id: <20170703191402.3638-22-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: b3d61d42-80b5-4201-70e7-08d4c247f22b 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:j0LjLA4edECRmMvsaas4km1ewAYHTYZjsQDxiSFVnVtxZjBX8FOLmqGuZe8dsrFId8vRLfGQUzMe1efOgb8WPFJq9zVf61DJewW00icjonUjztmf6gFirU2tg1HRDIRRsgwLa6Gnae1QYq7Z8bmY2J8qaEQkJdloRT552Q5vzPuyz+2b1Dj1XXbBjoYnX9AxK/fFTpalUy8h+mZtx39k0W7nC9niL4ItmJLcVbeAISn2y/JQc9GMQrR+W7KynR/KUx7jArUGHiCA7Mnd6EpSwL/MNEtHQWSQnjmZPu9lwE8otJF0DDBBczWVIm9jCzfVK3p6pUkzI3HKdoZ96XbG5PGrK76mGmmI3YC9807B+7EZXh7aF5sxQ8mlBqbwIO5N6fSXmxnrt7QABaa/eQNvE99CqT25xeZJJ2jX9qiHDHkUtSZG8pVT9T/G6yAAA0mVKk/XEfmtTg3YnrBpn1PODCMjO9zI0aOkUYNgHL3czeFVVvU3ZkFfni5NnCgk8LFLTTZJ34+K3xlovalUdoyioOvUT+0zmYOOaYD1zcoCHT5++rwEerb2t+IZa4dDZZtrfA4oGyPa8iW3Wp+iC5BkBRJSxTuvLBdq0uoUlAN4HosFcFzhqplCrjxeW74zq2ckyB9Somyt4LVSPUwbGjVCFjQmu6Jp0Vm6dVr+o06ZvIj/uiN83FOGQbpCC2/l6qvgHCxDr0pS+5xU0D7oIExvG52B9IWOO3SPFFkb+3gUEzHWD7YAulcW/kjiMiOf6p/c X-MS-TrafficTypeDiagnostic: BLUPR0701MB1716: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 25:JFcn2TXWk6c+NdS/IqVvehefpa73YN5Rsgwa+IUsBWFY1fq0ojZ/4JSO8T410i4tE6UBHjiyerZi2iCR5ZjN3VzdEycmJqhaO+FSf79iyaPojAM31PI42I48cDaokgSt+2OmVh9aiyoyHcI5aw9128r+egBbjiNkpBkZdFmj1vw0nv/BZ/59jvPhtr4oxrVK+qtwbYvnYvxFUVMf7I2uo/mq+/Ev+80oG2mfFOW2X/7pINUay9LKnuh6SmyH/Uv0z8ReDBBeai70J8996OlhU7dCeQxJ9KYxx9szDKU4mV5EbJSBgawfXZmYyQCHt2IeDfUp1BQykB06WEnfz3zvzE8D7rui2xeaqQ3MUi0S2SmP/492pt4wz7alhuBmw0IJE8QEtRcTF9vVTS318xpLAbCIookCEApdC2gdSN/Ub6/nvd0p3Ng7voi5Bk1rt+J9jde5dx6rnUMkuj8MZXXZHF5oAb1lAsk3ygsLP9vLRaCDsQf8wAsA81cX/9EyyReK8DBevwCyUooiHuLSnBFMZ2+O0Sib6exOS9ZFX74i9OEU58/rtIevUWeDDBJVKBJfDnh+Rn4HcESz0P4Y037/uWo8Yk+rEwxEgjZhjw6lHR4QpYr0vWqsnb0GiZiacp8P4JjRa9YnjPU4DbZfnmhXYREsapfHqSVrC+Nbdi56MZKcNWEtF8thNUUEDf9948iF1WDUp/RRsu5B0hwBUAnpjhsS6/lN3e1Pc7Z3/xyh5tU3ahaV58j5fuCq1nyNEt5eIIqRCL/U+imdYhsim3CP4lPIHB8MbByYrYVeYeGQVevp8Ffr8HpAGelpXKJfaLOHGQt5FI6oE+f+8asWS5nV6LCRxBYN/OZpMaTP0fasXD5YsKS+N84r5BQUI5VhL2yxMinxfjoiege66exIlxz9WYRDJ1ch04J4AHb/oyHmU6k= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 31:WhihVFNEnJkyRqU6LYdEpXfpM61tGai0SqHrKjOq9xUvydlFsnC4oO33snoo/sfvVk+SyDf9Mng5Ifa2J0kW16v7jo4q/2pweFvpLHNlbhrN8R+vtB76gyk/bQOWIUmPnx2js3mhGP2ZFilAEfvXSzIAR374xogApxzJp41P999glMGeiY56uhrwReLKTEnK0PMccnIEczhPLfFM0e6KRu4uBIl+Kzi3pdpQFjrxeDkyXJBygrcr65vcaYU4OKbu/GRUzAgVNWTAqQ/PKEP6Cd5r875GA72b5CvXzJt676U2zXHT9/eRJRhk9j8xVDc4HDxH/h3g2E2hjdjcxNtjHG7yy5SW0owjPaRr930aOt80ElGXqd147ss2BqedhZRjrzF/7oWHj+1lUeB3nZoNx4E0pt7FtCh5QdAzY1pIMa4ky71KifOX9mB1ZpVNVqxIHtkZMbOuaNBErYKKlbS1jyFBkv3mfROnRrhAEGmqa+rixdDUY5wg0mia4MlrNt/yY88EdK3yIHrTgxgDrHwKopTSP/Odlnti1rX5tXpnSktPzyRgEFv69p8HMrWCwc75sN6gJWg3DIPUhzO2ersryr1vnAgY3qHWDOiDRzZPvsXhi07vur9sR3h3XmqUl+xIr/bixZJMaq4KauiYZPdVpP9gSOSBYNko5MMFqLscCUA= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 20:vdguJgVzzOPAyPJoLgAMaDU78W48gVjCGTzsrjScuYUl8+MyZlYdl1vKwOZDkZN87n9kwDZwj+cJ/6HQiJTI1im/lT3BWxnM7aUElWDoYWn823m/iuY3xCkMRKM4sIp7Kk0C1e8Dq+ctmBulKqUNXMAUHv1b5EMmYvXX7KlGaW0tIV/xjcvqUh37pPFp6RgH/6mIGEMOv3aJQd/7osCAUTihHCnActaINzY0odo8eRJz10DcTCZcv287lNs/tIzRSas9g2JPGV/dU/03BSj5eaY6hLsGfOSD4DET3bfYx4i09IrcblrO/NdyCLgpv4bPxq2uU8bsLyNYi5f4AOzrAN9+ItDMUn4fmuUYKQ6vjeAN7ZdC/TUN6rQCFCaLV2PDNNyhMsgMGZ7PjxxlhDuHpyXx6kivbO3p3nkAqJPNkPUisJREQgRu536kXL8c1rLbELwrF1k2UxPEULjcD75JOp7kFNXrfQyL5EnEbIbSqZfE5KRDDxtDTKGrDoqCXiqmpFwUg0EKlRHRDlkmR2alXd7eMwaP9vgqLQ96JPSgpZoug6ZAR/V7Kc9Wjd7ys828DGtkwQffIEcJhimxzXFAum4sm0zeESrp6IiX/lQrRnY= 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)(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:QtrXYavF0yZzyslP+ZWpzuhGNDRPt7KGEKNRjKxE?= =?us-ascii?Q?f+i7dn/54dPy6UJkGMTTNMgkjJPRESQpmKZO2QrxIldIazfnH/qJHP9Ynfm5?= =?us-ascii?Q?cd+37EZKVefYJEFEFyNoz38RQ5XTM/Ec3W3u4M3w3SFJK8/8VnXua9gL7sNL?= =?us-ascii?Q?VzcpjFrNyheoeI7W1XSK2MLeRjQL7mslRoMfE1Ueg1ZxjlSSA2IBG+DUsL9o?= =?us-ascii?Q?ioxogaKKcDStBRhvFApr2MROhiXqaNt2RmVjZ8sPFzypQV+56mxBvzXi58O9?= =?us-ascii?Q?Crie2JYp82jyzV8BjC63iCcYQf8Z8G+EkI0t6O+PIDr2dyfQShpGUcCED26L?= =?us-ascii?Q?PB5b6reCqz1FFg+Ghbzcd8qyYW/TNmKE5Ki36/+gfA35FgdKRURCs9UdhNJn?= =?us-ascii?Q?dPRZH3MNELa4mHl3XdkFfBGAWQ//kUxph1i6tB2fSf128L6A3qTRWVudg4ZZ?= =?us-ascii?Q?xlVGAfPjGr7Maf0/qBM+UpJPuyhtALZH4yfgZDbn4oc0DHhW5DsgRcsZdVMd?= =?us-ascii?Q?0pCQNyqfxZzyGItSOHG9O3ktuM9ea+NJTjaeAZdgLl+iidE7OtK6fiQeaLnc?= =?us-ascii?Q?u1n7U1ii4LBQBnEi9b22uBOYaisybDk4XIEVpP4uxAJkftOSxr8lphL2Gi3H?= =?us-ascii?Q?XufbHBJp2RO3LS0Ig4ho4M9E4ylcu3pq/bI/sDHJM3Qa+mfDok44rLDGTN4c?= =?us-ascii?Q?aqaZwQ+qv4P4Nh1V3aDvj6+1gXbrBFg8bC6tTeUm/SZy5NoEN9QNsyZyzKbs?= =?us-ascii?Q?lwpUciVXk2GGOt/yyxW+l9URejl66mZWKUFYq2VpJCyCe7W4G/z1dNjN7OUe?= =?us-ascii?Q?8O6jzTl70swfb/WU0sQ7PTcrus4Q0zORzM7Rxsou22JW+1Pl9nwnEOz+Ut1h?= =?us-ascii?Q?sV1VrFO0N6CMU95E3/h6WG64T+IVvZ9prxgPxSPQ20uU7qhfHLnPonoN++aR?= =?us-ascii?Q?J7qin3b3CDFh29Dqehi2GlUZ5EXbBWivUvkP4Ev4yn+R3/ffUkUxGOyH+K7A?= =?us-ascii?Q?l2mE6nH/mivZ+ZuiQUOjgqwAihVD2rxFCFrYjHdG9dTsf2bheNmzMGtV5mWT?= =?us-ascii?Q?XZl7i4MEzqY5wKrDT9QzJx/FFT6qj8du0l9ecSZCdbIrrhakdrkb53afPWKn?= =?us-ascii?Q?kHvHIA4Bd+M2adW/Qo3MlGt/RXXmbaSwj3L37wKDJi1K4Fs4hyBG5rBeWAdd?= =?us-ascii?Q?2/G++cS7pN8F06mud2uZjXljE975YERkmTBr?= 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:rs6AN5R2i9ktI3ETaElh/vYOdcmGimgZhq0Ok7j?= =?us-ascii?Q?gEgxAfUo3VSkzqH85iysSLXNazcYG5S+XAs0SkWEUy41RQPhuxxyyopy6oQM?= =?us-ascii?Q?fUneD/wQ9y4nEHWvwbINA26UqBji6tRit/SCAkmA9NBZF4bBzM3KVnXLeDmD?= =?us-ascii?Q?VEIFTk8U5mH+MiOyDq11oqJV7qPuBYrVxd63QI+kSYSMOZPTfHWmrO4sIGDE?= =?us-ascii?Q?osdrzzDxto0PVCFIBRmtivN5MNJx9u9bCqA24WGJye66AlNTtmPeSTAAyQN7?= =?us-ascii?Q?slalqj6A5v8kmMUEgMjmvAi14JKmPdL8NLN7H3LOMfmv8hRrRL62BuQctaSM?= =?us-ascii?Q?oh6Y/rEgmnpU1MiG5jhlmnsrS4xfe0h9lyzu3WU0a2lZwtPIcMWpnsczgXFf?= =?us-ascii?Q?BnT3fqUVtY5L3o9+gz4SNt6ryLcyGHIy82SjIhjFIOtlflpYjr+E+oHBkN0y?= =?us-ascii?Q?YGMxMhwCkiCGiwTqJlu0Gfb1PtzmfXhztOpL1KUyuyqMGO+J2/j7ExC1h2U8?= =?us-ascii?Q?/hbxmmey6slF+44fKEhmUNlcTSw2CjdmGc52wuU8HDtLNRaCNaZCL5mVcYEw?= =?us-ascii?Q?UkS/8hO/rOxjJCNDTfNuizJfIfRtaWkNAEuprcoofR4Jum+K2VBCl4BPAvvV?= =?us-ascii?Q?YBUHL1R4qKsOGPf//WgMnktWar4bvRDnFyjM8BYKAEUtuDViHWtoCDMYjH0w?= =?us-ascii?Q?dSZGcLfUbUbldW8CMWawmTT7YFghKj5ZYPbW442NlvRKI39cRFR5HTLcWkhc?= =?us-ascii?Q?AS9oED26n9nROtbCQTkS7eBSPJCxyzPIzfPjpGpdKGN24WMVaINNOFGXJhQa?= =?us-ascii?Q?bTvZLPe5UScHMuOA0wbGFgBpAn5bE/WUQrrlCl3ykDkW8ixW/XBTcUOZ3n2C?= =?us-ascii?Q?x/VB6FrjUPdz6UgtutZldlQzlf/UJFlBl8/+fTEEf27n7tEMFxJ6kNBpfug5?= =?us-ascii?Q?3qyK7IyFrrJBMBTkgk1dC/mpESrcXLd4TOY5xufyZtpaq3FhyM5eo3fvFGRa?= =?us-ascii?Q?SsHXWFnfl1k9Y6DFoGWDFIWI9Vkz4Glt7FCrvLl9P+aFbgV1p1oTt2ApP8OV?= =?us-ascii?Q?5Wbng1ksTkbD9dgGLmKmztWN8KLyU/+x8HSfJACWA351MyHZELX3eNon7isJ?= =?us-ascii?Q?aKOL+m9U9ozOhL02EobHXfWAwFG8k1T7moB+EI9vpfUHSHFKB08LYlw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1716; 6:7fEVUJScyESC5lCZe00xOkKputM7MMUTJDHL33iA?= =?us-ascii?Q?4owLAwsNiVRZ7S2lB3Z2XDMeGD7I8yhcZduzbhqZmNcoFwVf/ChoapytFJ0o?= =?us-ascii?Q?p/kxqMLEL3M1TbF4IKPHCALMoaU20F5RIBwh6ixXD5YhtpiP2iYrlS/kYfZf?= =?us-ascii?Q?TAvNqGcjQt19O1b+tHnWY3pm1RmgLo38oeBt+YspacZxlSnfCufgmh0Bm+yA?= =?us-ascii?Q?0zegRVL76xfYkZjJi1X/7L3OLKoZH7kJOHC36JIeL9fKC2nMvWFgL5CYxQvc?= =?us-ascii?Q?0pDn8Yuwt5aFwYsy0O6hY6D2Tdtp0zaKm36VdgA6/EejthvaFJtZzijy16U7?= =?us-ascii?Q?SWHVmAtcmrt8xF5mRdw6obKEGWg9C4ltwReqLOOOr1PBH05mxCnORSWnlfSf?= =?us-ascii?Q?DWyh3i3R+LI+KwbWE5Mv5mWsonVbsfbBNdhixGSQMIuHImviLdE+3MElp36F?= =?us-ascii?Q?PfhLgj1UHSfLmiTLbYRdsly4tqiyco9UFpdWiG1XNrpDhGNfhVx42o2lktcz?= =?us-ascii?Q?Cm1eLmFlaL+kLeVJ9MthXPnGQ1ZZOVQ4zCFB9tpd7yJrN1bv4/29ZXI688o1?= =?us-ascii?Q?fI75zh5kGLzApbtwTdDxeAYtpEhRq4VLQcMQxKLmlXGvxe60eJd6Y2wANCuA?= =?us-ascii?Q?hZ1J64/t6YZPu7EcmCX28zGOxO2bI0aHMZMStci8f2ytQzXdZ1mT0pIGxCfh?= =?us-ascii?Q?DeXbMhdx8ZI6D5wHSIbDC0oBEzAkwBYRW7/+FDBf96gctxoNMIX/cSTsS9zp?= =?us-ascii?Q?JW5MC/EuzSWV6HRYxOT7pgCsjDZS1HaYS55OM1ZhGMPcJLDu20AGwtQJn4Nf?= =?us-ascii?Q?NJ//c0jfBDSwBDB6AQX6Tn1UZ8t0R7aWjn6YOIFBcYkTg+MN93D00nu5NFmq?= =?us-ascii?Q?00du/CN+Tjivjbbu5Uhb0tu8iTsJ9Sy9xkkwkTO+G/DCCABa1CAeFMBjas+V?= =?us-ascii?Q?agJsXUzEz4zvNTGSZAJp73gBsd+NoOHIWtmQ8QDx1esGNnYEetWp7d3uk3HJ?= =?us-ascii?Q?XkE=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 5:wzehl3fSGUThrKaygtOptLmcThQ6OcH7DpIMeF5SHQ0QfLNxwngch+rayIAr6DAAqIP/WnYbnsviAcJ61KSXKxJlf0u0Z3ERfSqBBB1hj2tNK84BR5ysIWhB+eszBXAhkgzdVXW2xoT7qw0REqvAs08uqAcFWHVilQljSemE8jCZ4O5xkas3xwyFRVD0SozYsAaHutDhlC2FOZXkieU1s1QNLwSp0Ad5dAV3AGaHirB8YKcWB5j3oWQKjsbSOUXDec0pn/E50E1pIGDmeFhj01yNgoLsiA2Ju8ifvYa2Y7H/DXaDzuScheWoV7U1IVFnrqr4c7ST745BiV7ZG0jZWhvyoLOFoFfJtwvjyoVxaIQffqqnKHX5Xod+VP6kQxphzpuDkKh3rhKJV5ydU+mTJbpt9xbBbb+aPGSVxJDHDGCa2q4V9VbHYIJq9rUkjN4uIWWjWtT4hyk6+APgePQ7UZCTSIz8DUF5ViFSgP0ihE4JPdg2yrMAtk/qY9Ib4igh; 24:HJRpR793oereHWO4sHvWOj8cTcZtZiQrJ4Iz/p6YRKVR4Be3lzuCAalUEGpGMYssEy0qW3Lw9Bee0LqOwQWxic6ENNIGuuQLGppxA2PttcY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1716; 7:58yapm7kyZJGuJdZ9LVRuYAosCp4jAq29sGtxzlqdqTUQEygUxLkaSley1l44O/d+1VFPmd3CSm0ih67XygD0xKztNY7kX6HwL5k1VNeBEHwIZcxhIBJMum2zrcu4ANTIamTyq8kylplyNGqQWTJ50HjCAP8ElGaAjx2HPc+IQfxxZqd0hzH2ZpV7xdNwzcKjEE/KFikIokUvyRxngD3F4SwOjptV7SlCBPWdjDG7MKTBCwD42c3cC+OAcmtCXGqfN4NL9HcrLD6Gs2CwN/qwxLwdjYALAEO3bCpndTN9cpipBOfubijxLsKSC9DS0gDnWs2P/SRxXJJ+1S1xlHcw5/yhH1A3ht9JfNFtegENX39cs0C0c1vAiluZR+IBB2AQ7yizpbJ4Zw3ILG1i/sFUIQgpNddl+GxLGnF3KuRZeYQdK+3AoiiNIP20cCoGD7geSYP+I8onCzkmiICYidCgG+jk8w7zl+6FAH63GdXRGskkne0UvVbe3djjFX4zhE3L+ofyEG/of2Zz90n1SO98sSPi1MP/3oInV7C/3yxAzi8xB+9xpgUYxIvTrCw+wR31jfowN5or5Qv40P5V+eTYv1LJC7i8DOsOYf1HkZ6+7rBeIXgPjXfaJ0gqOqMyEK3jHhq+2tEtvL+KtsOCfm+xDM3SbpnNgxHFw70HISgYX0guv14v0gWhsKdYYkMzEda9j8wZLWmI2H6Fy7NrghWpNjI8nACFp07OJ8yrpkQCqW5rDW1Ouknbs7LadgDy2m3sSg4IOiAApun8/oV/YX3aTLMD7DXuV3YYvRl837EHEg= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2017 19:15:59.2480 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1716 Subject: [dpdk-dev] [PATCH v2 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: Mon, 03 Jul 2017 19:16:04 -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