From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0062.outbound.protection.outlook.com [104.47.42.62]) by dpdk.org (Postfix) with ESMTP id 80CDB2C72 for ; Tue, 4 Jul 2017 10:22:57 +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=W5bU367aDpVYLSe20mCkKojakD6quQyh3RL96iUNZEs=; b=k6rnnc2wMZ4r+hHvXZWfjBtawc9QkQ9fctyLcH9zW1Hki/y659M4Ev9I0acWM/oEAWehxUEeEL0Nxtl9udr3fM4Zmg/qdEKa+2Kr3MIThs2EJ9qc0QObJ1DXVTfWiW86NAa4xVGwBp0SbAJkqoXDF1tHRv0zh+MPYCVoYXjt+70= Authentication-Results: caviumnetworks.com; dkim=none (message not signed) header.d=none;caviumnetworks.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from 1scrb-1.caveonetworks.com (50.233.148.156) by CY4PR07MB3063.namprd07.prod.outlook.com (10.172.116.144) 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 08:22:54 +0000 From: Ashwin Sekhar T K To: jerin.jacob@caviumnetworks.com, john.mcnamara@intel.com, jianbo.liu@linaro.org, tim.odriscoll@intel.com Cc: dev@dpdk.org, Ashwin Sekhar T K Date: Tue, 4 Jul 2017 01:22:41 -0700 Message-Id: <20170704082241.29217-3-ashwin.sekhar@caviumnetworks.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170704082241.29217-1-ashwin.sekhar@caviumnetworks.com> References: <20170517181949.12002-1-ashwin.sekhar@caviumnetworks.com> <20170704082241.29217-1-ashwin.sekhar@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: BN6PR13CA0044.namprd13.prod.outlook.com (10.171.172.30) To CY4PR07MB3063.namprd07.prod.outlook.com (10.172.116.144) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4961e4f6-6688-47e1-e61c-08d4c2b5df35 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:CY4PR07MB3063; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3063; 3:+QpGkvKylo34EHlupuMR2R0UUlCbxP+vjvqzkw8F2bWzn+UiVYBw+KR6HZlCoYMJwxbN9petkWnty8AMcqpjWcR2WyD5XSl/6icLbELEZE7Rp3y74NVuHesJnnLiVlHxljGWIbOK9RYYJDnXKljgDv8Y10+qOOrjDrY3tMz5YHv6MRib6XZOByls4Fad0KYTklZbn68RR1yfZU3n6pqZllhgGqRrEp3LNzwK2lGIuyCYo1VErpRiFEF2FyuvuFkcm02j/vpBLLQEVGLXZx6AyYyAa1J8kpAusKUTamUiSdflEMymMsQV2ifIEieNnssBl3uXPtLnaFy9AkoJk4kSc5bnkAP0zWHv3ESiGSsDAySxkndKJX0Vpbo0yhy/dplOQCPU2ExGzDYj1NYKmTa1BvJpkUM8j0p6lLrco3bSPFHdHYBCOfKEAk5MMqJUjns2UI8z0gl8iS9D0O7FOIStWpzFAZLyhveTyo92C2/FVaci+vtH2V1QnKaizb7k+CH2zyEu+ZYWz2BJ//7NZ+OoKZFAcIBwz51gvKuRjvZBlc4GGRhoX3pHzd3ne23FEexGez4ncCOHz1dE2h4vSaZpTw61xhCNPUnimx72kyzysAM9Cwy3sF8tsxwrfJDFCtQ3c1l+RuHmqZ4HHc/aWedpkSbV5EzFQ0IRqJA0Fke2+9lEdVxBB/TDvUIWSg39n2uv3Xro2kw74KNbT6rGdvQEIz5nzD4z7s0MJjnzTiWcN5au01y95qoYwKei/9NBIWqa X-MS-TrafficTypeDiagnostic: CY4PR07MB3063: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3063; 25:849gy8XTYujwib/H7g7F80LA/xgUdbp7N4JWRCsMgU4wsKbdnsG8jdPg4G1NbmQBWXlJsq/Pxh+ec73W3lPSgYL4W8wECLGMIuCzC5LcZvbpsta8WyUrDWnpbRWSz4WIcuqkoc4DrIudAgxppOSwRYNOc69VTod7hlA1u/IPap+z3yuBcUdNOo7LEes89nsbaCfL3yzpbxC6PbL/4V1HDc+55eFSkSOaLo/EeFEw7K5MmImPkcxOZraHA0AoyqN+DrAF6VR5lm70Hyuz7XbP8lr1X58ESSirPLWvLgTWCYhGiD0t3v2O1s+P4NbRbMMiGlW/DjyepAo5dyXnNAFwfqrjBx/y8P4Mmrx0kKOj9J9gVkv9imynOh97w7BQOolAHxZUUBNZZjV0SXC6RxtCJFNwRDt6KNaABT2riwfUFw61zq+jr5sI7+cJXI4gV7WmuqSPFzhktIyswayOlNGIalpR1N0EW3fzRpteIPhPmihhPmKesoEpuUwSGbQScjbEB9jZ8vKtuMrmQ87OSybC1aHzrnjQgvSL3qrX5B90yCEoVCTlISff6jREUMl3QYQDXmJ18qEe7RAoduI4gsbl4R5VAIiUVbCL1qEgbeGtz+YAfNljXiWNf5kHYX+OFNDgeCQEWtfsQB6IG7MtfpIJ34HCgAl3a2T1urE6ry9Ysk/omGRV5o6QuSmQ22J1KEHeP4vSA5rESdgtFl/4P+nLcARpelUkERQuYmOU/4a0oMIMlLAInufRrTDSzsEPuBsV/ZF0Yb21gs0CMxhpi4R03WXDJxH1ot+eU3nI4JBBicH7CJ913RsuTFohdox1SiUHi7ahwYiJkIbIqEOu/XmjZBmeA8RXv52FwvgnKiCyC4Iwu8W7qDEXNxBazbqDirsvaHoggAKIuGZ6uq7dN3gfVJp6AUR+/bOVSihfxyrGxb4= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3063; 31:1g2ejfLJdDxxHJ1+LEZVgTeqXDEvFv7lniYtIb1SwpWr3sixLmh1gS1HywD2IGb0UdDTbqrzsCM/oD/obvo40BU7X2c30v9zD9yj5zI4ZE+vjy4Tr4Vc2Jg8bv4FYgOXulGL6Nq1nCHHWNC37stvjEeuXBOyml9DU0Oi1F//n5fnmrWlm3mymDbiyQFnWG8P49wwsD949qiKSW4mM9ydnFCg0eKiT+kiXd21ecS1d7jicyCZzA6Q1bDcPTcBiB5Q8CpTUOUtgIvP/poVy7gqojaflkHS9vD+YwJ4BU+M/9HqeGZwlGH5leJpVE42KrwllgwDr04HyuODfRmP2Blu7zvcsyjuohFvxbb7nedhvVA2UoZ5uNwKeHqRFtV9ipIiCiesne0RUkLpWCNcKovgd0paVR/jcDuXKJwGevLSqDf2VVzjX5TxrmbrAPszUuGJCRubuUNUBDIs7VbOCAxM++cEUdPnUxyx26AuixvA8DEGQ7XC83CEuIwxQXdGT0dtkTmhuT51KaP+x8ls9mVsLj5sc1csI3trUxBFmgrBs8kRoDRg7Gg8R6sZp//rJnY1JYxNDAEm6laGvtBQ8lXmtjCYmzStsP+r/GEs1v9D1fDgJAEEqiJrzK+5ciZEouy3y2N+JCMrA5RqLkT7l/Fr5z+94ulCEii5ME4aXoemAkQ= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3063; 20:mU5NpselM275mjpZJhQdEZE4S15N8BNy4Hk316hdy07eBoFPX2sp6bgK4lazTZW3r2697sIMhjkLPSaU4xMFFRriiZ9zWaM/ZvgRCmSy0SVZyJ2SU/oQxB7gYXjZUNXFp6GdkKNnsNaPTm6KuIokbyShQIQ/gpU75HbU3TMCTAKPoA7dKs5JNIHGfkv/ByEHkD6zEzGyVYqBpyDPDNthnwnKzKXl9Iksfn2rwmK5iN0hnB/Q/9VQfmVpz+nmE+uzc8FnS4lwUhWqQI0fK6NS11QsrqYznL99rMLa+xBPI6yr1RLfqgTL8xF3mtsRyMXZw659Cdvu/AyQiG5uxpYmnFiepTK3d9fdDc0JxLn6Kzk8nKHl7viDx1EvkRsGbAxrB8G6a5KSXsFOLBUDKOP6dHbqsKC2kKV6Og5L2Xhf1dWFE5r+QI3BQ/HksizV0ICjrAgh0SjkEkMKFTh/XqpknqiCAyQYBRfqN8kKaknnkp4FOr9OyNcPUmLs4AFeIq9H4iyMJp1aT4ECLzqGa2cn5xXdZGTd/g/jdAcmpirRmXDHlXD4jvX3f0JgcwEwli3Eu+YcAb0+pJSaCq82dBXN7qS3WO911fUNMWijNNNgyOM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(788757137089)(148574349560750)(158140799945019); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(10201501046)(100000703101)(100105400095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3063; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3063; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3063; 4:mCJt8T3aG99FJdgqkrc6SDbq6mie0+qZjlvM9ZbEXk?= =?us-ascii?Q?7CH7ip6x8ZfuvqqsHiO8qGqx97b7cKNTdqv6N/GOMM4ESWi9tURD7MF1oc8X?= =?us-ascii?Q?gq7J8f2GTSRsl0O+vhtLQCw/WtVGn4o1OUC6p3FoYvZQRLE88ac/6+Yi2lgU?= =?us-ascii?Q?n1zs5zZ8RDAlK9R8dcPld9PQ6nwxpv59bD9IxvCVHcvlhWoXT2F14BPExAaZ?= =?us-ascii?Q?/DPpk6KmvlWUNHiGK5bfF7G+0WzdB8pxzZf1run/GHKWXOCKHxdzArh+ENfu?= =?us-ascii?Q?DoAq5QI2rM6sTxr6Jy1lrCNK35wlPQWsMvwBlMcrre2s/C66iHyZ1wv//s8K?= =?us-ascii?Q?5ZE83qhZeWHM75kUttbuh+VyP1XefHuaAnCwN0CCQaqKgJaQuXoJ5oNHKDWr?= =?us-ascii?Q?qdUqhvjDnpF3f1CyVlxhrG0Z8ZtXf4u92lPB8ko8xqGbL6q+OLLiXiTo+Cue?= =?us-ascii?Q?aCtUzC/3gjAYUsiokZGSLRI4A1EmDfA9dJgJSu1IdbThVTGvZot1eCIMksKs?= =?us-ascii?Q?+5Qz1QRFm66Dv22Varqma0czRPa5YG6pydI9x5MHWXBTlwxXZGzI9gktK7K5?= =?us-ascii?Q?ijq1E+Qyr5TBWAFiFzn7P8OT9itN33+TIzkm0EgtSiekzHhbQWM52cK1ZaRs?= =?us-ascii?Q?juQPDsq47DyV7ffPhMOww2HtiHh9Y/zWEVUD4lvP0AuahgJIJyCflkyG+vNN?= =?us-ascii?Q?GEet4CQPZ8iuE6VFSwQL9mI5IRYgS2Ld+ctEj78rL1Y/FmB2pLT3Ule3K4HO?= =?us-ascii?Q?yosvmHYkL+wrMjpoPUvs17IrLXnNHCRCNIe1LvsymC7+e7B+Sgks+UY1ARkC?= =?us-ascii?Q?G3WAhR2nKi+c8Bhle5iEczTfOXBo8g8Mn5TDfyEnd+hYg0XW9lR0QzYf1ej4?= =?us-ascii?Q?6i/0GVUdb6bnq3W6Pqh7CQFKdsJ2OC5RRm4VvHQ2AcEbM1JmRwlj8SkNF9g5?= =?us-ascii?Q?RwZ4ZkhaECJ5ZkXCe6pOU+fs3HHbB3T/D3SGqvoFzSqgGPKAp2G01VomV8S7?= =?us-ascii?Q?8qDYnzDQRz8KRrDpKTJJAkZnz2Gx/BOyn1tpZjUMoZVXO2f0egBMLtAMhZCA?= =?us-ascii?Q?2XvQfmP+q9bQGtSEylNvh87Fm40Q8ZF3WW1S/W68VnF2LjcwzSfofrD7tOmx?= =?us-ascii?Q?pvPvRGU/IvC47HC1X3Xa9+cWYLWEQUSvrUc89NJWAgaPGx7aHPBm7erkJUPi?= =?us-ascii?Q?gEvYMoELi07rL9G0NnAKwPcR/9sx8Zgbi5SKMUusXrf+0uI5P0pDWHBpieur?= =?us-ascii?Q?hWMIABBqZToqmL5R8I8oDLoWuAm0GCZC+gw+8zzGf46Q9A668WAVYt/ActDg?= =?us-ascii?Q?=3D=3D?= X-Forefront-PRVS: 0358535363 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39400400002)(39450400003)(39410400002)(39850400002)(39840400002)(50466002)(2906002)(53936002)(8676002)(81166006)(25786009)(107886003)(36756003)(4326008)(110136004)(38730400002)(7736002)(1076002)(305945005)(42882006)(5003940100001)(6666003)(2950100002)(50226002)(6506006)(3846002)(76176999)(50986999)(42186005)(478600001)(53416004)(33646002)(72206003)(47776003)(6512007)(6486002)(189998001)(66066001)(5660300001)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3063; H:1scrb-1.caveonetworks.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3063; 23:PjDEOjsyDzaByN8H94AUgFyxwP/Ik80nhh5MKYzHZ?= =?us-ascii?Q?DshrLImZ6RrSiqVyUh3z8YI9fRBdP4CornX8L+zlHhfQ6Zidbkj3A3d/uCAu?= =?us-ascii?Q?zG92T6+iiY8fc2Nb8MY2yuIGQloX6j0CccThKE5qqXp1wSPCGsMYYjchQ+fH?= =?us-ascii?Q?yb0pJP5YQgGOUB26jJvZFU1CjFWMvvolwVRPwoyFJ5DRGUuzfVbfx+kophDP?= =?us-ascii?Q?BfRwJ9QvKFcRU2NyPc06F0qkSB3bA/ekDVn0PSF3c+dfCzrJq6D9TrNQ/0/r?= =?us-ascii?Q?TCAXPMrH7lQTtTn9Pzr69L8s0CkfIlz6bQvGAkK2hUAMsrVVXazeMFY9CMAv?= =?us-ascii?Q?rOTmVPMbYpx9W89n/4jzMKFNxUGSszSBQhNo8rnb3iW3P5bbwFyJ2a5SB8IO?= =?us-ascii?Q?Aeel/V3I8VqX2o9G51zbrgB8nEJXYl40EuoI7DdpzxE13obmxpLWnHcrJZo/?= =?us-ascii?Q?Ha+2U84Irq9fAQTFlCFWRa6PtNp+1jpxDqfW6ndIJW133MS1zOWbrq/sfGdN?= =?us-ascii?Q?yybuHG816FhyBjfrjrdaDQapndiqf8xF1UciZXfdmbsdhVK94gAwoKCf5vFx?= =?us-ascii?Q?F3nmT/JHDvXkGa7eP8xTdxGSyVIe56w/g3QrYZv7/SwbH3Md7A7mb5yTvaSM?= =?us-ascii?Q?qhKFqo8xZ8CpdWUry76n+HqsBjlaPHAfrMpejat2R/I7nb2tKjc2PSK6eNoY?= =?us-ascii?Q?G+ZvJAKgxNj+eoJslYqREMxSBQWwrWTP7V5KPioqN+5BE3Z3I0CXsqK0Zz8o?= =?us-ascii?Q?B84wgEdKQPv0m34QB6DXJX9vHddTPo1p7870ZLPNRbD1fPWbMgnin3ZBK8L8?= =?us-ascii?Q?L0Fw67XGwJ/JjjqRJyY/0GvwCv/5IBPzMU+9Q83/mzJzTtjOAQs8c0zIs8Cc?= =?us-ascii?Q?8DckAwoVhZW+SdwZlz9cAYsoBoZ2vayxX6OvhIZFnqQLnQ7rhNaF/m0YazX6?= =?us-ascii?Q?WvEeisG4dTAC27dNlG5ardknytfDfaHFAjOAq75WBnv7RICyThySTbhv5fwd?= =?us-ascii?Q?NiR3GcT2+g84PBNjhbxkXE1/Zx5+Q2fK/8Rx+t+F374uvN3zfFhxv+g4Flq+?= =?us-ascii?Q?Nv4B+Lx/TdpxJdAENlSma0joDmK?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3063; 6:Q7wJhbYqSTU/RR6mlx95XBl3E5tCAnOBZMlveFrdpE?= =?us-ascii?Q?FaUK52hGwS70dObZaa4rCFP25gDVNbEEAk8A0B9UEmrQ/hGq18o4uzFfFUvE?= =?us-ascii?Q?waTY3PBLumYtGOi5vwcpwvlBGSl0TsKTmjDPe0pmKKd7BxNzf7/x4eyqF6Dq?= =?us-ascii?Q?qGxnPJG1j68eHFD3fgsZuyZrSA+746W88F4cvGk3bCBnQqTI/tlHLZkOnCNk?= =?us-ascii?Q?Ij0wVT4sH9iKsIHyXRjfK1bogCtHcfK942SYnJRyy4yRz4gN/1b92pgaXnAR?= =?us-ascii?Q?Il2btYd5Nzz8QyDaXVsvNFT9beQV4bnR8MZrcGt8WBPj08k6xXespv26G8/W?= =?us-ascii?Q?6wZyTiLa4rijuqLI3rSVhfVjOvKV9kbNdTlvpfm5P9bkdECWOLq5pTsP6Am3?= =?us-ascii?Q?PbmUX6y0v7N6DY4dO9kXrcXbzMXE8ITwCpo+evl0/JnR2Ov19/zZQzyJRSCn?= =?us-ascii?Q?ejZ5l66a3GUOob1WsN1oSnsYPV4O1LzRBFMc6+eeXULD/tDy0kqgFdZdzgds?= =?us-ascii?Q?vJSLX8pbsD+3vU9oq3AS0nT5i9+17pinBC3Xgxw0XOwfoTE2ZJggDLVZSqyX?= =?us-ascii?Q?cSjvt7p5/nC0DInC8vigL7OBSwhTru9dtsoSSPOYRUETbWZY3cGohCoLeKCL?= =?us-ascii?Q?PZk9X+2QkVB33LKpeMRgTrJctwZkSKVlgtWecUHcBYYlAzP9AnRbs+V0gdHN?= =?us-ascii?Q?ikyVZ5Bjs0DU/qQrPj/mg37TeAtMyNnuOASwl7xtCTszOZ8dTp3b+nWn+P6x?= =?us-ascii?Q?15Iyn+yCXSS0BVO/TWwUPKeXnk9NyLxxz9b1EymCRL/yrwry/82WTubSzO2T?= =?us-ascii?Q?VjlnJHobXybF3sTantPaUqedVsFssXgLeOXQpQ4WK+NlVzhnkUbFk6n3iF4o?= =?us-ascii?Q?0z5kVi37eNezGhqp6kPC4B7s8dZcZTzSDgyPSXpxMXlxy39oQSg2rl7cv4yS?= =?us-ascii?Q?PrUqvsGh3rELU0j8fgflk1RO0YQCJh3JUCaosDvtn089lokJw3Asm+3Ujpw+?= =?us-ascii?Q?E=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3063; 5:2NmcMxyFiFQusgQAsPJS7s6czy0a21Xi1D2214bCMT8XfyCYUHrsw05oqjAVUNxPXgVm2y4DQIaemMY9GQ8UPOMN9P6TXajSwdzYILCA2pzHGXt0nREGyfyVke+izzwL5SmMahxUhfWc6jMLeBiTW2Jeep73eBpLVk39POMOknqKac+lxTE9RlF3kOrRp3mVePsEfud345T7ZGQwUWURc47E881q2yVr2gj57869wfV98Z/lCPICPNSmUcn+BVUKVSYDEvjM6aKwWmmlW5IJWI0FE6M3qC8HeCkI1UaCHl9PvMB1RfV/PFO+T5a9/AqLP3qfrpuaFeuQH7UQCyZsv6XN5LL4BCbv6EgAJCLZjdCo/qMvnzvZtdGClbUVdlcbpX1F3Sfei5RqUnwPWhr0DGdbgvkvJyMh/UgtiJsx87gU1hIv6bORMurabfyaK0D5xKrEh/2X0YU2N8qaRn1xZMx2/1Tw4UAlRsSPpyiuIkSi9A0Rx0ila0i1ICwJc837; 24:TyXG5jXxKxrjqsIIoiGcq/XJkwZpwXVSsR3QtTiUoP8ebXvbMF1lxLHrrHWh9eOWwsRhTTR+6Q+rI7CVSZkXTAXaJd9Hw7Dy4L4dnS31PME= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3063; 7:JttV8Fa+W3tI2GW+duXKZmoS51fhT+MgY+OwI71F1lMksiqWpkAvRd9JX99Etr35VCm/9fOij5AdyA51/fi9neVA20lZ7xdDta/iCSAyDYrQu/oLRJ5HwwUdA/PTd4c+iVSqiFj3OnU4U20RCiOcrbd+BKu0MYXMYH/rgYN4RFvQ/NH0svym9kpk3lgBRxBwQU1LQwTqIghwJjXQ5RqKR57LdxSpWOop61GV04XGO+uFKnS80gpZ5j5c62HVxKd2SrO2grKXU8Qk3Zh3L+WR3AHZo060FrR/pZvafaBjtackQemJ1FahHZdesDb06HvSLo7/wxMDDfPSlXi/2Um18W1ThQG8kkyQJskd1D2rnEWeDJ4Mj8+0uFPFJknmUUV5nm64lITh0dqS6QM0vydcDe1w2stKMeCaa60785GKSSyF3a4MKRDOlMXCMm+/PJKJNdmFGNuqahQa6NW71ZESjEmp5jn8ERWhTrjr8nRZqJ/vNt2RTPvAA1GPmMLrNNiy88gP1Y5hC3Y/SwFqKC+CRKzyzjE+5o9b83SbmRT4tgDhCW4YXX83OO/4QIFZ2ZGaakL0ZCwCzDL2fXhTd3fOCMxRTeU3fvkj4HC6MdRrgGYoVhf8B5E2KJFYZe73wya9jg98MKT3tT176V7Zn1jjIkNVgb6ec+MJT/i3zPmJqQEBZQF6Cw3Fj1SlZ4PQMTEcfFr5r+7DXKygFCqqliT5d4CWnb//CMVwnkwPeMxCWEvMLsdSy8rToZkQpbD+UvIvKeR6ECTaaDC1M5Dp3mzsfQ8GoWOcy8/P06lY5EChnbs= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 08:22:54.6365 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3063 Subject: [dpdk-dev] [PATCH v5 2/2] examples/performance-thread: add arm64 support 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 08:22:58 -0000 Updated Makefile to allow compilation for arm64 architecture. Added necessary arm64 support for lthread. Fixed minor compilation errors for arm64 compilation. Tested the apps l3fwd-thread and lthread_pthread_shim on thunderx and x86_64. Signed-off-by: Ashwin Sekhar T K --- examples/performance-thread/Makefile | 4 +- .../performance-thread/common/arch/arm64/ctx.c | 90 ++++++++++++++++++++++ .../performance-thread/common/arch/arm64/ctx.h | 83 ++++++++++++++++++++ .../performance-thread/common/arch/arm64/stack.h | 84 ++++++++++++++++++++ examples/performance-thread/common/common.mk | 2 + examples/performance-thread/l3fwd-thread/main.c | 2 +- 6 files changed, 262 insertions(+), 3 deletions(-) create mode 100644 examples/performance-thread/common/arch/arm64/ctx.c create mode 100644 examples/performance-thread/common/arch/arm64/ctx.h create mode 100644 examples/performance-thread/common/arch/arm64/stack.h diff --git a/examples/performance-thread/Makefile b/examples/performance-thread/Makefile index d19f8489e..0c5edfdb9 100644 --- a/examples/performance-thread/Makefile +++ b/examples/performance-thread/Makefile @@ -38,8 +38,8 @@ RTE_TARGET ?= x86_64-native-linuxapp-gcc include $(RTE_SDK)/mk/rte.vars.mk -ifneq ($(CONFIG_RTE_ARCH),"x86_64") -$(error This application is only supported for x86_64 targets) +ifeq ($(filter y,$(CONFIG_RTE_ARCH_X86_64) $(CONFIG_RTE_ARCH_ARM64)),) +$(error This application is only supported for x86_64 and arm64 targets) endif DIRS-y += l3fwd-thread diff --git a/examples/performance-thread/common/arch/arm64/ctx.c b/examples/performance-thread/common/arch/arm64/ctx.c new file mode 100644 index 000000000..1b38b63f0 --- /dev/null +++ b/examples/performance-thread/common/arch/arm64/ctx.c @@ -0,0 +1,90 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2017. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +void +ctx_switch(struct ctx *new_ctx __rte_unused, struct ctx *curr_ctx __rte_unused) +{ + /* SAVE CURRENT CONTEXT */ + asm volatile ( + /* Save SP */ + "mov x3, sp\n" + "str x3, [x1, #0]\n" + + /* Save FP and LR */ + "stp x29, x30, [x1, #8]\n" + + /* Save Callee Saved Regs x19 - x28 */ + "stp x19, x20, [x1, #24]\n" + "stp x21, x22, [x1, #40]\n" + "stp x23, x24, [x1, #56]\n" + "stp x25, x26, [x1, #72]\n" + "stp x27, x28, [x1, #88]\n" + + /* + * Save bottom 64-bits of Callee Saved + * SIMD Regs v8 - v15 + */ + "stp d8, d9, [x1, #104]\n" + "stp d10, d11, [x1, #120]\n" + "stp d12, d13, [x1, #136]\n" + "stp d14, d15, [x1, #152]\n" + ); + + /* RESTORE NEW CONTEXT */ + asm volatile ( + /* Restore SP */ + "ldr x3, [x0, #0]\n" + "mov sp, x3\n" + + /* Restore FP and LR */ + "ldp x29, x30, [x0, #8]\n" + + /* Restore Callee Saved Regs x19 - x28 */ + "ldp x19, x20, [x0, #24]\n" + "ldp x21, x22, [x0, #40]\n" + "ldp x23, x24, [x0, #56]\n" + "ldp x25, x26, [x0, #72]\n" + "ldp x27, x28, [x0, #88]\n" + + /* + * Restore bottom 64-bits of Callee Saved + * SIMD Regs v8 - v15 + */ + "ldp d8, d9, [x0, #104]\n" + "ldp d10, d11, [x0, #120]\n" + "ldp d12, d13, [x0, #136]\n" + "ldp d14, d15, [x0, #152]\n" + ); +} diff --git a/examples/performance-thread/common/arch/arm64/ctx.h b/examples/performance-thread/common/arch/arm64/ctx.h new file mode 100644 index 000000000..996922b58 --- /dev/null +++ b/examples/performance-thread/common/arch/arm64/ctx.h @@ -0,0 +1,83 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2017. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef CTX_H +#define CTX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * CPU context registers + */ +struct ctx { + void *sp; /* 0 */ + void *fp; /* 8 */ + void *lr; /* 16 */ + + /* Callee Saved Generic Registers */ + void *r19; /* 24 */ + void *r20; /* 32 */ + void *r21; /* 40 */ + void *r22; /* 48 */ + void *r23; /* 56 */ + void *r24; /* 64 */ + void *r25; /* 72 */ + void *r26; /* 80 */ + void *r27; /* 88 */ + void *r28; /* 96 */ + + /* + * Callee Saved SIMD Registers. Only the bottom 64-bits + * of these registers needs to be saved. + */ + void *v8; /* 104 */ + void *v9; /* 112 */ + void *v10; /* 120 */ + void *v11; /* 128 */ + void *v12; /* 136 */ + void *v13; /* 144 */ + void *v14; /* 152 */ + void *v15; /* 160 */ +}; + + +void +ctx_switch(struct ctx *new_ctx, struct ctx *curr_ctx); + + +#ifdef __cplusplus +} +#endif + +#endif /* RTE_CTX_H_ */ diff --git a/examples/performance-thread/common/arch/arm64/stack.h b/examples/performance-thread/common/arch/arm64/stack.h new file mode 100644 index 000000000..98bbef888 --- /dev/null +++ b/examples/performance-thread/common/arch/arm64/stack.h @@ -0,0 +1,84 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2017. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef STACK_H +#define STACK_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lthread_int.h" + +/* + * Sets up the initial stack for the lthread. + */ +static inline void +arch_set_stack(struct lthread *lt, void *func) +{ + void **stack_top = (void *)((char *)(lt->stack) + lt->stack_size); + + /* + * Align stack_top to 16 bytes. Arm64 has the constraint that the + * stack pointer must always be quad-word aligned. + */ + stack_top = (void **)(((unsigned long)(stack_top)) & ~0xfUL); + + /* + * First Stack Frame + */ + stack_top[0] = NULL; + stack_top[-1] = NULL; + + /* + * Initialize the context + */ + lt->ctx.fp = &stack_top[-1]; + lt->ctx.sp = &stack_top[-2]; + + /* + * Here only the address of _lthread_exec is saved as the link + * register value. The argument to _lthread_exec i.e the address of + * the lthread struct is not saved. This is because the first + * argument to ctx_switch is the address of the new context, + * which also happens to be the address of required lthread struct. + * So while returning from ctx_switch into _thread_exec, parameter + * register x0 will always contain the required value. + */ + lt->ctx.lr = func; +} + +#ifdef __cplusplus +} +#endif + +#endif /* STACK_H_ */ diff --git a/examples/performance-thread/common/common.mk b/examples/performance-thread/common/common.mk index 532dbf61d..f1f05fdde 100644 --- a/examples/performance-thread/common/common.mk +++ b/examples/performance-thread/common/common.mk @@ -39,6 +39,8 @@ MKFILE_PATH=$(abspath $(dir $(lastword $(MAKEFILE_LIST)))) ifeq ($(CONFIG_RTE_ARCH_X86_64),y) ARCH_PATH += $(MKFILE_PATH)/arch/x86 +else ifeq ($(CONFIG_RTE_ARCH_ARM64),y) +ARCH_PATH += $(MKFILE_PATH)/arch/arm64 endif VPATH := $(MKFILE_PATH) $(ARCH_PATH) diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index fb847d13e..69734c24a 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -226,7 +226,7 @@ static uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT; static uint64_t dest_eth_addr[RTE_MAX_ETHPORTS]; static struct ether_addr ports_eth_addr[RTE_MAX_ETHPORTS]; -static __m128i val_eth[RTE_MAX_ETHPORTS]; +static xmm_t val_eth[RTE_MAX_ETHPORTS]; /* replace first 12B of the ethernet header. */ #define MASK_ETH 0x3f -- 2.12.2