From patchwork Mon Apr 24 10:49:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98034 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1421764qgf; Mon, 24 Apr 2017 03:53:04 -0700 (PDT) X-Received: by 10.200.46.239 with SMTP id i44mr27317931qta.261.1493031183988; Mon, 24 Apr 2017 03:53:03 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id v16si15715613qtv.134.2017.04.24.03.53.03; Mon, 24 Apr 2017 03:53:03 -0700 (PDT) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id AD6F2608C8; Mon, 24 Apr 2017 10:53:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 7971D60C01; Mon, 24 Apr 2017 10:51:10 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id AD7856069C; Mon, 24 Apr 2017 10:50:45 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40139.outbound.protection.outlook.com [40.107.4.139]) by lists.linaro.org (Postfix) with ESMTPS id 2CDE160C03 for ; Mon, 24 Apr 2017 10:50:06 +0000 (UTC) Received: from DB6PR07CA0057.eurprd07.prod.outlook.com (10.175.237.147) by VI1PR07MB0912.eurprd07.prod.outlook.com (10.161.109.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6; Mon, 24 Apr 2017 10:50:05 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::202) by DB6PR07CA0057.outlook.office365.com (2603:10a6:6:2a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6 via Frontend Transport; Mon, 24 Apr 2017 10:50:04 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:04 +0000 Received: from fihe3nok0734.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnH6Y005799 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYO005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:09 +0300 Message-ID: <20170424104917.24102-1-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:131.228.2.240; IPV:CAL; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39400400002)(39410400002)(39850400002)(39840400002)(39450400003)(39860400002)(2980300002)(189002)(199003)(9170700003)(50466002)(8936002)(48376002)(53936002)(6916009)(106466001)(305945005)(189998001)(36756003)(105596002)(2906002)(5660300001)(2351001)(6666003)(86362001)(81166006)(47776003)(22756006)(33646002)(356003)(77096006)(8676002)(50226002)(110136004)(5003940100001)(38730400002)(1076002)(50986999)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR07MB0912; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:YasaqyiTL3s3cNi6mtITEVXQf1zhNv90oeNuCV8zQLc7bkzAJbIy+oxsTuVjFdX9aLidC7QWzEchrQtTTLQR4ztUe+3KhykE0EVqEpfpYN9PRBN9eucafJG244C6VxHvs2X4rIKKd8ZR+iRQjAzDqQ+QT75tk1/qMP+k74cIG99aBYmi5ygwuuVh+YZOzPKKAoTI+8XlIJSZVvEddXRgJ22F0vuKphE7UztuMkS09gDz0ammWn0Qwta89lpDo9Z1Iq1zffe1v6a6Ey0U2ZkDYQ4JUBYwC+vVnZH+dGn4DgMqh9jyIMM/H5TVuS9uVOkAEmIAX5YNTdRabnKdFMMqkiV1vNmfvJ1jylncS7Lumw22GqS857cqGqzKdGW+yIZe3afWsAYy3YZVV+SC/IzFs+DeBa+LyjZhoEmcZuHo4I0vBYZEYUMw5Kq83yGyDUr7AfPKw7SpIIK1s09T9IbxkmskHE9qpn9tDCXAV3wbh6f/FUBNhYtG8IcpznDTUxJZSsOf21kLnXBz2/akcOHlpw== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: b6962277-4a3a-44af-c4ac-08d48affaa45 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:VI1PR07MB0912; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0912; 3:bSDY13KrPzqSFqCxPuU6GkMxg5MptLkm2sAimG6kSme+e7gYUWFTyy3iv6g19qT+98fLNKD7IUlzqVa8Eu5J91+vrCZx6uRugLGwy97AMsZTGvrpOeRhdY0SOygCxwyhUEHtvGtGaFDeeTxYwCvrsxdGNHRqu0iXI/nuTjp+zKmLXfAHlyRhvZMeoEFeyaZVmgQ4xTuR2BSJIWAmxNwMC7HDwZFg2648eATqA9RpWE6ejmeQJO4sPt7ayu9QaH5/whhXdVt96hcvdJ0efWZEBhVv15LHBqVpHJaV8BYS/icTxuzGs3qKviBAygtkKPFNeazXc6iaM/XlGhuIQDp8x91QM2qrRLb4t0qKK/AaHprdgJy7WrhQjVOl1/AWBlRcakQTzlJ6wBqsUngh/6EkZkAk/MYKfwuuR5cVdyxJQXrrY8NLxiOzFPtTmBShEx4r51mWqKUrEmiBOoqLDCsuIg== X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0912; 25:NR2Sj5hZnaAdtdR+zV7FuPI2zLETfFE15gtVcR0wYOkoH9gQPpnlZWsIBR06BRWnqgDkSzmGnDRG5UC5cbex3xmuvKZMucwP0B8chD1Mlb3XI0UosNhvFJKAcCaZuj5aJ+EISeVO7mCGtQ64csO5FhXuPgnUWQHou9wP8+GopYatqWpAY8z69Whs4UJYgIdJeGUMvADqTe1781xhhWNY7W1qXlAEktf/AJy1hcLOOrcVuKtXYd42WoYYyZPBDHUjXJtMZRuHo0gxnvb18M1c6RkmK9xVf6+TO9aTfOP0joxGecocwPEaiDaPnkd6D6wcmPMMguWrOjInH4IIQGx1se12HYSfLHvr+AhBV/IbFW2Zgyg4eU5a7Z3Jo4Wf+OZqf1uD7y5WyjJvbUtcaSxxK8eFv2iK6L4qLSwxPV1/hNxEbvN1bwAgBTh1bNFFmtf/ZX1RaEpYbxM1rjdIuE6wBtGdK2o+6MvO2PTa856o27g=; 31:vF5jb6fLok1PuqmDJQ3YzDbt8+ebEYXFL7kpFPPfcL88Law8ff2YPndnEXk/lJX8WWU4eJp98Eljtm+SB00vI2HR69lELDDuT3OaGEVYU8XFSbT92iAIvkyjublDLNcR7U7b5nGUEp+rfile+ZF6wZA/O4TmEN5f1NNFY9DVsAnn52WM8e76pUQKEsPDTanq5b2HU+gzAMvEwGhwls5/xT+GFEOm2OTEW/O5WlMmuzR7zbmADxiNUBpiRQMl0oSuyJT6eOeBmKttgi49HRBPGw== X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0912; 20:3t34znpBNRffgZTT97Szv0+/o5Xu35Q5YqKCd7UrO/ZcXRKchALgG32Qg6posnB3IznWgJV9vnF6LwGvQsYGHSZXKvdSm3G8zCwxr8kKESJSSdRjumNOmUPtdQe9yTw2uUv1t3deGZPIXQs6Z4myjxD6fM4Rfvwm+E5ZlyS8+ayK0/c1oxJn4iUQADCTwmQTn8J8Cjs8UXmuGT5eADjOo55QWS29iGDjf+v7KzLpAw5VtG7iBPT0BtG2JqSx6KrlUhIvYg/4jAXrT+AqnToQ3KtGIPv2KzMJraJcGzm+Yg1UOk8NiOa1Mslsp7uPode6i/TIFguvWSKjf4pl06cibux7cAYhGgQ0+Rye/AiUTdKRRH1HwXh+eXuAlP917N1gvrB+xsE8hdoQIgCD9EXi/VvSHXe+gh67+Vz75S30XgL04LDCUv9oIPTiImOJUxcUvBcNnDVj/rYaAaF6bWfUU/sEMiRsjBh/gSPTc/jSPiZIoTyAy5DSJR1dQybW2vq4XVgBak9lSOUlu9VwEUhej2YZ0ABrpoxI+/p2E69LD/bmcYONj3nVzt3bGqu80Cg8/N4cCFvQ6QuvS03QmGqaz0RON6uj1AAHrDdUhndCX/Y= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13013025)(8121501046)(5005006)(13023025)(13021025)(93006095)(93003095)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:VI1PR07MB0912; BCL:0; PCL:0; RULEID:; SRVR:VI1PR07MB0912; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0912; 4:bs+bgSSSHfk4zymn/xEb+8M9LTMoYyfSVXqrTXgStfyHx7aZUgxIiHTe8AkIJW5T22OBBn6X4NqfgG4KCvlLPLY0M7+cdo+Ae1qwkzU6FdQZND7HJeMiR8mKK1QMqo7BFs8mbWmSTBWytu8MuR7cgw1ymTiMGww5UfacQq0tUVyorgWqeil053NvrQE7S1hRCy7KQKhqfVV2FIT9e/zchk/HubHfk/tHy9rvbDkEFel8fwc8q0St67RzS+6xxut7T/C2ikmiJJwnN2tDkF/ACfnGf23YbPemUg7u0Y/hZR7mSpvnpjzmcrPqMvBG+ACS+eixfQbykvhnDlRKtAMJbcLUP3AOAsoKOgLgXt6esUU4hhb5snGzkUybyHTXwtLzlLyTazLvxak6fX/cpvSHzbXv6dDYoopNg4daj3/rlxU5SmU3IfhQmZ5IiE+Pr4w/j+I83ZepDvDmt0XHP/1LzS1/46mMlrfSMNnuEb+mLg9EiwzR9wxf0MS9IG1+D0CezDe46kkk06Tr3bEuEFIYP91yH/8tJy/X36ZAG/hG9BbYGtuVoM3Pm6Ny+J94RPn1O7kAC8wNocdiaPZnAgt2/oSWfYYGIzt+dUK4QMPPQqpp4T83sSqkif7FY+PyAiIAmrlFb3aMVxR+DIQU5BIbCx/GhYJsnnj5RD4OSa0bBVVZNfWcfTNcXACViUlF2imR1+MmRRr+sLzYoxPDLhy4SeKIobPD9+qxrElt7SGeivzIUoealK6sDcm/PtO5yggB6ZOb6lBY9Dmg/T2A5wPTLs2R116KG+O2s4OQK99E8CY= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR07MB0912; 23:bc1kfMDj8nDio686uhah+FTT/yHvYuTu7zn0939J1?= BFjpwjNAWIugyoL+OJhdWnFh6mx4XztU2D41kcAJXiXtZQi9Dsu7CL/QjnvVYgNwCTdkq1ows/+DKhhX3q0pTSWt8CHqskKTMPAFI75BRTQucEnSj8S4Xh2oFGjCXRHd2clN2yeuJO12gq0QGYROjmh5SXXIOD58Lw+19dK/GybYCm1OPAB/ksqFG6De3VtLx0SlxrYpFGGMUIjo16p4I+aXHebancqud6tWo0K+ZINhOgvBqR+qkv+DXu332wMl5V+TyKNtoUtumnXazpQL5xgkFNIGhFpvCAjdAp08ooxMI+KTJfBoe8zrIIpx6x1o3xREa332SwHGRc2wJTbwx4u0rPQuK7xfoAHFHdzTK/5UFKSX6b61BSA2PyNHL0Qcqshru2ybQv6QWTW1m9D/6QqvEFzFtZEWEwMLL1XvT0GKcG5v5TpIObyWH95kTjrqz4PkleVJhlJVhawVKHr842jdpnD6RSTMWsCwHXsUu4MmPXSGTsX9zFYCXfk0MFqKPSQw4BfyxAD/SIwbzHgveWZd9DpK7ayZ0koWHgjTTKQtgSLOePVav59a4Xj8KULCCppGy/FkUOy8hA41bw8S2g/1bMYrhnlDy9trzzEFGlw1GH2PIgVvKPS+nBGCnndCWvdLD5Juv3UIEh7YuzHvRTralXMWm3uZLxCc0VOUQ0PQyJAQHpPgE0lnOA3Fr/De4Y9rC9CK1gsuxRREx0QU1WbuvrwgKIQKmfMN2Jls7NoPxetAiRB2pFeQ/coGNjw2dcznyN2J+nm6riSRFOj8Zs5Rvxt5TbBYStyLHShayBIc7IfWbJVwscpN2LELN7xl727K8Vy3bbgApZNvo7zwSEtvGTWK58sWAnZ6i1epCWYw2BGxmQfKh9b4TiUnGsN+glQC077p6vIOkIcrc6gi6/BTQdtIc2B7nBfOvFnhVBB7V2vojVHKEMlJ1oU+d8FdaXxQGDlYRxcdyEtDw1SC8i36casWkYmVg78NHrMvpTAQA== X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0912; 6:bZIIM/X3RYMe8ZFCUgBIKg3piPiWqoq0CLCWXKXT7eDWLLCEKp2E5VhOn/KruRhiPcqJ521yebO95hdCwWYsPROKtpYnva1NDrAX2V7woi7VSsmo3W9zqbLodyUxgdO01QKR/lTKmlSI8ZA+SUxjK0pXItoYdORP7AiCCBUIvdBlRdrd8bVoO4XCim9y/PbQBsRDCOZIkC8OPmZdDdgLIBEiCt1j/q9heY8/wySF/fqOUCTfwWZQTjxs0HVo5tP1CM63hFY7qR+7ekHNL2oaT2ZbdKo4IsKlYK3PcbgN1P8gjT7f5oxjqshr0wd2dL0xeH/d/cAq4DbPc2IJReHzn6VBEbzcdPgLfJ45LqMQ4B4eMBZBE9jQwVPmxVCQCuusgckino/wlpbfNYCavqNInzYdypni5WtuSt+OO6PM85EOy1IKe/5yZX5x1e0iR1t9uJNhKS0Q0yM5H41PZ8Sg4w3k7jrn/Eu3fCeEiMut40STxaNkY7gBQwd09fmXlspVorQ4xvxFbkpyWKzCdg21wobMvZfUSVlHnFVkDwSBAao=; 5:jwlZfcEw8AQ8sScqUqSJMi2tkHAozkt+mmjLlsUHL+DsZ89GxaEdMNDveeIBiiG1A50Sms94vMX5yRHHvVDNaIAXL452GT6r4HUuvOjtqGYfBUm92k7sySpZ0zWxBFe/1UUAEL3PFz4Rgci5e9IJKg==; 24:mH1fm+qmtSKM8FgIAOrTctvurktIj1985F3EQcQuT1fPmhIUdipbm1OqIsDUjfilUk6PDgUTnaKmjlvTCJs6+X6cI0v9ZvevUQsKi1dNHNs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0912; 7:1v/38rgK1Wz36eqwRix2uj0z9V8ghO2Nv66Nz6fa/KmHS7G0wwYsUXaXTKAXlHEpuEUlLc4QPDNgskAbPEc1mWcoej9jIZylYRgJzJqzXBWbZOvMakchad1TkzPN45YwPiqAgVrTw4GLYtudEabM6lWJGkeaTeXKgNNmNsXcMLSA0SdLCQ5nS/nPt7RYlzCC89x/xk8D0/gMpFwx8NPoCc5e1/SAp5fqXUnVk+OEhrugtAJggDVYr06Go6RKPVB55E2ECxCOAgEqK3FPDQktuoCk6QjG42GIznGik2VUqG2LSkC9hySA4LFVAfQnNAsQ/N8wu5m5Vy0FD6KsMooWpQ== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:04.2356 (UTC) X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5d471751-9675-428d-917b-70f44f9630b0; Ip=[131.228.2.240]; Helo=[mailrelay.int.nokia.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB0912 Subject: [lng-odp] [API-NEXT PATCH v2 0/8] Use HW time counter X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" This patch set modifies time implementation to use TSC when running on a x86 CPU that has invarint TSC CPU flag set. Otherwise, the same Linux system time is used as before. TSC is much more efficient both in performance and latency/jitter wise than Linux system call. This can be seen also with scheduler latency test which time stamps events with this API. All latency measurements (min, ave, max) improved significantly. This is sent through api-next as cpu flags are printed through new system info print function for debugging purposes (to verify that invariant TSC flag is read correctly). Patch 2/8 causes two checkpatch errors due to code copied from DPDK. Both the macro and the ifdef cannot be changed, so errors should be ignored. v2: * Use ODP_PRINT instead of printf * Removed couple of time.hw.reserved set to zero. One remains since otherwise GCC suspects usage of unintialized variable (false warning). * Fixed install of new arch/x86/cpu_flag files Petri Savolainen (8): api: system: added system info print linux-gen: cpu_flags: added x86 cpu flag read functions linux-gen: system: implement system info print test: validation: add odp_sys_info_print test test: sched_latency: use sys_info_print test: validation: rename time test header file test: validation: add time accuracy test linux-gen: time: use hw time counter when available configure.ac | 1 + include/odp/api/spec/system_info.h | 9 + platform/Makefile.inc | 4 +- platform/linux-generic/Makefile.am | 5 + platform/linux-generic/arch/arm/odp_cpu_arch.c | 16 + .../linux-generic/arch/arm/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/default/odp_cpu_arch.c | 16 + .../linux-generic/arch/default/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/mips64/odp_cpu_arch.c | 16 + .../linux-generic/arch/mips64/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/powerpc/odp_cpu_arch.c | 16 + .../linux-generic/arch/powerpc/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/x86/cpu_flags.c | 368 +++++++++++++++++++++ platform/linux-generic/arch/x86/cpu_flags.h | 20 ++ platform/linux-generic/arch/x86/odp_cpu_arch.c | 59 ++++ .../linux-generic/arch/x86/odp_sysinfo_parse.c | 6 + .../include/odp/api/plat/time_types.h | 23 +- platform/linux-generic/include/odp_internal.h | 1 + platform/linux-generic/include/odp_time_internal.h | 24 ++ platform/linux-generic/odp_system_info.c | 30 ++ platform/linux-generic/odp_time.c | 300 +++++++++++++---- test/common_plat/performance/odp_sched_latency.c | 18 +- test/common_plat/validation/api/system/system.c | 8 + test/common_plat/validation/api/system/system.h | 1 + test/common_plat/validation/api/time/Makefile.am | 2 +- test/common_plat/validation/api/time/time.c | 74 ++++- test/common_plat/validation/api/time/time_main.c | 2 +- .../validation/api/time/{time.h => time_test.h} | 0 28 files changed, 938 insertions(+), 97 deletions(-) create mode 100644 platform/linux-generic/arch/x86/cpu_flags.c create mode 100644 platform/linux-generic/arch/x86/cpu_flags.h create mode 100644 platform/linux-generic/include/odp_time_internal.h rename test/common_plat/validation/api/time/{time.h => time_test.h} (100%) -- 2.11.0