From patchwork Fri Apr 21 13:11:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97900 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp320334qgf; Fri, 21 Apr 2017 06:14:30 -0700 (PDT) X-Received: by 10.200.38.206 with SMTP id 14mr13922591qtp.62.1492780470450; Fri, 21 Apr 2017 06:14:30 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id k25si9493650qtk.308.2017.04.21.06.14.30; Fri, 21 Apr 2017 06:14:30 -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 2C1D462B60; Fri, 21 Apr 2017 13:14:30 +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=-1.9 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, 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 8948E62C74; Fri, 21 Apr 2017 13:12:14 +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 869B561C89; Fri, 21 Apr 2017 13:12:04 +0000 (UTC) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0120.outbound.protection.outlook.com [104.47.0.120]) by lists.linaro.org (Postfix) with ESMTPS id B98FA61C89 for ; Fri, 21 Apr 2017 13:11:55 +0000 (UTC) Received: from VI1PR07CA0031.eurprd07.prod.outlook.com (2a01:111:e400:533d::41) by DB5PR07MB0902.eurprd07.prod.outlook.com (2a01:111:e400:5105::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6; Fri, 21 Apr 2017 13:11:53 +0000 Received: from DB5EUR03FT025.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::203) by VI1PR07CA0031.outlook.office365.com (2a01:111:e400:533d::41) 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; Fri, 21 Apr 2017 13:11:53 +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 DB5EUR03FT025.mail.protection.outlook.com (10.152.20.104) 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; Fri, 21 Apr 2017 13:11:53 +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 v3LDBYNB025441 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Apr 2017 16:11:34 +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 v3LDBYOc025438 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Fri, 21 Apr 2017 16:11:34 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Fri, 21 Apr 2017 16:11:26 +0300 Message-ID: <20170421131134.27992-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)(39410400002)(39400400002)(39840400002)(39450400003)(39850400002)(39860400002)(2980300002)(199003)(189002)(9170700003)(356003)(5660300001)(38730400002)(110136004)(1076002)(189998001)(305945005)(5003940100001)(8936002)(50226002)(50986999)(81166006)(8676002)(86362001)(36756003)(2906002)(106466001)(105596002)(47776003)(77096006)(6666003)(2351001)(33646002)(6916009)(53936002)(22756006)(50466002)(48376002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB0902; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT025; 1:tDxAmAPC6E6tcN+whzd/r4+sFSrLPwrpAjrDaYbjHJ6T3gNei7I7SEx+uA/hQNJXajW2pJEc0ijfBZq/I9R7d6o80naajAX9KMhgifZP9QO3Y08pseWaqPMQIq2M4LADznDenKTkA9EocjmL3GQq6vu9FYATWx7waTyAtwMe9yXNUTkArtgqr3/kETdpY6BmmZCjlfmHGbpYf/oRWW8SkQj/tmvnAKLZ8tkmtziv30PrSj0TvhhE18TkbdIoMQXUHgwj/js1FXzUJorHei/91uddHTOXzKQ3BCgptZWHQ51XHn5oBr6baGsePbilKrup/VQwM5a2Qr6SRmXnsepOOWwCwGilKlBWfjt44AzG4ZyUZISSPc6XMhZi0aLYPF5gnMLrBEE1DnmBjmOyzyfuZjAO3nT9w2MJaCAibCJSa91bsr2kahXHnqIWDledMfT6/k7CubGXJriCofpxaEIsQUc2+HZxquLMdDfPS3p3p3y5j5r5VMcpwZFh1cSIAmkkKxePy5x1hxxm90Zz60fT+w== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: a6fc60c7-7afb-41e4-1a06-08d488b7fab3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:DB5PR07MB0902; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0902; 3:7Jog76+QVBsxAIIq1ngPneaIPv5v7+kz9LUoMrwEHYhUvdvP0sDwrDMoGI+N3iDJjR0AlkhMIcwauskTBwHEqt3ib6fq0z7V/FJceVPBqlQ3k1UfD3LN5/1LMe4njB4O1JBF0g6E0+cscbhtVBWF08olCx6FB+FJU1KpiggJ3/PXsxRvVOzv2U7b9g2Z0STYWJwDYaVrjDlJ+qT9oxjdA5rbTQZj+W7n2tuOf8x03lPwq3ojqFcpwjRnA6+oUZDEwiHSi5CfPG0iyk5IzWdWylDTV3O2v4DufivTqs/1CdKwaHYMorcTuULsuYC4PQa3SfBC1AE1VGIyLg7hQM9z97rQfu8/7lTaB0Vp8xWMXCPoWFTXlauRIuX3EEKpJwC0rH3azGszzPFVbtLT3bSQIQ1PxfDoYYvfcl59x18jDhqUWc6oVHtC7lSCeSJpl3kLvgPpEYyYajb7OE24yBWt4g== X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0902; 25:rMOya2875qbDTikiZ0maW6Rm8iO6Jq3lad2alP8vJT/HnmHqJu6lAZcfNIaNe4cQHdJX3F/6H3+Jy07BYz1WR5bkR9alWLEIsnx5NelAn9p8oFLTVBXBd8Ul+tUIWL9C/anW9Fp+FQShYfZWTkuv79n5HQpAV9C0tsd0wtr2FJZZ96x7wlzvvDVS2ds5dTUOB3/XqIHIXalwCXWMReTNKdo7QhwJGetmO2Hi86WfdVft5g0uaWjMQEKTn41MsUcREyaBgeOVH6fQb67mUyc8Vht4452Ye2GA98qdfMXnN+OAiw1jbhfDhecYaJdJOVeoV/tl2ld5NdoJkt9wDK7sA0Lhh1gs1lTlPFDetIksIPRmFS2twnhjELuFOfsywO1039kcS0ZNJelvsiGwDKUPqP9BYJ9g76HTKxDY4DhfYXwaJz4uY1YXd0uoqq9aJlEjR4tmgHWUdE4qsrnBAGfiRH28DIuWcMlksI38AnQF6wc=; 31:gEpBWdbIuiTme7nkWz3zIp4ENjSompQ8cbd2fk7gUNKqKv0GBDFUQjPnt6hXgUPOZHUrJrw7fJ1e15M3JkmnZeF4dbmKVNQufa3QT7POfZe3zryReP8gArwSp1vSAIcTZp3Q2r0WO+qwbfW/c0izvpM4UY3SEHYXTGjWkV+itWsat2hjbe6ed69ICDgdaPHCwNB3hG60iWoaCbR6x2DZfkm6pwY8RAzmRb9Cj71IMNceS65O44fqZ3B2gUhTyrf+ X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0902; 20:/TyFJy9R5kjArXPwKtuz9fl4bJ415zbRQboy5Y05GuaNnqo0ZtXhpgkN6loYbhYU/3GX9RqHUhzSuBdEjlN1Lfx6NZcQzmBjpAxQ4QEXzsuZizrvgwzwJ3lP1EDyGNKLS+swZiWcknjRxJL2j+Aq+jQpMTdLl2Sc6AdaPYVGSxcoWRk+saO2pXPDJ5EWbAmHQRh7hnpnO4m3pXVcUl5HrjH3fxBgE0qbNTLeBMFtr+vMSgvTAe5dM4hIzgXyVYaHUGuHJv6fgw9LIRVVDselpz5eY/7fRcNWkcduJSc5nv2rSilbQG3InBFq1a/oB40L1/kGwLgJmrYKAAba4qVhuiWlky0FuncK5ypnJkMl9goHoja464GTY6rfa6wxHzrcLxrX9Gz7nbnPEQC37l25/sTTzX+6Ysvih5QBJC1yLOIKGX6E9QvbW6i1sRJtE7XmcYxmX8+zv+4tVL1va74i+J1NpLztGfSyjwLkG6pDKKPxQ5uVcjFyfUxuNigRrN08SsW6ffAwSG8LREFHQk7mIzYjd3l1X3DaPhIeBHI1u3Ul4MMSntilpVcwtTk9yriU5DYUdq9u/MLXYj8EYb7Va5xrq8HnuaBvpq33cp4OlHE= 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)(10201501046)(93006095)(93003095)(3002001)(6055026)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:DB5PR07MB0902; BCL:0; PCL:0; RULEID:; SRVR:DB5PR07MB0902; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0902; 4:6Iyw8Keb9K8Z6SUmaD2akjRKp8KjMSyBOzTufMLosPs2tspsUm27mM4iw1OK/lTwPxAO85Yk1VWC3x9FwcrFIZvmXUSCE1O5azauJLzXZCmi2g5saqBp9hObjAV8Ms4GSkkadmxE+fjCfb5qddwkm32a/tPMHh65UPklUEHvc0nnW92AOB2K0nor1kfAqHHMsLc2/JmCn2wRg4WU72mS/6USW6DDJfZwHVJrekkQjrZk2mMHbuy7XUxXsURv/aqxV2bPUExdOmaZ1j0ejBMIq8f4a19GJZ49Qof1Wtudxqw9Li9nXTKYoMvR7zSEdmcaYu+a4MpCCQzX4ui7qPtCOzZ/Q1lkRjiWf92OXlKjwDFuICBnYe5ThJv9NL7uNcuT9PUR7pRd43A8RV/VMZ8wv9BPaAoOV9RJPQidIQ9hmDG6imodENndUo5h1UvsNNqUZLmtvz/6LTbflznoZPOPXpMn4cQl1pRi9pfgv/D6zusLb4QoQk69tx0K+wTA0G9t7f51GsrKbjyShLkMGvRFgNDDXSoBm6a2GuresDvK1QWCwZNgK9sj7wnUPMglEP6xHuCrZfIccyy7NfU5Hv0yRLKL2Q9au/AGyYptZF+DJFHUIxa0B4xTa+mZyuJcHYyVnrmyjCE8hEFSIlr9q8A2TdO4YB6ZrE+OM1+hoNmvR/3r8RwNsiuiU032YBCqOcniZRzA8plUMpOrYVZTHpOfRaEMOoG9S4TaIO656zVCv69HxZ2CmeOGJF1gzXlza+3q8wqqwxrvsX+TAAB/oBYRF0XSNNooIkNwAJnuU4ig7yQ= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR07MB0902; 23:3zLXqO3Fx+nQFYmIzoMkX6DsAiD1omwEG5YX0PuOc?= CydPjuOUdPg+976avcihaWnsKOq+N2Itky1D/dQppHyinmQoVi1VIASz0NyBccI0JvR9c/3XvqtGpnRK8TmpviQMtlmwwPoVzP5Tnq1w01nLeM1ZAu4o71eFT6Mo5ZxmBCHuyazzqgucZXL5k3eW/fnyqiHDUuEWoZA4NtMRmFAfU3utfqTp1OFqwisotp+qiiPZZqV7fFpL27RtD+zEYpbUOlhfO7XEANwwq5ZlZMOPwIp/yKekIN+uPeVW6r1nwdnFFI5lNsDyUfx46HBZzblx5R4r5st6I6/ta/A5POwh5qBOIw78F2rL9Ha64LrcZb2cCDchzn0I+6pyiPkBEhlYRbNUdVRmKolqEbBiynmcGiyupiC7nUx0NLHUDp4atJONNxk1z4SDvxYISoDTr6JRE0RfchFS+madx1Mvrfd4gnWKvc75DQe2NxapgzmT28s1CVpxBTqoYD8bFWxfnGqPMV+c9A9eAjOaLBZnXyH9oppr22uvXB730ftRysUPLSoaQvNG38iNRJ6rljHFsmIbOaAovx98EeUR6FOVpgHs2cfecsckP86QEt1jgd/S0DUScxHAdKX5p6BzZfHmnX5jxFJBUZ/8rCYxe2+UTHmaVskJRt7xMAlHWqFR7iWCYwQgBQHxxZH/0Me8G++hbqyx5R4bTqp9w8s9Hi23HsnsCcI3y6K3BzbCrZddkiTD/9fAMk1cbDtPXwRneAL6owTUq4xnoCGx7jMq5xUfjXTJtzTzp5cyf67H38i1uW9UEYInX772jybH8vYAjimgcD7NJgM8fdxOwDboKhi2jvOP+GbNOENlCeO2A1DKAQd1cb1jrn9Qd3ZRl41siNePiZbBqvWtv+xNECaZJrFAkwshx2EY4jJGcmY+9VRMS2i8lJpICJ3a07yiYMJ0l+ZMrBKpz/FkfCpyEXzlbnD005Gy/zs5gqYHj0LnZU07g6yFTegFpBeBqPLOpT8N+bAabjz46k21Uxh4tPMy/QpCmTI2w== X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0902; 6:sUe6gBn9Oz3sRnHKabirHIEZKc93ydvqB5yCY1CdD1hXm+mHBpgd8BbDMX4n4DU7CiceZTDh7KGhBXT/TPUR2mbNBM0QcmDpeJZHcM1beGPF973cGC09+aYDqH2FMRA2rL1tZxH7b9ql5+VaYmXTGpxxO7OwmvkAG3WL1V+SFWYPZTUtcmIEntEb/sV06GumcAdO29ToVwMrU72qr9PRqgic4WJ7Ss2y4nxkgHuj54ZUyUOxXE6EnAhZotrOQd+mR8sMxZM1+aFyevlw2FvL/uH6Cj5liqUl685zIl4WD2C4fZfk2Th6vGOO4J++j2KHSZ5TvHuB2mnX2ZdZTaMDV1lY3cQv/OPC+7Mr4pRc5utslO/0loE4EIAPU+tJp/E3o6xZQa5S0gxdS1TwDUsGdhbTFb8JDSNPXJj4gl9J1wpe6MHv59kaacoxYywCUc4f4b8hJuLTXNByQNnlKPuq1JcflzewiFFKy185nlsxebICELb0p5Ow9FDE0RelrUuj/5XLGC3gMAn6+NKfgeMPaheYMKBIqWtVUeI0V7eVXJA=; 5:5xPBlN/r2CIdvWPH8dJodcAyapL3xxrRsYtkj2ieo0p4H8mk8l12U55aDdtmKIz5DqzhhGUvJQQEHfh64yn0Xz+W2kC44ZjRTAz3LGKTiT7SI0qHtd0y8obbwF5brbuJGAgeffiEuzVVJWr+ILKXDQ==; 24:poTHF/KfOXzDJL5w8IMz/AnaZfz9KcFI5kLJXzPu3xkrxQVx/eCFGZ3ajtZZXs0R/Ok+taCMSajcGgZWGdnjU7moQHMcdMSkQpT7moybsJE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0902; 7:shzf8Wy4gzqmRp4QJdG55DdVurcgP4M4bq24D49Rs0KsJV4vxjHNUx/oH8u11wyvUMVk4oWQWtKYf6ZMqTiG0totRi07PHGGDX8o3y8QMpUn8w2vbof6X3KrkyVzV86JUDIUiCdE3OYrMBy8qKe1X8eRSnBe0ejXP+9K3vb2IUIQYK4oanDEFdKeR+GnmANcVsk3GS1iOrfHZC5gW2T/wv3oAXQIBKEUMEJIAHN+JqOQZ8RAzX3YYHu099xr6z84hon+VkQTGeC7eeqxP/M5cloz5fXQSsUgdSHvsx2YzmYk2aR3jUf46ClFGDnbHwW6e1X44n3e7s0I7VY4jRtMOw== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:53.0641 (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: DB5PR07MB0902 Subject: [lng-odp] [API-NEXT PATCH 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. 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/linux-generic/Makefile.am | 5 + platform/linux-generic/arch/arm/odp_cpu_arch.c | 11 + .../linux-generic/arch/arm/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/default/odp_cpu_arch.c | 11 + .../linux-generic/arch/default/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/mips64/odp_cpu_arch.c | 11 + .../linux-generic/arch/mips64/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/powerpc/odp_cpu_arch.c | 11 + .../linux-generic/arch/powerpc/odp_sysinfo_parse.c | 4 + platform/linux-generic/arch/x86/cpu_flags.c | 358 +++++++++++++++++++++ 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 | 20 ++ platform/linux-generic/odp_time.c | 303 +++++++++++++---- 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 27 files changed, 898 insertions(+), 96 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