From patchwork Fri Apr 21 13:11:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97896 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp319248qgf; Fri, 21 Apr 2017 06:12:02 -0700 (PDT) X-Received: by 10.237.45.2 with SMTP id h2mr8632185qtd.191.1492780321930; Fri, 21 Apr 2017 06:12:01 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id f73si9487161qkh.211.2017.04.21.06.12.01; Fri, 21 Apr 2017 06:12:01 -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 3105A62B63; Fri, 21 Apr 2017 13:12:01 +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 0B37661CB2; Fri, 21 Apr 2017 13:11:56 +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 5BDA96192F; Fri, 21 Apr 2017 13:11:54 +0000 (UTC) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00109.outbound.protection.outlook.com [40.107.0.109]) by lists.linaro.org (Postfix) with ESMTPS id D83DA6192F for ; Fri, 21 Apr 2017 13:11:52 +0000 (UTC) Received: from VI1PR07CA0020.eurprd07.prod.outlook.com (10.163.160.158) by HE1PR0701MB2122.eurprd07.prod.outlook.com (10.168.36.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Fri, 21 Apr 2017 13:11:51 +0000 Received: from DB5EUR03FT025.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::207) by VI1PR07CA0020.outlook.office365.com (2a01:111:e400:533d::30) 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:50 +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:50 +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 v3LDBY76025448 (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 v3LDBYOd025438 (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:27 +0300 Message-ID: <20170421131134.27992-2-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39450400003)(39860400002)(39850400002)(39400400002)(39840400002)(2980300002)(199003)(189002)(9170700003)(47776003)(106466001)(1076002)(38730400002)(110136004)(8936002)(2906002)(105596002)(53936002)(77096006)(2950100002)(36756003)(6666003)(305945005)(356003)(6916009)(33646002)(81166006)(76176999)(8676002)(5003940100001)(22756006)(2351001)(86362001)(50986999)(50466002)(5660300001)(48376002)(189998001)(50226002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB2122; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT025; 1:H2o1UPd4G655scOuYosJkMJ9kXFbyVloDGrAgn2AzQdurjE5uT2dED6Uomfrd38ZQnZB2i+RMjjMYvNU2Du66kEh2UabxZS8Bz0RxoXci1MB2MG6PyOtKPbK7syzjw6MmxBedyLE5LoZfhvUJyahlICK+xgwfwRilH1eL2lW0HrICo+2Lj9qBazC37EVGVxlFmHSxJ+rkV3UB0AUUZFpHlduDc3NlOSmYaovTC8Y4oeitHkplY+SzVo5fuW9PBQ3BiVCj5+QtucuaJ2qcLxWdU8KwuOgdfjImJ+yeiDLI4a9lO2OPF+mMfOrQrAdBWCLVtyHjEKuPHE+VCXnAqgOJPM+TJgjAiItauLZI4GKjr1wKsIwNa15ettv5Fyy/QE9vb/ZWcMMVN8YQ3PBzy24goYR0+yW78e0MoodCJaEubZv/uIyQrOgXYx7y3DaInuH+cMKdfK0nuxbDnDJVvpXjElyU+Zl+AszLTx57RqIBjleGfAMo81R4CJl0FPlMVqJMMBx0T0vXN0pSGmcKoBnmg== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 43865d93-5d1c-4c64-dd1d-08d488b7f8f2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:HE1PR0701MB2122; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2122; 3:Uc0/EfCvsd6Z/CTqfrzpoapm0AtZEblkxJhxiGeRV29v4+QvBsmcW/m92ksG3soKQ93+D5DKbvIv0NyLcYtL9rMAT147y7I2gYofi9i3ZZiW+gEdLc9jNDCHlbcahTe3ItYfAqxMKNulBnFi4Xm/sXZyb6qW+WHQPIoayzKgMlWh08fPu4wCU6TuuiNKZxP+UAaj7wO+jiZmxD3MtV+oiMZgn04MM0piJeWqpbJwI87LS2+LjJ6siotk82pxnhM13/Cswb9Nn1iLOeLLbKIkLMJRCop264ljS5CSNQSJKWAkx6RlezQood0w5MUSpbLWOeNF6tWTMLVhMU6569fy8GbMXOx9FB5mk0+zd7vBQOjkOeWt9Yp0cF4thTr3gIgL1yD91NKtLGZGMsbiVgHo6SCthIUXskhF+DxSG9DBBcwl7NBqrfeU3JhTR9q+9kI9DDMDZvBD2O8bLF7aTHSp6A== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2122; 25:7q8OvzvUNRnFdGb4mXfB+si7jUxv+YXWezNqgtmDn02ol0q5ExD9BCpuTDW3NrzBpnzYpM2OHLybttm2oZ8gEiVfcS3unsANjuNvvVNCvXoKJ+7Rm2QkF1x72/XJImrGw7rgfOXFg0lGZVByZQ6pMgPQEAeVXKHythjUNyXAV65OQRFETTuqAtnFMmQcABYrFr1O8wLmtpb3pifzFd09rDIcWsI4fHzYJFNP8mWIFbU3CGHdI4nWK8hukLR9gsXxRoNQj+pBV/rPwuN9zp1yi1rkqKPZSHlW0Jhx36Ce/MrgN6ts7DKeuoEDQteCjYyPQ8JmfyCXxTsXA5MfJnlRMjbEaiXAVBgIrBcQi4LFfpozvNMGBWtFMwciiRL5qg/RS00sLCLrfRtzkp/5F6iLc73NqAovkUbiRDeS5HUBeKAYU6pIDJ2XnfH3Cjcxpf6Dg+xtpWInaMnpEfk9T9tnRfkaV5YUrbMTwAXmNvoBkTI=; 31:b9DvUPIh/ju66+4nTdMNfqf8cLwhqBz0mCz0qRKrZG+ystQqjBqtDVZB18kjk/IDhwmGbKeU3X3tvxngAbNPcl1H0oNkPbpmLHsvtcvBA+uUIAJ/+MOx/QekefLret0oGmBS5hhXPDtMJI/9UhyBIR5+AFEIR68d95XKuh5hq2sXrCUBW3Ihagqk/14EQrxIfALaeoMbETMxwvs4kd6t821zp4J12eCUbc3vR/bng9DUsIQadWTv+DqvdjwOduLkdeigI7S9dJrrf9L4DOLgh0RX8WhY4uP6ZOkJ0ATbD3s= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2122; 20:gEpG5d281834lbYImcHuCspZZk5eKTw/gCKaotw2XxAsYyqjC7aC8/IWOlVfg3eEpO19Ez13PEu976qg2jBpKCnxfdIeTvy5WVbRgSNYF1lN8XwxHvtyh2JXcRceLr/z8NJyJB9XHLbVI+McFzA2xbhLkbubE06NPaqTywubfEHYXT4GLIXuS4NbckpDU1Lanq5VLDSbW8hVeqwmRVR6At5pTLxJbcB0xl7+43lrXcO8lj/SpZRWgCNlvtmDJgAgZxO9QjeqjbAhc9zwj0dOT6RGsKpBfaDRCUWeNgOPsOPCcTYJ3rEO+fWWubu+qd28M+9qaamFtS2V6ljLFMQvv511m6qmWqmjwV3t0mHbbtO/ai88kSd78aCyhcnUq+zzPvU0Wd/pEAb+T52sqgPlLXV9tYhduq3fLQ6xL7dK60QHZCVD//EcaOxU517UGW86mQaF+yo7m5c+xwQAjHvZ6ic1kYLqi1B0o+UZ9qqdGzYLmMEgOlhnjNf7FYsKgDMyaLd9MwtJI4heetYPg2f4VTdg9k7cc0zdXep8ixIBifveOZ+aSeRtmy49vXT54qpBkNcsfCAu7LxeOAIQMopKtgyNJ2H6TfcwrG5h86P75+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)(13023025)(13021025)(8121501046)(5005006)(93006095)(93003095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148); SRVR:HE1PR0701MB2122; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB2122; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2122; 4:fvONUaALz7DVrNAQ/ddT/Y860k/0Xa2c3G6URd9TMYou0BLdm11EtMu1yx4fYGCZppzG2QT2ZKryAby2u4Jn7EUuufr4OWxxoXSeEAk59zdAiQ9+Eg1aTEU4N0A5DtlR1Me1sIRHKR+gqU67uniwATehtKAeaXzDdegkpIy37j2g/0DWRSyUfRPITzPJmYizrggvjV5en5C8q41hmtpuFDMO1B8IZOKD+sDzfnIjbx/5Q7g7d8ASCdQuqoaPiPQpIAFpGenqhprGTPo0mrgaaAitmrXKRDQzWrk8ZJjns9HcqpUGL6g8hOXACSvUl40NbB4Z3KBaN16U/i0xSGu2w1JbuTI8Ktmpc6VWjw/1HritojATrNlt/q3D1ltoT9W9ZppMuCLiWwL52wX3pQeC4c++xQO4PRR1GQntTeSQQjUMJsZTtitjFq+H0OEcKygYWoonUZTkNtZ0r+fzIi1A6aW74xHGC6N6xfymfWsWMBbpvhpT8RLXfGUbh1xUrYMdYAYSrT8AtNGyDcGzDqdvTF5ler+H+MbFL2xPE89GPLXTDvg5KO7GCx6q/PmZ7nsOvQhMHNWAM8qVNISzHPxxSy9MA16LhS/sxlSLH5nylm5ujfDefZ84fOGxbGhFRd93LpjBfocyo/Ji/C9rNLaDz2lu5H2nuCfRZOHkQIOscU0nPDdMPBRsvZiRl5q7iYQD3E02q5yRHjPFnbm54lB+dO6HFDyvzhtFkOQGX32JKCp4t2Go5f1NLqlp4LlBw6QMoqQN98Pv5w6uNt/2iRypWhR06HwYpIYw8j6WpczFaaA= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0701MB2122; 23:WKTZKNDglNo4IgrorleRUa0QcfjSOYdZdiFVfOv?= 5FPqS3IxiYNC04A460rQEE9/PdNQDXwL3PTFKIijAn+R6BMdWhI2xQosGslJgK7D5DcZdRlxIpdI0oBN9E8pq+gaVE1n+1GwdUSttYN7SBmIr8njQN1Am3ziHCOLa4l6YTzoS0yHsPoVVOyl6Tpkz4dzmXSvc0jDTsqu4RxFnOb/Jk/OQYcKMYp1UbjpYQ6VsxApITgJC7LxWGBvJst47i6xLjSFONcRYhr1VIrOcIAt4N6gYSJo9QoAn4AIvPl0/BMp9AHYbymbkAtMbLuk2CfNYtBcE8qdlaKIU0wnqJBZ0qwBpR3xf2f7mhM1X0aR73PXA6+5A7tmDIfsqEMAx6Eh9sjOkfDL8Rm6bqdlY4SBcoKgpAT2ZoY1B+V1NYn1W5/Jgqd+C3hptGdRwkrSBwIkQn9NHnALfjQ+z0oM9JmTi8mFPI0fnqGvX3VTDVKXtKexk8W+saaaOmvYkt5ruRXcoe2/8grasxWSI62metg5XX2m5zNHTYjMPJjNCLlCf7JJGDj9LDYP/jBzrGLewlIvUZJ99tom45UuvHJgmUK5y0m3KUkYQ1jP6XoycNQvYgBrGonZFcaXX55opnpfJqi31rT/Qk+HqEyWIlkDoKoklJ5iEaIhRGu4PKh+jBfzXoqYOb2gbxsNOudy2aTdQJhmD6tNp2Y1lI2bK9lRmQWh7ccKG3NMTCk+alQTvCuG1nP0Dj4T/mn2rYCLeZ7wj2iWHUzTREUdH/AGUJUXRmC8qEjqd3awq+W3JTL5s/dct1eNQhpKP7DoOEJA7U5LK+dc/WNOXR6r0QpzGBfC1rsoG6mnW3kJMPC0XZu7xZZXRuwaOaFLS7FtDiCcH01DCgQKixCr2Rpao+62+3PXWslJF8lRLB+xkQcvz3rV5gVYEYIGSlHfPJleLZcxt9bwJGpNg8DQ5iVIyZcsJ6p29Wb5j0yVnesnTynGweP47uqBPf0LYV86jAXMY7emRJM+LteI3yrIznDJkE+OHPBhg09PJFw1YhX2LptZFylAKjvZ2l4S77yIPZYZ4EWXwg/xAYjV3 X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2122; 6:E5DYioNqBv7+Q9ZFLEMdEbqIxCGUkV5xezE7hNx4ExaSYAhsn24YP4k+HEuZjg1YC9CUVNGomx7WsOeE3+0w+qkE4Vtnbg/TQ/REMjxwpJcglvf57UZSVevkW4l5/4AfqfhlecDzeVMu8Z3eO+DZ9WItsQSTY2OBbuIQqNhKY60JPHLQYBOnsQNUi+U5eEkEzUAX7P3EMt9gvGx/DtCqrr6gIYoW5LkwRkAx2BHpQjW0KMVf4QwnkUNpBrzZl009InBiG29aPvpO+BViY9cSTYBcFu6mbXUe6T7MqB3wMpJt0dc0fvKqKwnw69zOQMzSjjK7ctRP9n6CaoXUjr23LhSmZv3zcD/aRl/+50PJHS3KwIKedyAOgQuT1MvXvEwsIfrYhbAOMEFUw6JbGZpFS2uIbaRcejPYIMkPUsdAMW/qx6wZIIYsHOkBBY0/9ermejRNoPYs0ErQAob9wNVfE/ALH4XNoMHrF5+NfPgmLdD9jnW8t9sqawNKqQCb/5e1VU3bBzOiaO65qMalvl+3+igo5Fb/JVJumbbIKtJAtHU=; 5:TGRBQq6OXhg4GdNEh1PrgKCQQbYqnFib9DAN0cgPuBMmTVK69nkYB4A70r8Mc9fQ//WquP+yElEjaXACV7A7HOT/Q0eNWIvIuUlqs/0lEsR/h1cqtdeazQE6qvCpPBiW0hhhCxuDVirXHVpIE9GfVA==; 24:60BksDLKMhM/xKnO0ia+P6I2smj/DVDJjyJzSybP6TAx7cAPwFMxKQfoihPU/NLxXE7C10n4pYBQW6CyJ0Ljbw1M9MKB31NDVn513tJGz/A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2122; 7:Zm78/RDg+MshoD314S/NTRXZoImDta2E2otut7k3ObEOoumYTHV0eSo84GdsHoTQXJck9Ttr3splwSpVenZhdbYyhuK6YIBKiDbSYezPG/VOhtYEQhgZw9Qvjzyyh+gjYJUn6GuO3rHsIjNtaJrKYcyaPRzcB2fzPRo2ZVS30EE4rv4XLi31e62MCZrH8CqPQ3N+Pg5dtryza3rts8XSF/luRxybj+rmEpuSxQPuXSJob/mHeMvhIakAo3Ww3G4CilTj8EWhw4CPXbW1hF3bTRNxspIK04MMJZ+3HioHUk+yvqsYInoebL7eeJQAkQ25zccW7pAXL7hPZ/7yKojY4A== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:50.1109 (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: HE1PR0701MB2122 Subject: [lng-odp] [API-NEXT PATCH 1/8] api: system: added system info print 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 information specifies the system where ODP application is running for debugging purposes. Signed-off-by: Petri Savolainen --- include/odp/api/spec/system_info.h | 9 +++++++++ 1 file changed, 9 insertions(+) -- 2.11.0 diff --git a/include/odp/api/spec/system_info.h b/include/odp/api/spec/system_info.h index 0bb4f1f1..ca4dcdc7 100644 --- a/include/odp/api/spec/system_info.h +++ b/include/odp/api/spec/system_info.h @@ -45,6 +45,15 @@ uint64_t odp_sys_page_size(void); int odp_sys_cache_line_size(void); /** + * Print system info + * + * Print out implementation defined information about the system. This + * information is intended for debugging purposes and may contain e.g. + * information about CPUs, memory and other HW configuration. + */ +void odp_sys_info_print(void); + +/** * @} */ From patchwork Fri Apr 21 13:11:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97905 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp322311qgf; Fri, 21 Apr 2017 06:18:59 -0700 (PDT) X-Received: by 10.200.58.230 with SMTP id x93mr8371626qte.60.1492780739594; Fri, 21 Apr 2017 06:18:59 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id r4si9519023qkl.142.2017.04.21.06.18.59; Fri, 21 Apr 2017 06:18:59 -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 4143C62B63; Fri, 21 Apr 2017 13:18:59 +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=-2.9 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, 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 DA8896337A; Fri, 21 Apr 2017 13:12:57 +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 A05BF61A49; Fri, 21 Apr 2017 13:12:40 +0000 (UTC) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00104.outbound.protection.outlook.com [40.107.0.104]) by lists.linaro.org (Postfix) with ESMTPS id 18B2661BAC for ; Fri, 21 Apr 2017 13:11:59 +0000 (UTC) Received: from DB6PR07CA0086.eurprd07.prod.outlook.com (10.175.238.24) by HE1PR07MB0907.eurprd07.prod.outlook.com (10.162.26.14) 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:56 +0000 Received: from VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::205) by DB6PR07CA0086.outlook.office365.com (2603:10a6:6:2b::24) 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:56 +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 VE1EUR03FT060.mail.protection.outlook.com (10.152.19.187) 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:55 +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 v3LDBYwu025452 (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 v3LDBYOe025438 (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:28 +0300 Message-ID: <20170421131134.27992-3-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39450400003)(39850400002)(39400400002)(39410400002)(39860400002)(39840400002)(2980300002)(199003)(189002)(9170700003)(50986999)(76176999)(36756003)(22756006)(2906002)(8936002)(5003940100001)(50226002)(47776003)(6666003)(2950100002)(6916009)(189998001)(50466002)(53936002)(48376002)(106466001)(105596002)(2351001)(356003)(305945005)(81166006)(8676002)(77096006)(33646002)(5660300001)(1076002)(86362001)(38730400002)(110136004)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR07MB0907; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT060; 1:YwpLC+/0kHfqnV0y0Z9TeiJBrzma/5pbUfX7iYpVYFP73gasTfC3cr08R1mALqEKEPzxQK8TqeJXx7INwpU1NOpDht2JQjFuLVc8DFpAM1y3japugjANFFrhcdWX/40iWhdNDfdeCUixG2c457P2s/lryjwuagtMfsrqYEeafI9P22WStSDCN9uLDIsk3Tz/XOkS1QtpKHbSj1b0q5Zztgv9bjt0NqTme7Ux1xxVnXUOyh/mZY7I+JlKnQz2P+5zSykqKuBlOgVz2L+iX+T3Gr747i1jc5axgB7A7tSYF8vMw778EREHASTWL27B/LceQz0ROQp0qN6TsdQeZLh5LonC9wzHnI/uhEuevKmVjlaU5oBKpwEzSx3+tz2RbFUhmRMdqPJtIfBHPzAXoDK3tICIvb9bwDPNTj1xoJ/sIt4LkwwgcuB6nPQVl6xJp+VAK5y97f7AkXnGT6aRAbhcunYAAlSKhc/PaREHSu9LtWoYhnra+f3FkhIVFzcVlLvacx3QDy3Y55Ee2ZwtmC52ug== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 45fb3663-5562-4348-64fa-08d488b7fc4a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:HE1PR07MB0907; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0907; 3:qt/33PeMedKDTMhpcUvh0gZFMAwPOh6cZJDxMpuK5CTJ7lqGiNEeqaV8mkROvekGJvd0rOCbAdIH3iMA/o0o1yWrSCRkqDrcpe0OTrKwASd9xisgywn5IvxXng+nSpH5Ww8GtGTg1ue/7c7FExNkyMWF2QvP6tF4PzdIXT5qLSBKLWN/rqQ2NXVn5a6mqFkj5Kd9v7ltPh1EYkaNI5R1yCKMoHjZ8zLJpsjCIc9JauQs3f5N3GjkGD+cd4EdOr5Z+vbcLlNWMNTIw2UgEysFBeAwWFXswRuJ0FfB1eSle2C8kepSiWFe2PYOcHOlBlZrbPAhpwaPOu6M3795qY4jOtdsiPXThcTHUA6XyF/Y2DRkWYn5YaQbmTEFgCb02sNUY7vTNojxKexaHQKc5F+pXLs4meyLnyzRydD6eZCBh+wQ2B+QooJxoL5OJ1k4UKcDhTmBLm/d5IhmV711uLB8BQ== X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0907; 25:RsCHBK69KxzO7IcvaSkV15CQhVRfnH0Kp5yp60fMgJBmAl+Z4Ux4tkqZU0VlFvwqd3iHwISEN9qBsydoXRLEeDw4aAkTNDRjgLyr5jYcH5lpFsS7b2prny+aczfsX/76p/4EGdsQWOKRCl/Oorw7srYiayeHtK132iLelFBd7FQN6Vik/LXa2oXMQ42jAmLm6s9bSAXrI58soYx9Qm6GzsDt462sl60AuCBy+zpo+KMBsv6soKI0w1v2zDpeDsR7BbmubG5dIYUBjps1b1hLcjDjBJXMu/db8qYaaj7Y1MmkZREr/5C50ho+e4qulNlylrJAvAkbQmxD6cSSZtscohexoal1eMjqdn7StQh+M17pb1Is+SpvKTt1i4ixRNQpfXydQDTqvaG1gdKa+ILDFL0aC0MN4v4r1mYDQNsfzdPlFaimRUwfhyPa6DZDKyo4xmsFwuobpGm9X9xlWeBnc/eGKqgXAXrhkdmv9X9SWT8=; 31:0sCj53GSnfY8CgB1q6n3Ink6p/tCzikE/bgwlbpFZyUBI4eBQ5Fm1lsfJrgKhJfDJQsovzZb36qlcVUHt/B4X2+c7e8dw0UT7ip7Q4HQA2WRnBsekfeTpuwGAUd6iuWUVfFs5n2icqJOhhTH3hbwGUKVZMBtD8kLzIQ6QW6KJRl8wkvSxb+WuY/bV2VxPGuWpOjD4ZBqyqbT6eXKRs1qn/gYtesVvRCBp6PS3R+k39ZQ8jukJw46xdnPo8tBs8R6Gu22xn5JpH9WuIATJbArEA== X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0907; 20:KNUjG6zPPMdAcavLJNBRJ4q3SYglgbL0uP6aZVY1P3JKLyqB8zUJCoN+E+dSIKJiT5n7Xr2c7OA/ipoOppMOVbRvS4v7FBKjG3bSrPqrUegrkWQHXJY2KhrgLnkGJUQpaKxyPhqzcyv09B2EZIMaxR5ilJ1wwfZO21sLDvHL4tshkk0iSi2yIoc+2jhkn+JhE/4jDNUdaPxcAEUvjqX6pADnY1BqowNmbtJm7H2Azsb3bCWgsHTmTexeToxSWddPElBt7OmR3zAAx0zS9mAF1g7H0FKp9Rek5XPUqXfHpz+DQUe7OdlPnOUljAlQEd8LpzEB3jmIJgn0YM2IJ07ZhEzkxHxFdkpam35UBlorMeO7YeyMRo1z6eaLUgeAkNkEYB9qjZg0lHO/oOD8yMP7DYMb+bfs84ayP/HJaeHfmxxdE2VBRjQlbprKw1t5NIxBbpAFw2DcaVVPkrMOAZ1d4mOWwuVha8Gz0OSK+9fe0TcevSOxrtZ9SnXY16MbJr9AnNs9/UMeZqfY2kRKi2Da6ic8HPbt6BVWvd9+EgaleH7BOkI7jINWxXe0Glp70WQqcLyElPTpVd/9YiP2D/Gekz5QQcA7iHObUWQiEqUwbZo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(13023025)(13013025)(13021025)(93006095)(93003095)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:HE1PR07MB0907; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0907; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0907; 4:YUwU/82yqLq1qmRwOo1JSxvZcF7N1V4UUQlAOskABd82aoQ/j1H82D9JmngdQCZ6fpwk7lN9UbK6NmEvUsMfazcf1HjiE1Xiou4UFFJf2gPAnfRxYAwWOsKN/gADrnAdrmDox9A31LU5jmvazb1yDj/jroUT9tmlhVfoM2mFZ9oakuanXK9PUiYcSHmYc/rwpDXJrvPR6EjRR4T24xq54FI9TxXICCgnLKpj0YV/EbXoyu7NlHG8LaK+q2f9n/hKkODP5zKQvqyeHePjSgf+29L/nrw480QS1Qy/+9u6EqFIO0OWVlzg+cQjk8ksM3mTldRkLeov0xCQe8A4ZCaiJj94fE8CnmqZYh0xrCzozTDLo1LNK063aLtIMwUv1vafNtZPIL4+VrxaFjMnLTibkdD+JUPZ7dtCCXHF6/NFSzHQvQXkQANOv0eNejQ8VLe274Og/dyBPJVFnkK0hIwVxIGG208FjGDGyEZGgiS0P3tGjT+y4PoST4wpHpgA1azNdaGBteDMPtFoQ8gQvU+MDcD9sQ9C3Kc0MWm67lWX9EeUmQbHUszKrV6OSC0avtdr99mrRVulznfYXvum6FCKBaCbe0f9ChYdwLs5sVBWqchj1YUlJnP05Oe38QfhVneaBF/uIEW9VZHb3O1tZZjwut237R/oypq9xCDUwyY65ABC6TsEyx+ar/iDnOc5T2pFfHU7fbkUGdDrylaLSvgOQbw0gT46e1y3uz8LRV1KbXay+f2GTl3y+6NiZLe41NbiV3/d0c98YPr5FAHBNqSTB9Vx2dZ95FgR14AmAZOyQHU= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB0907; 23:eYyLc7mLWredPdSprSzuvgIoMmuPMrhU2OK59us/p?= mIjN/nE9GxobP2zCaCxA0VkEID8xzfEq6S0GzHFFG3w9n2BUuYVIpuJSnCqlfkX/cH4SXycZlou+tt88PuaI5kwV5UqVlWSZ9enG1vH9rvPQZ5qyzv3Uq5VPdzhLxA0ffHr85+VuvAmAux/mJ99MzTcREmmBP3MjSdJVGhc/OQnExiuD2nj92+qNNIG4bK056udvG5DtI9ldiKs3/eue8s3L6wAjBERt3Uhi9nI6fGG6dNxJprj0JRX+J/N2WI+XGyt7faQ7JPQlJabt74ukB+88BglqmURUwd3o0Wp1uMXndIRZ8G7SOAZzq8Gy9PXi+x9CgbWEK4cJihdyZB5MEjzJTe7hkoi9DPJ0dMs3EhdYMba4FzIBIVSnwmxak7zoX5y2FdwOse31xcXerhhxHCGAoPcPRVAlOyTjSS1BievchZcQyJ78wlSxMdzSKxSu6X0t5goTmwrUqtozsf19CQbu94wP1bVs0y0PEG1PwSofod7h+O0JQjmj0DY4ez0W9+O8Lv1pzFRrrgzdInQ5O+1jA6kzNs0+i87KN35lq4miI4DtsYkqV0xsK74GZHmZYOQ9Aya9ZQalwRCn9iXYC6AEZ/FupbSh2EEnR6l8JRY2c3tX2MF2xujuidNAwbUd8/WNm8d0LPlUekSMdjp3HxWBP/308HP/1unJP/uycMGAyuTX3V2e05BmILRdMcAuJt885PeExz82JIP1h6UapdS8uhNwyGB0Fhh9bbk1tHC4Sakqwjhy4trI0/3npn1xFQiVH0d/k4MIWkY/YzN6P2bVhyxojW3l45m6iGNB63c0QpTCJwLvQYsesAPFY71bLm2Innu4KpZB1TPZcZmzzlXWXtQ/phk4J57HtBvRW/zWNVnPwf/3aaMjPxKo3JFZWaI72kAAYRMaoWemLm293v4Dgl9n4ZSVRWoX29WXYGA7TX1oozdy00s/Fg/iGeizlXYyjwjzFtTZHNnLMYZGn3/HttXPq0ZCHoTJ8If5xNmOlfd7aBkyEarv6jMFrDwUlHrQBvlxApZUixZvUEJc2lW X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0907; 6:Ly7KnCJxUs2H2UNm/AtRYFGfaR579BoN9U5ZR13qyjX8Nf3vTV7qao3WnOJ0Rdx5vaw4qzLT41BqNnoRmNAtBn9i4kzN3RV5aqhxa6mMUrx2x1Q1LL6ZORk4PbRxuM15+5lmYSLIrevAr6tAxcbq2O9BnJfanIwSigGujN17IK+sN0EzOLldJblFuOFktmSjR6q5QKoJEj0Z/8WJVIr47p/8B4tvag1tXg73tDqFtb0LaHhof0R+UOtKr7Yw5yY42iI+meAHCzp3BYsL4Qfg00QEp1mt+N9ops8GnXswMdAL6cXUCreh1aYklY08NeeDslPPboQlV4T1eSPSktq9lXGi4CBmcFt+g77fFOu8G6QTQQtTeSMHlmtZNF6vLTHU0Jv98j9KSxzEiSTKaiCZ05qzDnBXZ0VKxd3uu6yDr39VSWB8ZEDuicITSppusQ6dbI/oRkmTacPSJMU+b8vkKy06h3fll7q8GAN0O0D0iq6FtGQA2pyYXYadt02LiuUtl/c9zOqSNm07KIP0rVpXORILHFvawcVFIFaq9reO9pA=; 5:JyR4bfVUNTJHkzQ+7ZKOcq7AYN0x2vff/64jX0xuEMywrQP5Le2dAW6nr03UZMvOmlKcuSDneaQBUtvC3AkEhPfRQoZ8jsqME6LeVeysBdvw+W1bGFcHvszoWCwRk6ZVfwNMHc6tuyayZHLVn80jLw==; 24:+NCv1eYwswd6dHC9FSubEI/aGcCPJXY4fRqRssJV6Ll2ivvRK13ffNivhbxAXkfIkXm+lHLQA5FPkZwneVjpnnkCjs2hm2TBf8IaG+VCVM0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0907; 7:C/3ysBs7lBXTpqVY2RlJok+DfusUB1GuP/r/AEZB7rsVzNr/dcr9hb/4QpvbGeyIg61kasxRcbRyP8X6iHMiBRBkB59Mi8c6hCHdhsaXWIo8/Q5quQ05Cnyh2kjZXRH5iapuXAGfJYalsHGUghS/PbkFhxCDRxp1XaprUwJJc295D5SfJFHrO+p3mjD4iG3Gv0DD+p24EmA668lefBjx+UXaJXxN/P7ur6UwWgjTm/GXKW/7Qe66dLMEE9pYDLvYbEwbmpC84l/Qod9KN8K69mgUgTNmmWRAwDm09XPElgZJN5mBzpsL9A0nCofjHXX3H2IDZSwdyDR+cur1HGujIg== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:55.7334 (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: HE1PR07MB0907 Subject: [lng-odp] [API-NEXT PATCH 2/8] linux-gen: cpu_flags: added x86 cpu flag read functions 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" When building on x86 CPU flags can be used to determine which CPU features are supported. CPU flag definitions and the code to read the flags is from DPDK. Signed-off-by: Petri Savolainen --- configure.ac | 1 + platform/linux-generic/Makefile.am | 4 + platform/linux-generic/arch/x86/cpu_flags.c | 349 ++++++++++++++++++++++++++++ platform/linux-generic/arch/x86/cpu_flags.h | 20 ++ 4 files changed, 374 insertions(+) create mode 100644 platform/linux-generic/arch/x86/cpu_flags.c create mode 100644 platform/linux-generic/arch/x86/cpu_flags.h -- 2.11.0 diff --git a/configure.ac b/configure.ac index e86e2dca..38129030 100644 --- a/configure.ac +++ b/configure.ac @@ -224,6 +224,7 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test "x${DOXYGEN}" = "xdoxygen"]) AM_CONDITIONAL([user_guide], [test "x${user_guides}" = "xyes" ]) AM_CONDITIONAL([HAVE_MSCGEN], [test "x${MSCGEN}" = "xmscgen"]) AM_CONDITIONAL([helper_linux], [test x$helper_linux = xyes ]) +AM_CONDITIONAL([ARCH_IS_X86], [test "x${ARCH_DIR}" = "xx86"]) ########################################################################## # Setup doxygen documentation diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 81a19011..60b7f849 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -252,6 +252,10 @@ __LIB__libodp_linux_la_SOURCES = \ arch/@ARCH_DIR@/odp_cpu_arch.c \ arch/@ARCH_DIR@/odp_sysinfo_parse.c +if ARCH_IS_X86 +__LIB__libodp_linux_la_SOURCES += arch/@ARCH_DIR@/cpu_flags.c +endif + if HAVE_PCAP __LIB__libodp_linux_la_SOURCES += pktio/pcap.c endif diff --git a/platform/linux-generic/arch/x86/cpu_flags.c b/platform/linux-generic/arch/x86/cpu_flags.c new file mode 100644 index 00000000..8fb9477a --- /dev/null +++ b/platform/linux-generic/arch/x86/cpu_flags.c @@ -0,0 +1,349 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/*- + * BSD LICENSE + * + * Copyright(c) 2010-2015 Intel Corporation. All rights reserved. + * All rights reserved. + * + * 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 Intel Corporation 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 +#include + +enum rte_cpu_flag_t { + /* (EAX 01h) ECX features*/ + RTE_CPUFLAG_SSE3 = 0, /**< SSE3 */ + RTE_CPUFLAG_PCLMULQDQ, /**< PCLMULQDQ */ + RTE_CPUFLAG_DTES64, /**< DTES64 */ + RTE_CPUFLAG_MONITOR, /**< MONITOR */ + RTE_CPUFLAG_DS_CPL, /**< DS_CPL */ + RTE_CPUFLAG_VMX, /**< VMX */ + RTE_CPUFLAG_SMX, /**< SMX */ + RTE_CPUFLAG_EIST, /**< EIST */ + RTE_CPUFLAG_TM2, /**< TM2 */ + RTE_CPUFLAG_SSSE3, /**< SSSE3 */ + RTE_CPUFLAG_CNXT_ID, /**< CNXT_ID */ + RTE_CPUFLAG_FMA, /**< FMA */ + RTE_CPUFLAG_CMPXCHG16B, /**< CMPXCHG16B */ + RTE_CPUFLAG_XTPR, /**< XTPR */ + RTE_CPUFLAG_PDCM, /**< PDCM */ + RTE_CPUFLAG_PCID, /**< PCID */ + RTE_CPUFLAG_DCA, /**< DCA */ + RTE_CPUFLAG_SSE4_1, /**< SSE4_1 */ + RTE_CPUFLAG_SSE4_2, /**< SSE4_2 */ + RTE_CPUFLAG_X2APIC, /**< X2APIC */ + RTE_CPUFLAG_MOVBE, /**< MOVBE */ + RTE_CPUFLAG_POPCNT, /**< POPCNT */ + RTE_CPUFLAG_TSC_DEADLINE, /**< TSC_DEADLINE */ + RTE_CPUFLAG_AES, /**< AES */ + RTE_CPUFLAG_XSAVE, /**< XSAVE */ + RTE_CPUFLAG_OSXSAVE, /**< OSXSAVE */ + RTE_CPUFLAG_AVX, /**< AVX */ + RTE_CPUFLAG_F16C, /**< F16C */ + RTE_CPUFLAG_RDRAND, /**< RDRAND */ + + /* (EAX 01h) EDX features */ + RTE_CPUFLAG_FPU, /**< FPU */ + RTE_CPUFLAG_VME, /**< VME */ + RTE_CPUFLAG_DE, /**< DE */ + RTE_CPUFLAG_PSE, /**< PSE */ + RTE_CPUFLAG_TSC, /**< TSC */ + RTE_CPUFLAG_MSR, /**< MSR */ + RTE_CPUFLAG_PAE, /**< PAE */ + RTE_CPUFLAG_MCE, /**< MCE */ + RTE_CPUFLAG_CX8, /**< CX8 */ + RTE_CPUFLAG_APIC, /**< APIC */ + RTE_CPUFLAG_SEP, /**< SEP */ + RTE_CPUFLAG_MTRR, /**< MTRR */ + RTE_CPUFLAG_PGE, /**< PGE */ + RTE_CPUFLAG_MCA, /**< MCA */ + RTE_CPUFLAG_CMOV, /**< CMOV */ + RTE_CPUFLAG_PAT, /**< PAT */ + RTE_CPUFLAG_PSE36, /**< PSE36 */ + RTE_CPUFLAG_PSN, /**< PSN */ + RTE_CPUFLAG_CLFSH, /**< CLFSH */ + RTE_CPUFLAG_DS, /**< DS */ + RTE_CPUFLAG_ACPI, /**< ACPI */ + RTE_CPUFLAG_MMX, /**< MMX */ + RTE_CPUFLAG_FXSR, /**< FXSR */ + RTE_CPUFLAG_SSE, /**< SSE */ + RTE_CPUFLAG_SSE2, /**< SSE2 */ + RTE_CPUFLAG_SS, /**< SS */ + RTE_CPUFLAG_HTT, /**< HTT */ + RTE_CPUFLAG_TM, /**< TM */ + RTE_CPUFLAG_PBE, /**< PBE */ + + /* (EAX 06h) EAX features */ + RTE_CPUFLAG_DIGTEMP, /**< DIGTEMP */ + RTE_CPUFLAG_TRBOBST, /**< TRBOBST */ + RTE_CPUFLAG_ARAT, /**< ARAT */ + RTE_CPUFLAG_PLN, /**< PLN */ + RTE_CPUFLAG_ECMD, /**< ECMD */ + RTE_CPUFLAG_PTM, /**< PTM */ + + /* (EAX 06h) ECX features */ + RTE_CPUFLAG_MPERF_APERF_MSR, /**< MPERF_APERF_MSR */ + RTE_CPUFLAG_ACNT2, /**< ACNT2 */ + RTE_CPUFLAG_ENERGY_EFF, /**< ENERGY_EFF */ + + /* (EAX 07h, ECX 0h) EBX features */ + RTE_CPUFLAG_FSGSBASE, /**< FSGSBASE */ + RTE_CPUFLAG_BMI1, /**< BMI1 */ + RTE_CPUFLAG_HLE, /**< Hardware Lock elision */ + RTE_CPUFLAG_AVX2, /**< AVX2 */ + RTE_CPUFLAG_SMEP, /**< SMEP */ + RTE_CPUFLAG_BMI2, /**< BMI2 */ + RTE_CPUFLAG_ERMS, /**< ERMS */ + RTE_CPUFLAG_INVPCID, /**< INVPCID */ + RTE_CPUFLAG_RTM, /**< Transactional memory */ + RTE_CPUFLAG_AVX512F, /**< AVX512F */ + + /* (EAX 80000001h) ECX features */ + RTE_CPUFLAG_LAHF_SAHF, /**< LAHF_SAHF */ + RTE_CPUFLAG_LZCNT, /**< LZCNT */ + + /* (EAX 80000001h) EDX features */ + RTE_CPUFLAG_SYSCALL, /**< SYSCALL */ + RTE_CPUFLAG_XD, /**< XD */ + RTE_CPUFLAG_1GB_PG, /**< 1GB_PG */ + RTE_CPUFLAG_RDTSCP, /**< RDTSCP */ + RTE_CPUFLAG_EM64T, /**< EM64T */ + + /* (EAX 80000007h) EDX features */ + RTE_CPUFLAG_INVTSC, /**< INVTSC */ + + /* The last item */ + RTE_CPUFLAG_NUMFLAGS, /**< This should always be the last! */ +}; + +enum cpu_register_t { + RTE_REG_EAX = 0, + RTE_REG_EBX, + RTE_REG_ECX, + RTE_REG_EDX, +}; + +typedef uint32_t cpuid_registers_t[4]; + +/** + * Struct to hold a processor feature entry + */ +struct feature_entry { + uint32_t leaf; /**< cpuid leaf */ + uint32_t subleaf; /**< cpuid subleaf */ + uint32_t reg; /**< cpuid register */ + uint32_t bit; /**< cpuid register bit */ +#define CPU_FLAG_NAME_MAX_LEN 64 + char name[CPU_FLAG_NAME_MAX_LEN]; /**< String for printing */ +}; + +#define FEAT_DEF(name, leaf, subleaf, reg, bit) \ + [RTE_CPUFLAG_##name] = {leaf, subleaf, reg, bit, #name }, + +static const struct feature_entry cpu_feature_table[] = { + FEAT_DEF(SSE3, 0x00000001, 0, RTE_REG_ECX, 0) + FEAT_DEF(PCLMULQDQ, 0x00000001, 0, RTE_REG_ECX, 1) + FEAT_DEF(DTES64, 0x00000001, 0, RTE_REG_ECX, 2) + FEAT_DEF(MONITOR, 0x00000001, 0, RTE_REG_ECX, 3) + FEAT_DEF(DS_CPL, 0x00000001, 0, RTE_REG_ECX, 4) + FEAT_DEF(VMX, 0x00000001, 0, RTE_REG_ECX, 5) + FEAT_DEF(SMX, 0x00000001, 0, RTE_REG_ECX, 6) + FEAT_DEF(EIST, 0x00000001, 0, RTE_REG_ECX, 7) + FEAT_DEF(TM2, 0x00000001, 0, RTE_REG_ECX, 8) + FEAT_DEF(SSSE3, 0x00000001, 0, RTE_REG_ECX, 9) + FEAT_DEF(CNXT_ID, 0x00000001, 0, RTE_REG_ECX, 10) + FEAT_DEF(FMA, 0x00000001, 0, RTE_REG_ECX, 12) + FEAT_DEF(CMPXCHG16B, 0x00000001, 0, RTE_REG_ECX, 13) + FEAT_DEF(XTPR, 0x00000001, 0, RTE_REG_ECX, 14) + FEAT_DEF(PDCM, 0x00000001, 0, RTE_REG_ECX, 15) + FEAT_DEF(PCID, 0x00000001, 0, RTE_REG_ECX, 17) + FEAT_DEF(DCA, 0x00000001, 0, RTE_REG_ECX, 18) + FEAT_DEF(SSE4_1, 0x00000001, 0, RTE_REG_ECX, 19) + FEAT_DEF(SSE4_2, 0x00000001, 0, RTE_REG_ECX, 20) + FEAT_DEF(X2APIC, 0x00000001, 0, RTE_REG_ECX, 21) + FEAT_DEF(MOVBE, 0x00000001, 0, RTE_REG_ECX, 22) + FEAT_DEF(POPCNT, 0x00000001, 0, RTE_REG_ECX, 23) + FEAT_DEF(TSC_DEADLINE, 0x00000001, 0, RTE_REG_ECX, 24) + FEAT_DEF(AES, 0x00000001, 0, RTE_REG_ECX, 25) + FEAT_DEF(XSAVE, 0x00000001, 0, RTE_REG_ECX, 26) + FEAT_DEF(OSXSAVE, 0x00000001, 0, RTE_REG_ECX, 27) + FEAT_DEF(AVX, 0x00000001, 0, RTE_REG_ECX, 28) + FEAT_DEF(F16C, 0x00000001, 0, RTE_REG_ECX, 29) + FEAT_DEF(RDRAND, 0x00000001, 0, RTE_REG_ECX, 30) + + FEAT_DEF(FPU, 0x00000001, 0, RTE_REG_EDX, 0) + FEAT_DEF(VME, 0x00000001, 0, RTE_REG_EDX, 1) + FEAT_DEF(DE, 0x00000001, 0, RTE_REG_EDX, 2) + FEAT_DEF(PSE, 0x00000001, 0, RTE_REG_EDX, 3) + FEAT_DEF(TSC, 0x00000001, 0, RTE_REG_EDX, 4) + FEAT_DEF(MSR, 0x00000001, 0, RTE_REG_EDX, 5) + FEAT_DEF(PAE, 0x00000001, 0, RTE_REG_EDX, 6) + FEAT_DEF(MCE, 0x00000001, 0, RTE_REG_EDX, 7) + FEAT_DEF(CX8, 0x00000001, 0, RTE_REG_EDX, 8) + FEAT_DEF(APIC, 0x00000001, 0, RTE_REG_EDX, 9) + FEAT_DEF(SEP, 0x00000001, 0, RTE_REG_EDX, 11) + FEAT_DEF(MTRR, 0x00000001, 0, RTE_REG_EDX, 12) + FEAT_DEF(PGE, 0x00000001, 0, RTE_REG_EDX, 13) + FEAT_DEF(MCA, 0x00000001, 0, RTE_REG_EDX, 14) + FEAT_DEF(CMOV, 0x00000001, 0, RTE_REG_EDX, 15) + FEAT_DEF(PAT, 0x00000001, 0, RTE_REG_EDX, 16) + FEAT_DEF(PSE36, 0x00000001, 0, RTE_REG_EDX, 17) + FEAT_DEF(PSN, 0x00000001, 0, RTE_REG_EDX, 18) + FEAT_DEF(CLFSH, 0x00000001, 0, RTE_REG_EDX, 19) + FEAT_DEF(DS, 0x00000001, 0, RTE_REG_EDX, 21) + FEAT_DEF(ACPI, 0x00000001, 0, RTE_REG_EDX, 22) + FEAT_DEF(MMX, 0x00000001, 0, RTE_REG_EDX, 23) + FEAT_DEF(FXSR, 0x00000001, 0, RTE_REG_EDX, 24) + FEAT_DEF(SSE, 0x00000001, 0, RTE_REG_EDX, 25) + FEAT_DEF(SSE2, 0x00000001, 0, RTE_REG_EDX, 26) + FEAT_DEF(SS, 0x00000001, 0, RTE_REG_EDX, 27) + FEAT_DEF(HTT, 0x00000001, 0, RTE_REG_EDX, 28) + FEAT_DEF(TM, 0x00000001, 0, RTE_REG_EDX, 29) + FEAT_DEF(PBE, 0x00000001, 0, RTE_REG_EDX, 31) + + FEAT_DEF(DIGTEMP, 0x00000006, 0, RTE_REG_EAX, 0) + FEAT_DEF(TRBOBST, 0x00000006, 0, RTE_REG_EAX, 1) + FEAT_DEF(ARAT, 0x00000006, 0, RTE_REG_EAX, 2) + FEAT_DEF(PLN, 0x00000006, 0, RTE_REG_EAX, 4) + FEAT_DEF(ECMD, 0x00000006, 0, RTE_REG_EAX, 5) + FEAT_DEF(PTM, 0x00000006, 0, RTE_REG_EAX, 6) + + FEAT_DEF(MPERF_APERF_MSR, 0x00000006, 0, RTE_REG_ECX, 0) + FEAT_DEF(ACNT2, 0x00000006, 0, RTE_REG_ECX, 1) + FEAT_DEF(ENERGY_EFF, 0x00000006, 0, RTE_REG_ECX, 3) + + FEAT_DEF(FSGSBASE, 0x00000007, 0, RTE_REG_EBX, 0) + FEAT_DEF(BMI1, 0x00000007, 0, RTE_REG_EBX, 2) + FEAT_DEF(HLE, 0x00000007, 0, RTE_REG_EBX, 4) + FEAT_DEF(AVX2, 0x00000007, 0, RTE_REG_EBX, 5) + FEAT_DEF(SMEP, 0x00000007, 0, RTE_REG_EBX, 6) + FEAT_DEF(BMI2, 0x00000007, 0, RTE_REG_EBX, 7) + FEAT_DEF(ERMS, 0x00000007, 0, RTE_REG_EBX, 8) + FEAT_DEF(INVPCID, 0x00000007, 0, RTE_REG_EBX, 10) + FEAT_DEF(RTM, 0x00000007, 0, RTE_REG_EBX, 11) + FEAT_DEF(AVX512F, 0x00000007, 0, RTE_REG_EBX, 16) + + FEAT_DEF(LAHF_SAHF, 0x80000001, 0, RTE_REG_ECX, 0) + FEAT_DEF(LZCNT, 0x80000001, 0, RTE_REG_ECX, 4) + + FEAT_DEF(SYSCALL, 0x80000001, 0, RTE_REG_EDX, 11) + FEAT_DEF(XD, 0x80000001, 0, RTE_REG_EDX, 20) + FEAT_DEF(1GB_PG, 0x80000001, 0, RTE_REG_EDX, 26) + FEAT_DEF(RDTSCP, 0x80000001, 0, RTE_REG_EDX, 27) + FEAT_DEF(EM64T, 0x80000001, 0, RTE_REG_EDX, 29) + + FEAT_DEF(INVTSC, 0x80000007, 0, RTE_REG_EDX, 8) +}; + +/* + * Execute CPUID instruction and get contents of a specific register + * + * This function, when compiled with GCC, will generate architecture-neutral + * code, as per GCC manual. + */ +static void cpu_get_features(uint32_t leaf, uint32_t subleaf, + cpuid_registers_t out) +{ +#if defined(__i386__) && defined(__PIC__) + /* %ebx is a forbidden register if we compile with -fPIC or -fPIE */ + __asm__ __volatile__("movl %%ebx,%0 ; cpuid ; xchgl %%ebx,%0" + : "=r" (out[RTE_REG_EBX]), + "=a" (out[RTE_REG_EAX]), + "=c" (out[RTE_REG_ECX]), + "=d" (out[RTE_REG_EDX]) + : "a" (leaf), "c" (subleaf)); +#else + __asm__ __volatile__("cpuid" + : "=a" (out[RTE_REG_EAX]), + "=b" (out[RTE_REG_EBX]), + "=c" (out[RTE_REG_ECX]), + "=d" (out[RTE_REG_EDX]) + : "a" (leaf), "c" (subleaf)); +#endif +} + +static int cpu_get_flag_enabled(enum rte_cpu_flag_t feature) +{ + const struct feature_entry *feat; + cpuid_registers_t regs; + + if (feature >= RTE_CPUFLAG_NUMFLAGS) + /* Flag does not match anything in the feature tables */ + return -1; + + feat = &cpu_feature_table[feature]; + + if (!feat->leaf) + /* This entry in the table wasn't filled out! */ + return -1; + + cpu_get_features(feat->leaf & 0xffff0000, 0, regs); + if (((regs[RTE_REG_EAX] ^ feat->leaf) & 0xffff0000) || + regs[RTE_REG_EAX] < feat->leaf) + return 0; + + /* get the cpuid leaf containing the desired feature */ + cpu_get_features(feat->leaf, feat->subleaf, regs); + + /* check if the feature is enabled */ + return (regs[feat->reg] >> feat->bit) & 1; +} + +static const char *cpu_get_flag_name(enum rte_cpu_flag_t feature) +{ + if (feature >= RTE_CPUFLAG_NUMFLAGS) + return NULL; + return cpu_feature_table[feature].name; +} + +void cpu_flags_print_all(void) +{ + int i; + + printf("CPU features supported:\n"); + for (i = 0; i < RTE_CPUFLAG_NUMFLAGS; i++) { + if (cpu_get_flag_enabled(i) > 0) + printf("%s ", cpu_get_flag_name(i)); + } + + printf("\n\n"); + + printf("CPU features NOT supported:\n"); + for (i = 0; i < RTE_CPUFLAG_NUMFLAGS; i++) { + if (cpu_get_flag_enabled(i) <= 0) + printf("%s ", cpu_get_flag_name(i)); + } + + printf("\n\n"); +} diff --git a/platform/linux-generic/arch/x86/cpu_flags.h b/platform/linux-generic/arch/x86/cpu_flags.h new file mode 100644 index 00000000..f709ca08 --- /dev/null +++ b/platform/linux-generic/arch/x86/cpu_flags.h @@ -0,0 +1,20 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef ODP_PLAT_CPU_FLAGS_H_ +#define ODP_PLAT_CPU_FLAGS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +void cpu_flags_print_all(void); + +#ifdef __cplusplus +} +#endif + +#endif From patchwork Fri Apr 21 13:11:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97901 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp320729qgf; Fri, 21 Apr 2017 06:15:17 -0700 (PDT) X-Received: by 10.55.92.3 with SMTP id q3mr12900285qkb.164.1492780517186; Fri, 21 Apr 2017 06:15:17 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id a41si9511210qte.176.2017.04.21.06.15.17; Fri, 21 Apr 2017 06:15:17 -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 DF34B63360; Fri, 21 Apr 2017 13:15:16 +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 4D0A363368; Fri, 21 Apr 2017 13:12:23 +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 F0A5563364; Fri, 21 Apr 2017 13:12:14 +0000 (UTC) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20110.outbound.protection.outlook.com [40.107.2.110]) by lists.linaro.org (Postfix) with ESMTPS id 6180961CE9 for ; Fri, 21 Apr 2017 13:11:56 +0000 (UTC) Received: from VI1PR07CA0020.eurprd07.prod.outlook.com (10.163.160.158) by VI1PR0701MB2126.eurprd07.prod.outlook.com (10.169.137.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Fri, 21 Apr 2017 13:11:54 +0000 Received: from DB5EUR03FT025.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::207) by VI1PR07CA0020.outlook.office365.com (2a01:111:e400:533d::30) 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:54 +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:54 +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 v3LDBYcT025458 (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 v3LDBYOf025438 (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:29 +0300 Message-ID: <20170421131134.27992-4-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39860400002)(39400400002)(39850400002)(39450400003)(39840400002)(39410400002)(2980300002)(199003)(189002)(9170700003)(8676002)(356003)(5003940100001)(81166006)(77096006)(50986999)(2906002)(8936002)(76176999)(305945005)(6666003)(33646002)(2351001)(6916009)(106466001)(47776003)(105596002)(1076002)(86362001)(5660300001)(50226002)(2950100002)(36756003)(189998001)(53936002)(22756006)(110136004)(38730400002)(50466002)(48376002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0701MB2126; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT025; 1:W4Rpc2GZP/98CID1h5jmFly1cSPINGLqeh3cedQhLWTXIZu5N72HeXvZn7piSnEqCxIBeiiN+x0UnEw+kJ9GJ6aYiN+9DiB0PWtsvQx3/JyxSYoCOjVygZ2nbJp5y7T8Jo9QAO4LlLNvZ+ROSAhr+aY/wMYL2b48auXTDxMFc9It4Mwm6M4cAkI3iaevieriYDPqITps/WWRD0JG5hZ43lbgB3/pKnp1TrydCoiBXRvPFHQfYOdRwicq6TYzKbg+TxSP+YqApvA+/mnspf2b9iv/5ImHwDAdS0HxwUp/aKtU3OXdB3AsbLen7Yfr6wVcwPt2icCk1Ck8VZpmtHR+gz1LVWRB5h5h1XxNkxjBEJPlGwrZGlqku9WMLXHRJeDBGgVDcMfRGjLRMU+fBOh4O1Yu3tICQXzNKLEM2m3S+Go9+xsQgg2IpYeOaYp4rmfYfTYVn0z83ov1FnmATppDVhR1bqSx8GzEvnAiIzP9GJMA0iwjCC+FvEhbsD0OIsFT/lGcreV/fZKzHXjjeNcoWw== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 5d2718e9-346f-4d11-fe77-08d488b7fb78 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:VI1PR0701MB2126; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 3:7dmSpWOHRqx2yianNOeFIj6a+dPzIczsiGqar4hWx//LESIVcIAQcFdg1W02Zo39zaDbLwftaKrPRch7P6WdKBIgEplwenALPSvKcCqkavVZtQoadbsCnGtRCN6bACKjGYL9vGVyC3FiPUWxUKksgVoYZ5cXWdgi3Y1UwvVNBuCAIoGqPHMgx5rCzGvr00HV2xR5Y75eOBD65C+nxXDdY+coaB1Gsi1ipY65+li8KhE9uV7fkF+pfL9Q1g9TsmBiKsyZf/vOLwnjP4hw3Mr+ym7YPjViw64dJFbsiyQ+LuBlzGyFKeeH8aOvV1g2pmc2Owh6x8fYxLhcWnd7038gGpivvxYRcjj9Q0fwJBTmiXFKavWYU0m32XV+McHBSq2qJnY3txhicDSzHWhVy6vN/MOQO5NGm1lEE0AbCMiJI5xgi7Ev4aVE1YItO8GK3Aw+HTKzJ1dtA7riSPj2e2D2TA== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 25:yimDyKv7wUGIFBXULttVcSniGAb4NY5eKs7g2TR9k273722cEpiAVUmmvxBlGJFyLu1gTWWfALdzYyqgsUw8yTjZ3dtr3h3VB+Obf2sm10fYGsW/iK+u7GH0FeA2G3u+u58p1Z91HmbCRSemC3IGhGpIPMpT0Hz7tb0rFxxxg6NcW1gaym7LSHhpsxdCtU7WNT7xf0Amb7N+SmlCuLbIHOwqXhZtJ+ePMfc9o4SFVGZEb3mf2wGLlTwtd0/NIzTQCdH/CLbJoST568/MPERkw+lrOX4ByMoa9Sflvu9uWzeTa41eApSW8DxoyET6d1lf9oaKEkAQRGp8sEi9j+uh+L1nz8RXIhVyUh7hitV123COFjGTucTxxU6Q5Q/u39xEONwdzzMCKKBTumJZyl8ILUwFXuIr4QGsKntRzhVp6xA9Ff5awfNdf5t083AsYthbS/pxApoX0BIlXHa18AE7JSP1TgpxjV69/6rt9OczDjk=; 31:Z7GgXcvxBzNgkrihybvKtL44zI9DgD2weuIFcIud/TLr1WwHlMpteELgv/3N4g88c9Z+Bf1FRHk+4RE6M9xjCqpz1uCq3xla/8d3+Kj/+hKuKlnulCrOazE8lhi12nN5RJPlyKImYmGoAewR/QoxswHzvcuj/i2upSuhSayyI9dj3cHUQYiwde6gPlR0Zam28VIvZmKWp1qJUGZsGqDvjXwHiPtZQgqpX7psB1HrwCEPtmOqHp7VE0MqcU4hkBuYB+JsdoMHa8yqDUPn77JPBg== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 20:jqRjmr3Z0mszA/hldNun0jJsE4DgegVr/ILHAk0tlbLIGPW2jmV69rcJLOcYZ/0TcawDR5a3Cx0jWCS7pXKHlsoaVSq2d953bKIoaOtRG0B14iaIyavIbPy031r4c1AB3mK6aMLuVI42SrIz8xEcMlWczNpSQWUXraiBd2xsv6NGNiRIlTZRPt1yyy2rUAsqR7LKuH3aPGI2u5LcWfG/XJvQ2Y87ISeEJLc4PxqX2IdeZ4w1XVLScEyK9D2IyZso1fHdyErcFAgUhg8755ho4MLjqTu8Q6zfnYZqWjemJ6Opq/cLEpVL07aCW16qh/5kSM5EEP8zeJ5C4ICCS1i5WiI93r/9xzIbSmhty/uVQ95q3MbGWgrU/K9w92hWhTM7lv5OSV9KpzIlcpnuvheMuL0xVxPeLGJ6wmJVNhWvFQGQGqOWiu/lajje/dWgqMRWOMhQYf65cRIE+sG4674HQHpr1lBXOX+NVT4H+Cbu5OWE6K5ymPykw1hLEAOD8G+TkQavmAOdjvQpT+wlvO5LoABgii97XrDK3AegNmPcMYWGD3jpO+YgJ+U6tPcPK27A9uvtfA2nllHpfkVO40Bm3JY5mZZgQZTjSM6vCe2tEQY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13021025)(13023025)(13013025)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93003095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148); SRVR:VI1PR0701MB2126; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0701MB2126; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 4:KyVKl06h21XGZwp5242zb0rfo32mRkaXBE/DXk4MGEOLbKvPZDWTdiw1ze5R0Kx1+kaJP4Q7XhButtgGFKxGqE9T+FNu0pyauv0eft9Z2c1ADTJnMw1lcIV17Q8dCHDHEoIqLo2untLPu+G1wUoM/N2aQx9ne7pykD2gv/5xQRPcWMhvoxNy5dGZ8XM6NRe5Y1vEbaDKdjRlZs2mKeQRyXEsOg69vxanMe5cyJXw4F3LBNSc2L/KhXJAHxT8Jab+Dc/aNmyeGSQC7/rrZeUjWSW7K04s/PFjqhxZaJMUB4oSrx0Kxk2DxGpM99j5lNqIvMKq97mwZmzXF9c251vR2MksXihQRcZKPP20DqKTGAnRDU5GaRQZVO0z5UKesnD68NZXopjfYlspKFxlaW8zEzbl1dQl/3Qq4147+vlToAMUifEQ9OmaL70qaToYM470tv8OpU33yr5csEUQcPvahml2b+9pezjoIAUKVQEhsRUP8EBWSyDw2nslPC8w5hGKE6TiycFkYRsa4sN9GBb8pg2tVr7u6NbbOzwihqpQLfYlXjWVxtrOQkcNNA6BL4jexDG2wspKg6w93mu3+BhPostJcQY0R2NvBjfrfEvwnheaEgiZWFjAUFqCPhugPWs7eiI9CA4sWV1coKy+hTSJ8nZr7Tyx0jh8fKWb+t8XJZZC2HfkH/UdCFL6M1nJJQnhiMwfS5eSzpro/WeeqPUoOPh5tdDnUTT7K6QLKyuCYc73EaH+oJE0y+fUNabo3xu7uxY5Oe+rRNrSyNEbbaxcMR5wADqubVYt3VmfxyqKkKA= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0701MB2126; 23:QZdgeK2eXK6G+vcDeTQIqqdT07wEdQVspDaVYZ3?= y13+V46xa/qvCXufCWZOzHj3B1Yl1PqshQ3dSV0PKYS2rWm6pn9gdz2krmwN6hV3PC6MOYhHqMyO38b7Now98pRNp8Mel/PcV8ewNFvfy6EJfH9Mvp8rn8z6lmvLqawEY3b0j/1AW7eUYdPPj3XCW4PKSnDKPw+JUEf1zQbQIN/iQZotReXpAcSLWh0s24RxEu0UKOKPdzTt2FHVyicgieT8uIlhTQwzj9g85tSPjkAyCDPKz4SDbcLqPoMAlsKz/0nmHUxRrQtXmYLTgf8Kwn9vSszZJHJlgmGheb4v0N60VkWjKYm3tIy46yfvV/ov4ArqWQPV+l+ZaqpQH0fRprJ5m+cflOaS36UFRA27w0G9i4Lp218CdPa0L5OtPJ0k4dQxiTlz1nAzll7+LXou5nXrfKd1Og6iaI1fMtbtc721AikqNolciGYbSq0CIPf623IcaEWuAG/jf4mbB0tO/0w+qArIDbHdZAmbJkzQakzkghe2PHwgedus+qbgn7PJ0vjBRNrxTnAIToW9F7oYF1Ao3pC6Zkhl0mVULc6lTHcFk6rh2nUsXq4TwzfFPYjG5MZElDsZjykGi6lT6xjXQ2pZLfZQRPux16O8DMNFEu1/CdDJ+R15ZyQBw69ZZyhYdvo9mo6jNBAHIOQ76lHPOr+IhYCnFkIoVHywvrVAL2jY7MLgSmZPuQ1Az2Sk6UKpIggA9ECNhXwvxT+Ox7b7CTfG1OLEiSO8a8sbnVPIAgHsIll3JzzIDoDrNloWsVJgGTbdeeTzQ6UjJCAJt7n8eNtGc4yNf4ndgTM3rXAr3E4Ap1NmUOAT5fzZFaAgsxt/Z23ckZ4lC339DhuiB8wkAUp/jCk8HQehoVQEmcATZa3f/vZYyNgstjA/+7+xwjeXi8gWOQ+Blde/ts2gZn+bxJrxLV97yoNOQQJdv7hURuBRElSzgBBH2DqU3dDQuCTpYU2+1wVOp9JO0+bTackCUvPNwrfkxWtMzoa2n+lcrbkKUHoHQ1esKXHB4uycW60tvla6evl2vAPbwYVGRxzlYON1F X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 6:mrXL/SdBMCpKSFIi4lTZD/XUztpLYgYpU5fwNAmz6eByKnBYDIl5JvE+L+hz4tiorK9x8iVpYKsVn2REyki1L+mdQ3MLzl9Bw5dcJy+BXrVjd103ZkCTGCPn9X19JlUi3Lu3RjZO6NM3bsApEgnhgE7ZDnN3cUgHXOwxCEVhvF/cRGOECvSeQ2XuetwM+dhXXfs6ECBvqqHHa797wf45bQXUv9SBpnFnxj3NEHivSt8kFGIzbMd5fn68aTxp+H7LE3aCSyE+Ye/If5PQFTqKJKPJELXatTGsyE2PMumcnztnFN/IJPYJaGUXUpTvDjr2cXC3ertRpPfhJys4Mze0r9hdYw77Y5I9e7cztfP4Uw7tyjcnLGipWvLekXz4xOH/a2bZTw2aDVpeAUUj+eeYKcJaqnK49bNlsjVDgpfClttnXT4hiV0u/3xjIAcKQUlegFESPQCmbBfXttMEqFA4knnSkXy4IAP7g73pzs/bYW4j8SiODG7AnmG9R/7xBlMzbalCue3FSZ9mOWgco6tu+0c3XVHS2wSd5s1+FE6dA/E=; 5:16yXDLoSe6EIzGrF03V9fDNfp9DpA4dqaZgijc0NAH1b0b8TTpMRkzfjMinIrMVp2UtAI21TaVd6mxKReMzTsP4YCtGbr1VW5Prp7uIgyOInqzdZcIyxCJvPqAzFqyj3GpHqXqU+hirY1M5mmO4Nlg==; 24:PW+Q2Eq9sPTis9xDAHbcH7MJHzacXTa/QrSRYb5uSiA9KKs3MhPbU9w53LEBNiSCwi8S7CmC4qYiIrgzYVpGLXTVfXCHhoQ4238iY43qTvc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 7:LzANl8LA8A/m35GGjcgCH2cFKF1P86jGpXHj2atuNIf7kAglfIba4dXfnu+PC46C+t7trMVNA9GEtVDsiGS5P9GXn5tJbZPqgW+rw1Frwq5QZgWECWHOIycmDZqaS/5icWay0tva/H59mFxkLnZGX4BUryTd94Znrv+xzeMiJ64ri60X8/zuDNlx+Bpn7XFFU1/D4Xm4p2GXLVRnN4g/AV9htakeXgR0Gfet1+yiAJ0BavKqrZjuxZDLAFvgPMCHod+iQQHFjC51OvI43qQ3keI+bwLKU1gxwAqxbcSYT1vV7YAjpMskvk8NYjkOHQMDR6or9bURT+6YZKfNzEsWLg== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:54.3610 (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: VI1PR0701MB2126 Subject: [lng-odp] [API-NEXT PATCH 3/8] linux-gen: system: implement system info print 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" Print API, impl name, CPU model/freq, cache line size and CPU count by default. Print CPU flags in case of x86. Signed-off-by: Petri Savolainen --- platform/linux-generic/arch/arm/odp_sysinfo_parse.c | 4 ++++ .../linux-generic/arch/default/odp_sysinfo_parse.c | 4 ++++ .../linux-generic/arch/mips64/odp_sysinfo_parse.c | 4 ++++ .../linux-generic/arch/powerpc/odp_sysinfo_parse.c | 4 ++++ platform/linux-generic/arch/x86/odp_sysinfo_parse.c | 6 ++++++ platform/linux-generic/include/odp_internal.h | 1 + platform/linux-generic/odp_system_info.c | 20 ++++++++++++++++++++ 7 files changed, 43 insertions(+) -- 2.11.0 diff --git a/platform/linux-generic/arch/arm/odp_sysinfo_parse.c b/platform/linux-generic/arch/arm/odp_sysinfo_parse.c index 53e2aaea..8ae2022a 100644 --- a/platform/linux-generic/arch/arm/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/arm/odp_sysinfo_parse.c @@ -25,3 +25,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED) { return 0; } + +void sys_info_print_arch(void) +{ +} diff --git a/platform/linux-generic/arch/default/odp_sysinfo_parse.c b/platform/linux-generic/arch/default/odp_sysinfo_parse.c index 53e2aaea..8ae2022a 100644 --- a/platform/linux-generic/arch/default/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/default/odp_sysinfo_parse.c @@ -25,3 +25,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED) { return 0; } + +void sys_info_print_arch(void) +{ +} diff --git a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c index 407264b7..d6f75f28 100644 --- a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c @@ -62,3 +62,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED) { return 0; } + +void sys_info_print_arch(void) +{ +} diff --git a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c index 3b88d55b..bd4b9b42 100644 --- a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c @@ -61,3 +61,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED) { return 0; } + +void sys_info_print_arch(void) +{ +} diff --git a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c index 96127ec6..d77165a4 100644 --- a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c @@ -5,6 +5,7 @@ */ #include +#include #include int cpuinfo_parser(FILE *file, system_info_t *sysinfo) @@ -73,3 +74,8 @@ uint64_t odp_cpu_hz_current(int id) return 0; } + +void sys_info_print_arch(void) +{ + cpu_flags_print_all(); +} diff --git a/platform/linux-generic/include/odp_internal.h b/platform/linux-generic/include/odp_internal.h index acfc3012..90e2a629 100644 --- a/platform/linux-generic/include/odp_internal.h +++ b/platform/linux-generic/include/odp_internal.h @@ -133,6 +133,7 @@ int _odp_modules_init_global(void); int cpuinfo_parser(FILE *file, system_info_t *sysinfo); uint64_t odp_cpu_hz_current(int id); +void sys_info_print_arch(void); #ifdef __cplusplus } diff --git a/platform/linux-generic/odp_system_info.c b/platform/linux-generic/odp_system_info.c index 18c61dbe..4d6f7f81 100644 --- a/platform/linux-generic/odp_system_info.c +++ b/platform/linux-generic/odp_system_info.c @@ -14,6 +14,7 @@ #include #include +#include #include #include #include @@ -405,3 +406,22 @@ int odp_cpu_count(void) { return odp_global_data.system_info.cpu_count; } + +void odp_sys_info_print(void) +{ + printf("\n" + "ODP system info\n" + "---------------\n" + "ODP API version: %s\n" + "ODP impl name: %s\n" + "CPU model: %s\n" + "CPU freq (hz): %" PRIu64 "\n" + "Cache line size: %i\n" + "CPU count: %i\n" + "\n", + odp_version_api_str(), odp_version_impl_name(), + odp_cpu_model_str(), odp_cpu_hz_max(), + odp_sys_cache_line_size(), odp_cpu_count()); + + sys_info_print_arch(); +} From patchwork Fri Apr 21 13:11:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97899 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp320046qgf; Fri, 21 Apr 2017 06:13:53 -0700 (PDT) X-Received: by 10.200.55.15 with SMTP id o15mr12908115qtb.279.1492780432945; Fri, 21 Apr 2017 06:13:52 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id 30si9011758qtw.234.2017.04.21.06.13.52; Fri, 21 Apr 2017 06:13:52 -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 9A21462BE0; Fri, 21 Apr 2017 13:13:52 +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_H3, 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 3128562BF3; Fri, 21 Apr 2017 13:12:12 +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 3320362B63; Fri, 21 Apr 2017 13:12:00 +0000 (UTC) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0093.outbound.protection.outlook.com [104.47.0.93]) by lists.linaro.org (Postfix) with ESMTPS id 18FE961A49 for ; Fri, 21 Apr 2017 13:11:54 +0000 (UTC) Received: from VI1PR07CA0031.eurprd07.prod.outlook.com (2a01:111:e400:533d::41) by AM4PR0701MB2113.eurprd07.prod.outlook.com (2603:10a6:200:49::6) 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:52 +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:52 +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:51 +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 v3LDBYSS025462 (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 v3LDBYOg025438 (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:30 +0300 Message-ID: <20170421131134.27992-5-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39840400002)(39860400002)(39850400002)(39450400003)(39410400002)(2980300002)(189002)(199003)(9170700003)(36756003)(53936002)(48376002)(6916009)(8676002)(8936002)(2950100002)(50226002)(50466002)(356003)(6666003)(81166006)(110136004)(305945005)(2351001)(106466001)(22756006)(105596002)(77096006)(2906002)(86362001)(38730400002)(33646002)(5003940100001)(1076002)(76176999)(5660300001)(189998001)(47776003)(50986999)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM4PR0701MB2113; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT025; 1:DvMoNMKNwGm0g3NDnOil6UTsqeme2yHqPKVoXBbG0AAlTnwDWmUFSMsFzl4KDEckGZBQQshmjxpTaE9WTVwnTwwjg3WlAwDDT1H//s055Nc/dqDMnWAWfNVYpJwKrGw7lT8iBRrr75G0p1mg2TeHmtiF7HD2OwW8u2QlESzz3Z+BqnHAYs0GTzobkmSbLgxEyujYxtxopAjaGfqafcZrrWSCKH6zcKPS+QNpcgsSpOuCz5olEgFf9s0fQ4qzFINQMpVbqv1c9jUPfvzwTvb5LA6pocoEYudWvuSMKguikLmKOKEnq0o9uIM5UB8PQT2Ku6UIInAJIbgaWn4lF+0KlG0yhs/CuLXQla8omEDOLAslYMZj/WWo5owxSY9oO80XZpRm+dRsiW6RmKIlfUArGktnoYem9bEjQaeGDMRs+kMKPLzvuwiNqX6EccLH8NEk9bDcvPGs/q2+E6fwlEOrV5VHbyDLwhwnl47SBXe5LpsvhTic3eVPHAGWjzP32rZH8BxhqZOnq5maAJdxz8BkJQ== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 23393ae4-a32b-4fee-359c-08d488b7f9ed X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:AM4PR0701MB2113; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2113; 3:YKpejJkWbqJrgzFBQOAExP/OU5xUHOwIIddVtXzWOYIdQIICOwA24eRa1wsgq9BJud6Q/BmVN3kgoVmuWNQabOg45oDXaTyKE1j0jh19WUWro1D4zRyRM2/ielNwsVatGUmAos4FWHzD7hLSB9EGYqyOTUICoDfzwQdMFVxgt6lS2kSmM4fAkqqQNILUYCaH1W7rF2O9mmpuM9lW6jXCCFZj9KILA3Vs3FuUXNtinlf/3ESJBvjYhQckFcXmbsKkPpWTvDFXDgHW8fKCQ9bpyjpu467tyqwlGWK7AVB/Y3foUDUrn0F7gSmnwo3v6Sip/g6FzYIOdMhyD/Jq/mDGZ9lJZF/i7PobwHY6NqWJ6X/mHgZ7SD24jFcIDthKIyfOmQoVY5P9U7uAgXvaZliRASZ7ol9PqsDSH/fm2adh7Oqumh5+zz4KkIg3eZ6SKfs2p/dH0EsFAJXQtXAY+FPeiA== X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2113; 25:/hLy4U82WMd7MSxHBKtE5Jz7TA/Mdj1yR5oYG/twhXcEiZCcndqGSZCmJ8h+mEL9XzMgeUeKrt2k3QqsWZTqS885IHK0WXr9U2NYZH+uKm3ptc6s5S6FB+En3+gx3OCkgpe8O0SEwQP/WLmw5Cttr0kjIsvC6eoS3Hizz8SEEfU1vwNUzYq6P071TPYtyukHNeF2fjbwPerQT7c7CxQVvrND0Kq/VD1rNLeOZUl3rJMJIBEO3/f2k3e2jk/4BEVRHHqE5jyTrTOXSHPMIeTfKofxYiLpWWVUsUd0uUahGenMXybBgLYTdetAtIyVAIGfbpdohE2ecTf9pFmRRdFG2KgEG008dW+qMwJCHDjn9IKWkE/jQqJgiaH2XvfxzQ3d9Eaxb3R7W6B/MByIfkmfOij+jUj1Mxr+gqqM43q+O7/u+AvdhBg6sW35C8gwRzPqh0Hu99ZY9j/1kupoBCUArwulos1qUo2ECBdsbskg4e4=; 31:+hdwsaCFnDgi5cemE1qMurY7dz5/fajU0//q/0TSIuiS6oxooR6SkJSlM9Av9GljnfuqeIvEhhEITss2s26jGVJztPmzrAQj6n/9UOtWme4Yfx7+NtjJk7eKVCXT76RAD8llE4svYUcoTrvmazrDf6K8iMfhlidabwjB9ymsTLtZfEQ4lnsyU5nv+FHQ1H1amE30LslOlTLd+TAjwDPJEvcMrw96cGV6jRIoBZU84n3PU7QB5b6g8TSGL3M5UHS7NhtLr+RKcUeMAV1k2PO7pg== X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2113; 20:eVfXrf6vRWB57/EmmFIrMLAhGh3lW3uZ2GOZlCJ11fOGSdyLprvAqID0kdlAjVEVDFHBpXHV3BwIIDs87wqWoGeOhkHFkC/qkw8oauBUr4EqvQREehGjqpW8LAnDtTz2YC/g5aN76dFNRKaPqhsOPHjL+1svLEiDiNyrLlJwOWjWoz90QHn3XXnpIYaYDOGIa1RIcFMJJ/mqX34mbCdBE5zmv+QulVslbFpaITEveXYK98oHID1HviiO6kV2wKueS0CXmrGuFuO1eQWx9xZI4f4uLUPPPWsMldaDA+pN7eyZRNDBzyXcTI7zjAfYhGo+QyS0UDWKA9LRWfr/DTFs7xafdid26WJy+gbhbd4iJfc29FNuzo2MjPP+hQS+2Wacqi478vwGPxUQZ2PCcsjipEN9Knu+KX0dtS1KLpTo1+wmbOpBbhU696VqRDgkGkyijRahISjTIpNIy+n0U5iY2jJQHomZm3Dm1VII5fpWZceT0hIKbbUBvKwzmc1aLKgOzoWmTn/eYkUNJeUP39DQLYCuP1/eXJN1JpwoTTrATgBZlpb4N7rQ/MWwO1Stk6RqfxkyJSB1aohRl2J35eJi4OntVmGY3A2vemmJSMmC6Es= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(13013025)(13021025)(13023025)(3002001)(93006095)(93003095)(10201501046)(6055026)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123562025)(20161123555025)(6072148); SRVR:AM4PR0701MB2113; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0701MB2113; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2113; 4:4FK/SveNJTifMCXxcO4fTYs33aoJB49d9WQJeS8x2wYPTQa+56pY2pz5opyNz89UyOXfuteEete08CzBwHaY4tY8ak+S6UqcDA8/ytf6yOliAxXZ+SIpGFL2L3/0srYWdjCtWaymOEIPyNFvxv62sZkgTCVv+raplWvlOVo08LuJapUEFlL8gPV5dOB/TUkrVxAkdeSG4moeJzDrqEZmfuEcYmkVzDfn93Ev9U8N0r3XliuKGhgvj7eZ+y+Y1KN94ENUbbjO8FxM26oImTDktxwoZculBPDa6FE3oFBiXTplkT2rzOSo78ht7ZcM6gSxQWaUfwUO+I82ipurQDudu0oXrczKec/97R41oT4kiZeiOxSQbgubTCAL9ovqRV6BV3LW4jGbp160KK2j7i37Har1S2qJGZt7sQvAxzMq0tX+9Nij1sA8qOtXCcjUIGDXUJ8pFJzcLx0LLoIiPKtz9zpci/zRPfYzHw4djiVKHsaHFXy8vyQvOF3ZgjIrUv31ZyfqQ5soJf7pLkSha0VBSVf7j0DsUUO/ItRY8NEm2d00Z7UzB1Tv4RTAkdtIKfdzlCcc9c4JiyjzcTzqLUttD+cKYDXg5oyV4pAedciqpCwA0aad0dYzubcbyvzbYBA+i5l8PoJHFllhwG2EnQFQoeJ46ZEFYBEMuvYMiqhu2xaaSsNSyrBGm7W5mNBG4U1my92XC8q9//9X9bsb51QPMJuOtmiR5sEfWhjVgMie9mWnViAVrz7EI8+0dWRelD6mpf9Ybo3I6Iv2SDlJu8eiEMYxt4UqlP/sgvnI5u7TDRc= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0701MB2113; 23:RvVDpqwgCDER7yyT1vvbsprCaF+OlmCvppRRrfS?= 2vJ2ievfmUS/GKNAnmGVJ5zqIWTK6MBB1GYf9VqV2ziafKzJyfr1GEy8FqgoRpkNToEmS2UiYlnUj5oMgDhBndMIo86JD6n2cplWa0qj/xo3Cu9+oO9ghS805V4Olw0x5ge8AAfiUA3y6ge4HGuCnQZX/2lLoz3b3fG88VHhSc3dsx1yAb9r4SSaMEwVciDpBJECl0oFld5RHO2S4YF0DiTNB4tDiHrY/3gjCovGrxklFfl2j8HPSyZ0eQwyQWoeTJjXGpCIzNaMb38D1x6G2OioJ/WEgmG316LBNFIHJoret+922lpXEtF/veQ18/1U5fMHXpy38VjqP+DEY8G+6MrBrh7S9Fr8W9gywWPbI/VYspXYC8kUeMvgNhbxwaPCQ2WdNqBW58DPuvBgvgt31IUN/383hDdioFI2OcJaz3gAIHUBzJIhA9mAnNdv2DbpkZklDfMufHGIWK/8LMd+YZ99hij21gsisaeWqat/VH0eSOxzrCFOvuGbUoCou0l3A06qXi0LIj56KpXyPmEIgV505q+Y4kABNQiMTFqT7W97ewThmNR4FL460RhWZSCrK6IQA3cAo04LxpYLPserPjGnpYGEWNX3kYzx3tHo5KrV6CifcOPS9WRxffjublmVPsAHCBaHnL/uUmWQoKFz9aAbpzHuo/AkoDMhCwVwRMMWOs/YP4YdWhxHJFXGp+YEUqgzoeADT1g+ODmhhkPqh48rfy8qhXIh8QeD/H+p12AW6/h89YXKALWqFfiTYBYRoy7nDZdrU2jXwqmN80JANm9cLesaGP+lpVjYCsR3IzI6yPYv1tl4AwpiGaSA7CKklqEmr3FKAOEBsrLxUljFfF7Itmalm8ia8CGy4SWLxFtxEoJUNo2aNqVVMjmkXFHJ23lq/yy+Wc6xgWE84rEaJINXNL/jZ4fPHermkZqr2EjIehE8qLbKtNZ8OhsLh+/7iOOapi4TKnCkVfep5jjr8K+lWNBpmUEjZtYYS+VUwTo2hwJhvWAUMUFQ8Cq+gs+qE7fMGZDszA3IG/p0CGzgRDKXV X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2113; 6:dL/aor1nGfP6WqWoGwWoEpL+VHlbfttNtIofGdt7/GYZyt1jwB1XbiVVZqwr5U+w7uKzWntGv4WoxJCCh7iGHXDeIN/okvljCDtXwwnBluAV3Twmy5DPCkzTpHBq6ox7FnOhRI8F0kxD2skz3SAyX8BRThvUGISgY3TUMA5r9BiYcWjh7JAlbYqSsQhHQNG9y6Trhp5GgZFIeIis32y3CXMPn3YG6baUG1yET9xOYd6BGkrFlw4h1a3JI48EZq0koyUiu3MOTTNybwiNEz5pHYmOknlJiSIJX3E06fi4Ty4Dc6G2CuA2eU/Ghm/lIn4jNbQBYfJ/+cSHNDo65GTM0EkCHlO4qD2wkgLhUDHEA03U8dyjp1UJ7JN1ukz7Yjw1J4sQkb+GgZAuoZVOrw+rUEjrHBeoYuzbPLpyT/JnQDPCTUa06sE7SJHKUW5fOBedpRujkN18tBMxDdte4DByMCS3HlXHyD8rYET1BwzUpV4+vEkUN3/R5tBfHP8XZkIoMtaCFXXkHwThfBJyfic1xgKBvseG/RjjXAbLgVdk/RQ=; 5:E6cMBzMdaUyD/ABjJa5KVErwu0quFHiRnwkPOujsHo5/3QlMmJvU/PPPYl5JNAztbUDLMzdKFB7vu4sXkrI+cJCsibDBtspQHHLir89gMQ/13x6DfFFxU0wfuRporJHw1dMxGQLDSk8Q1GGvTZ5cFA==; 24:C2pFgswDWAj6jNYov33TMFw5VcdtF9GZDt0Pl7rF8bQ4Cihw8OdWBLjnFN99JhHAdPndvJnKBwC+53n/cYfjLhtk2cq0g65hZDzA6QN9zGc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2113; 7:/IAa0XichakKbrWktDyfEFGEeo4jvU7crk4o4lcRXYFFcSUDcHsJX76DgCHr93C4fcKCEUQxEHUOMbNpreBVUu4DiL2+T1oW5FNqkwQXWb95mGREyUa/PGHnjXgx5ZMpyPuLEPcNG1aTa5dHczEkVDiuu1nlww53KtcxRXckdCHJ6QpsGtQWbUl7COj37gXU36rYvRvB7gaRgdENrr8MZu/IeFqZm345nIgCbBiNcn8q+Nms+MrTPkcYFxp1oe0Ee7Qnwr83sPcw0whKFQPtUDk58SOyj/s6oMa9/NY+6EyoMsWnDe/IWjFrZKlwjWhZPyHMaUZStZaOlTAwnlIM2w== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:51.7672 (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: AM4PR0701MB2113 Subject: [lng-odp] [API-NEXT PATCH 4/8] test: validation: add odp_sys_info_print test 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" Added validation test for the new system info print call. Signed-off-by: Petri Savolainen --- test/common_plat/validation/api/system/system.c | 8 ++++++++ test/common_plat/validation/api/system/system.h | 1 + 2 files changed, 9 insertions(+) -- 2.11.0 diff --git a/test/common_plat/validation/api/system/system.c b/test/common_plat/validation/api/system/system.c index 57ff34eb..5b7ca01a 100644 --- a/test/common_plat/validation/api/system/system.c +++ b/test/common_plat/validation/api/system/system.c @@ -301,6 +301,13 @@ void system_test_odp_cpu_hz_max_id(void) } } +void system_test_info_print(void) +{ + printf("\n\nCalling system info print...\n"); + odp_sys_info_print(); + printf("...done. "); +} + odp_testinfo_t system_suite[] = { ODP_TEST_INFO(system_test_odp_version_numbers), ODP_TEST_INFO(system_test_odp_cpu_count), @@ -319,6 +326,7 @@ odp_testinfo_t system_suite[] = { ODP_TEST_INFO(system_test_odp_cpu_cycles_max), ODP_TEST_INFO(system_test_odp_cpu_cycles_resolution), ODP_TEST_INFO(system_test_odp_cpu_cycles_diff), + ODP_TEST_INFO(system_test_info_print), ODP_TEST_INFO_NULL, }; diff --git a/test/common_plat/validation/api/system/system.h b/test/common_plat/validation/api/system/system.h index cbb994eb..c33729b9 100644 --- a/test/common_plat/validation/api/system/system.h +++ b/test/common_plat/validation/api/system/system.h @@ -30,6 +30,7 @@ void system_test_odp_cpu_cycles_max(void); void system_test_odp_cpu_cycles(void); void system_test_odp_cpu_cycles_diff(void); void system_test_odp_cpu_cycles_resolution(void); +void system_test_info_print(void); /* test arrays: */ extern odp_testinfo_t system_suite[]; From patchwork Fri Apr 21 13:11:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97898 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp319815qgf; Fri, 21 Apr 2017 06:13:21 -0700 (PDT) X-Received: by 10.55.132.3 with SMTP id g3mr11957185qkd.300.1492780400996; Fri, 21 Apr 2017 06:13:20 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id o31si9487336qtb.316.2017.04.21.06.13.20; Fri, 21 Apr 2017 06:13:20 -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 B396661C8F; Fri, 21 Apr 2017 13:13:20 +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_H3, 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 E5DE762C56; Fri, 21 Apr 2017 13:12:08 +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 0DAA96192F; Fri, 21 Apr 2017 13:11:59 +0000 (UTC) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0091.outbound.protection.outlook.com [104.47.0.91]) by lists.linaro.org (Postfix) with ESMTPS id D88E76192F for ; Fri, 21 Apr 2017 13:11:54 +0000 (UTC) Received: from DB6PR07CA0086.eurprd07.prod.outlook.com (10.175.238.24) by HE1PR0701MB2121.eurprd07.prod.outlook.com (10.168.36.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Fri, 21 Apr 2017 13:11:52 +0000 Received: from VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::205) by DB6PR07CA0086.outlook.office365.com (2603:10a6:6:2b::24) 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:52 +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 VE1EUR03FT060.mail.protection.outlook.com (10.152.19.187) 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:51 +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 v3LDBZtm025468 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +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 v3LDBYOh025438 (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:31 +0300 Message-ID: <20170421131134.27992-6-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(979002)(6009001)(39410400002)(39860400002)(39400400002)(39840400002)(39450400003)(39850400002)(2980300002)(189002)(199003)(9170700003)(5660300001)(356003)(50466002)(81166006)(110136004)(38730400002)(105596002)(189998001)(8676002)(33646002)(5003940100001)(50226002)(48376002)(106466001)(53936002)(86362001)(47776003)(77096006)(2351001)(36756003)(6916009)(22756006)(76176999)(50986999)(2906002)(8936002)(1076002)(2950100002)(6666003)(305945005)(217873001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB2121; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT060; 1:p960Xd++rq8FJh2AubpozD3wTo6eO80Mjuvix1YeNAR0YzBsU1utVSxS3xU5AJBZZuZH3Iec7iCZjagc+pI5aCEP/oQRoTYDzCGMS6lHjlIPVf8dYKS9DbH1wN0tlFAobR3Bfb/pShYeVowki/MQd+gTRtO1UhZwV7lTAOrLSNR6yZNhKXjJgprHcy/87zRgf8ZSJs2vfFD3xR0+rk4DNlpy0c+475WaGAR9eeGjX1KzAcctP4H4oE7nkjW9uFWBCrVj+SHyVhIS0RgrMNIXrNzImE4lnugJQZOj4Q2fA9+qpH4TUaXW2mH3D2b3tHWyMUq5uU5lndjUFl+NfXtgiCGy5l3JEEV7yo9qfq4mcwNLMhlsVe9VNd+wYgX4rQfz1ane4Y1XuvLDEkVf22kO1JQdujI0kWFV+BEr1YEv1tSxNc9/vlJWoTXgcSwMvn/u4po1K0ORTPpX4Tiq9vN6hwGqMgXW7X3iJTOtdoook/LUk7YwlR+JcBq5COjwGFifjkNHwS3YIeIwGnsOsLBJFA== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 24bf1361-fe52-4623-0c6d-08d488b7f9f8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:HE1PR0701MB2121; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 3:yDwM07OHDTWD1u8faZGJFV7gK015TOcoQNwG5zraJDI9EmVcGkrvgtCezhsMgmDdutDnN9pVcm+OOmqEp98JnFfa44nK0wZAOyYT8RYEbXyUu4NWNe1iuLYjlhHIMZWLB89AM7X6FVk20uDBWKSvPPiufiIljceVde6c9LVKuRlMSbTEiZYdX4cCSisttaGZ3PTjxmNBWhx66wmi9fnK7vV9j+ZHL6qwCGHbmz8OZqgbcVYnEgNIYFghKexnsaXq035ylGuFnh9DOiCD4/ieyvXcHXxO8uknLHtS8Law89eKhdx2m2l+wiEoK/B5y+HGveUQ9w7t8vjVwQqvtWbRy/bizN1oyK1KzG6VYIq1mwogTF5E0bVvLAYBwsM1bo/7dXKjB8EIDATxvQx3SvwQIZzlI3VsFeJCNK2HmvYDq9XLie78MnwtH02hVUiiPohqnTIhTMw2EFTquH2dJkIKTQ== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 25:4T23uX6u/5KYvOYtNg7yKAxBlIydY5eVCOuHISEwM+mm3Z6Pj5gbr4A6IvLZXH4HFLHDkA1AI3IVD06FLSYDejew+gdcNocdfCj9TDwhiSKRYbjDT0XAAwiWN9RnsGDcn51LY1Mv2HGySfS2tEQD0xxDQ3bbX96AHnRI7EUAJsne8C/tRkIqwxMX1xrY/W7nFfd5F0TNhzceb6IOZSMwQJE763BDnEOYfkeM7dEpQMWu8i9hHc+UDYAT7iX0Din+e4W4e33K67joNCiNgrTqWQezZDSLWkkwV9TcYCL1O8de8f4yEScacLuQJtLQBs/jpllGGMSU+RzzYkbD8w3Wn/OxXfuZ5gzKNElHil0VbNdQH5ho7w6T7zv0FQ3QVJ0cQMV8prtcvdjK6bNXiIJGzmjWAOkprimyXlM9nvEhV7p4lcQpeN4X01zeuP/v96OfgL1BE/BjLW+RqXP7biUUutE/Uu6iqIpr2RzKZWfpzwQ=; 31:T21dZ3QDaaLOHtWduq6t95fmEmyifFXxMPQkBgix8mY+1XCEAC+8yWZisaYHhvDZfuZJ/giUr4aBD+VqQWpbhkIaTQ8vdU6+llestEaVoUMxpZxZmMoHUXRkw8RreThKpP+pIxQUnw+fW/CgLfWpMFoH5cdfFahjoKbFAp+XBKzc7XMFAMfgnnuy3XUQdOOBhEa2Pwzt9KTb8Z9t+l4v8GUjdGxUcODwFlTHPBLTINMte9WqEwQlGbO9E9S66E9E X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 20:Hq1//c7QvvDcI8ldMugEmUrpbuPT8faxcqqtcPAXdkiaP82qvxHWkH+49ec1gyv8NWXfSPHCWFY/1Xf1mjUqEvbvE5w0/8/h41yu7vF2W158Tsr7pABL802BoZbIRvi0NYXsrU3OUw5T07crIyaWJXhbYzDubePub90UfPLl3PK0sL3WrL+jyb/nHeakdjF/NkPNU9UXFXS9bxIdzgJ/WENQNJP/pHkD8FWOrdONQsHzH7moLXmNXULWHEMRhTh+h1V1DTIaYWHCASHebQJqsMGj1OQLcXSbx+o3usCKA+h/HeRD1a9fy26hMlUMoZarM+l70SY7Rs6JW66gvhO4A6LW0iI+BJzlklV6qel+/evGnnaUEqMniZudkU7D7vIpXolRWUKkCxYXR6sNATVNnv6+6Gsa6N8dUlxBDvziH3+YVRNHa4g5RBEPHwRUB/XJTNZnS1CDnbhLQeUZL7APwJyQ+ss1Q4mjNBufN0tJjV6gvCHvL06raw9VYSEcONrQy7G3e/6UZYmaL3w5YD544gADZd6H+IIjUfh7dX8DbGj0oce7rmxtKirs5uAQtucMXSI0GDAXDekuODWFVWdfe8t3t2vtCQPn9V7CU8ri8z8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13021025)(13023025)(13013025)(8121501046)(5005006)(3002001)(93006095)(93003095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061750105)(20161123564025)(20161123558052)(20161123555025)(20161123560025)(20161123562025)(6072148); SRVR:HE1PR0701MB2121; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB2121; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 4:NkELJ9ZANJPd44sJsNPggXdKcJmCwnqsPHPUA6DD+GbD/YLBJ2XU7S5Bnze93/KH7Cgqjdp+Rj/yDBxg6tk46+eWiGLJ1Y4eXCc2c3HQUfD3KbIDK38V74kwB7FxLL8e5QsiFPh48ZxqZc+ljkjnPanmx8l8PxpTWa/ACmFhP65urAuzhpQbBy4RjNRZ6b0bLJV6ItT6k1BcGxkWhVYa6qUtFrAxGMdXGruhOHh8KtlEccij9eQSyPkg9KSutr9CnY8L/oLrbOEMV2e4oGri59ZtYFFVm92CxV3nLclGqxXkb0F+WcXIrQmomEFaokkK/0l3P1l4MPw4W/k5OaM1tMSq+icGx+sIHy7II4dWPbZZTGWKDqEKdx779tgzJDF3ul1hKECtlgN33q46e5oqyCbobg6xe5jMlKLroU+LwpJS+MIvRcst+gn2E9xSRS6mjtQwPIyX+ai6+WqT+nL3/fxOq+x8gxGYqHAORUYObrBNyI2ojbb3uOY5w6+28eUN7XEj/XBUmQJ3t+vlmUwQilq7suJfN6GTF9Zqj6PPeqniS73SRjFhy3SGaYpPtZyRqCvQAsachqa6KutGwF4YdrBsNu1xMRpjDDsh0yuCeJUCGkg2td3dvOFKuWZR2rmHyphUyV4gvK7KRrz8T6nKnX4cW9oOt2wwMEDTwlAIiyq5eUTz6bSv5iVv2XTgPkhFID0arlmS+7u7lEGlzaGUg0OjRIwffj7WirCJI0BozP1aqzNpT6Ekro8CANIxDnAvKvfi1KamMCWZLA2DChN+n/sn1ILyzH/9mhQhB4h84e/7hpcsb++zqTk/zm7l4pB4JuPOMAi4+S6PdGuGEq5xUUboPcWX6H5j+g7eB3K1K84= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0701MB2121; 23:qc46FU8FU49sJX5oOxdw2i/QybiqPkjSX0ju3lK?= kBL4cdyplFFeRkxLi4/XF/Vh0l/XvPdvMDvxI1COfwoxJwhdS+lBJ3FBSh2FR9TSRTdTTUwt7kSWVtqBZCy85l3q9jdQzOSwpy/9hQlDSwe7Ksw82Hqhxf4pzhPMpH5Pvzx+dIGtV/JMQcS2XUZwC967SSqGZTQmBfOUnzAVz97oE2xQtCZOczogcaW+qLhUhKUWSNp4nhgrOUU5bwVmE4IEUfTnBqJDyahIUirvmQtAWXFUrL9EMAv4ztu2s1g1CwEjtGq0fPGb+P4I9laaTtUINQEx7/Yyp2i3/1WXc2CNLUumFGrLpPEFK2AyaGmpLTU6+fy873dyDSw8mSd9eDQHBMb4DLgyI+mEU5+oZNNSyzuxk0gb6WEbOAlRznOQgd8N0yvjvRR3QVLoTMJd/O2fq63INxvqQmSXzxGI6NLDVRON0wV43H0IzIKqhuNSs1NbP9YKuAfZQsyKSO3l27ZZb3c0cs7bY3uMEmQik+IghRbBhNnnSDAqjuvl0pEve+D5U2m+moTP+OBFE8OXY7eHs8pkPGjjl6yrN9r0ilOqH3x0NdTUtAEyVEcvnaKU2qO1TdBm85Gnkw+jZXRsVBNNLml8zVynxrSaTBLmGvMZPzaoGggYPdRJN+wnqw832KyAIUarh/er+T82+d1EWK3YHD9knwfb5zUgaMTBFbo8XWfGa/TOdqIBKiDdUXwQ8nuncZQCxFuzr/+70L+GNrLcE6mNtY0UFwIYiiAqk+PhRCA+r6TLEsufrFuqX6bx3jrToL3wZ+daZ2NGB66RkDWB2UkP4wwsxuTdx8KoltzBDrHoPUsbOKnTGkuyn3tT5E5PIJnmD61l5nX9ime4Ti/umOGr/1b+7j4fvVZzkEPFN6AxIkDN8bge0RFnlzsL/hdI8K0cDjcv22qiPtQICSh61cK9HMMyJDCUU4IcAoOma6SlwXG2nEQoYUFj6BygSGu/eEokQibSnhVYCD9wUh2Alo9DpSpjdgq6P86+TIwaSy+FnLbghl3qrTGKR+2/yc6hBNfexu5X9k84zr4+tX/V9j02FbuKHjGxqdDRA+61leoKkGZyhWb9i6JEYZp+pPu0o1tayjaOcwkqv6L9lZXEveVyYCMLTW8pT6zSQ5wBwRQ== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 6:ZQjObCQuQIbm+ErKftMQ42/UX62ohGPS02aWwW/Ygtm0Nn/p9wCm1ggB4ZJ1ibc3mi8k6xy5tDAu03rjAIBWxzWMqd+DljZx4/2a0+c9w4QVy1IlpO425uyEI1GV8KsXyQbAGMuw8goql9WIvhg/VOCd2LTlHZKmyQ0Gv2USy8HwR2oLn58WW2M2bDSPrP99cy0Bw89G7mJAc65VtXEVSu5hZnsSIm7Ffu4mAKl2jiPMCXImlTrA4Zq0JtYhymmI8yPHE4995npj4FvTMHtBMcZ0XpvQOWTmAxKq5/OVfyzydOIZ3tcmcMd3kCc6d022zub9SpOCHbP9przpIlIoTUUENO+ar0s7OI9f99gc6XdtMkrpcK4eHizPu8Tj5cU89PLbizY/1uppDYarju4Sy9FxT1vP6dPvHiFuPg9pvICNzWyIo41ov0YGzNn4SD0wbLd2m5+RHiXHljYZyJMBNlhoydA1ZfE2crmVMKakF5PuiIUGbvdTF/8hpgZHeglGHADxtWT/WpelqHau/TBLl1GtsuYpH0P9+91+i5CObz4=; 5:d1QggRyIGE+jpI3ShykZ3Pd8HLl+UkU2EnyXlpd8I0ssqX3L/OxioJZDTWHNpHbGkpFPo9HVH630MmC5Ne4qf/y6Tz86HCl9em1g+A7lF/92oQkvMBQoJpJmtwSdBsCKV35Ey6lF85uWtXox9Ox2gg==; 24:zKR+RS5exNWIC9nYsPaB6xWazGMFw8SZiyyFTjJJqWywrh4BmEy2Yvc1j7dzXrdM8t+gcLFqNAGSWAZW9dXH81PZkxrnMziunjRrRbzj3XA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 7:lgPgrnN+PyEGwF+MisjmxbMVNUxeW4L4+uNh0KG/zHkX7QVnS1qsZwiHnoTg0ZDjO/nr5t9DlktvraHg2hLECDJpi2WHXgbsebKGsKUpYIwH/ktzFC4SenYLUgI3TaXR43uQJPP9YTWk4+Zio/xSilhgZP07yfRcB/6lLu3kl/7Bvd593lSAs+ItRu/BkEW5ScBI/h3Yyn3VGh1K99vem/xfjoT/djOtuviAoYgeTYbUOI4q1o0SKMt9mehC1TJuWCA9xq9Pg1l/+IepRlIpHJkQ0460vHUO3DaZ11N3NgjjMVQPjeJds9M/vlcmL4EiFKtR5yEehBJGBAgtonqr0A== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:51.8226 (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: HE1PR0701MB2121 Subject: [lng-odp] [API-NEXT PATCH 5/8] test: sched_latency: use sys_info_print 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" Use the new system info print function. Signed-off-by: Petri Savolainen --- test/common_plat/performance/odp_sched_latency.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) -- 2.11.0 diff --git a/test/common_plat/performance/odp_sched_latency.c b/test/common_plat/performance/odp_sched_latency.c index 2b28cd7b..f2aac06f 100644 --- a/test/common_plat/performance/odp_sched_latency.c +++ b/test/common_plat/performance/odp_sched_latency.c @@ -634,16 +634,7 @@ int main(int argc, char *argv[]) return -1; } - printf("\n"); - printf("ODP system info\n"); - printf("---------------\n"); - printf("ODP API version: %s\n", odp_version_api_str()); - printf("ODP impl name: %s\n", odp_version_impl_name()); - printf("ODP impl details: %s\n", odp_version_impl_str()); - printf("CPU model: %s\n", odp_cpu_model_str()); - printf("CPU freq (hz): %" PRIu64 "\n", odp_cpu_hz_max()); - printf("Cache line size: %i\n", odp_sys_cache_line_size()); - printf("Max CPU count: %i\n", odp_cpu_count()); + odp_sys_info_print(); /* Get default worker cpumask */ if (args.cpu_count) @@ -654,9 +645,10 @@ int main(int argc, char *argv[]) (void)odp_cpumask_to_str(&cpumask, cpumaskstr, sizeof(cpumaskstr)); - printf("Worker threads: %i\n", num_workers); - printf("First CPU: %i\n", odp_cpumask_first(&cpumask)); - printf("CPU mask: %s\n\n", cpumaskstr); + printf("CPU mask info:\n"); + printf(" Worker threads: %i\n", num_workers); + printf(" First CPU: %i\n", odp_cpumask_first(&cpumask)); + printf(" CPU mask: %s\n", cpumaskstr); thread_tbl = calloc(sizeof(odph_odpthread_t), num_workers); if (!thread_tbl) { From patchwork Fri Apr 21 13:11:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97897 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp319524qgf; Fri, 21 Apr 2017 06:12:39 -0700 (PDT) X-Received: by 10.200.54.136 with SMTP id a8mr14828437qtc.87.1492780359363; Fri, 21 Apr 2017 06:12:39 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id t123si9478863qkd.334.2017.04.21.06.12.39; Fri, 21 Apr 2017 06:12:39 -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 133D861CC2; Fri, 21 Apr 2017 13:12:39 +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 4F44562B63; Fri, 21 Apr 2017 13:12:04 +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 CA85062B63; Fri, 21 Apr 2017 13:11:58 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0105.outbound.protection.outlook.com [104.47.2.105]) by lists.linaro.org (Postfix) with ESMTPS id B898361BAC for ; Fri, 21 Apr 2017 13:11:55 +0000 (UTC) Received: from DB6PR07CA0085.eurprd07.prod.outlook.com (10.175.238.23) by VI1PR07MB0910.eurprd07.prod.outlook.com (10.161.108.28) 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:54 +0000 Received: from VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::208) by DB6PR07CA0085.outlook.office365.com (2603:10a6:6:2b::23) 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 VE1EUR03FT060.mail.protection.outlook.com (10.152.19.187) 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 v3LDBZvg025505 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +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 v3LDBYOi025438 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Fri, 21 Apr 2017 16:11:32 +0300 Message-ID: <20170421131134.27992-7-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39450400003)(39400400002)(39850400002)(39860400002)(39840400002)(2980300002)(189002)(199003)(9170700003)(2906002)(1076002)(105596002)(8936002)(77096006)(22756006)(47776003)(2351001)(81166006)(86362001)(36756003)(106466001)(189998001)(305945005)(33646002)(38730400002)(6666003)(5660300001)(2950100002)(6916009)(50986999)(8676002)(5003940100001)(110136004)(356003)(48376002)(76176999)(53936002)(50226002)(50466002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR07MB0910; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT060; 1:ej3i4E/lgw9CcxnJPuFJKPCvrolrluXDFdfyx5+eT8CbVwKbPD+15i4i+bAnlJSPs4jf9wvsENi3FoIgElyBzy9cbszoOPGYnyt377vTd+j11ovDHndeYz9xqs+BAdpi+4vxYlgmvy4umAIjqCNsD1L5TARETdH4NUwnG7f7gni94dyEHhF352Gg39pq5FcyAAMT+2NegZ+yNkBaPTe5+2WzL4CD/6MP0d/Tcizehl21GnDFOT6IYMinIZrI/a2LpgV9byQrwD8jETu+HKT/Q/XtKFWPK9AqOOTJUUaFcM3W8GEiSG2IaHgF64sEPSKXXgllzQpds0+5pexWoaGkKfnWMXcfcMFUcLGq2QrIRQRq+HKE7NJMf+Z/xQ/EPA8Sswgb5mSIN8YzgmG7xf+5kNlUFuN1/zAdnveaIhWWk6DH0yqCxt9+8iEbkvEa83E/IKqO9Dx66rrADz7EhqtL22kxQjZpKcr+csHm1sMoutguZG50oeS0YbFPU8Tng+xh5uS5FbMUjGQeXqtiX5+ulA== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 978a4d1f-2ddd-4fab-640a-08d488b7fad1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:VI1PR07MB0910; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0910; 3:idAJO9t5HVhgsOo/Ijd9CAKnt8oDwTxQzBJQYkgnlmf50XmDNO4d7yFAlUmVdUcmVJ5IBuHgCdpftcPq02WZVYZJRL/9y3QEfcRz2dkL0M2pXbVNekMinSWzmdVGwpZaXNfHEJn/vcKGSIeT4hu12VB/1kAl0ElgNK4dtpXBCa+3s4iwmLeb1rXD/1NbL5UBmGUzhgNuj6p3SLQC2ScL3FefqhWy7/Be6t72ZGKxSAOnaGPnhb66hxDfMpel95LUExYy0/gJOp/saeI2wy51MNb2YZDGo0BslQzXmgGNy4Jn1vb3VDJtUTOeoRU+1TmbMWu/b7cmZPe8wa47VD8thmWoLsytXL0vKuD8DVsT0WwzN0f7yLPDGv672DxIlawgIzTh27VVwgDPQrtkqADDlqfMXPXjL3UVKPHLyyOXxNbR03WdYPq1IZ6Cwru5+WpmlhukRPzxSWxJs50NtN1glw== X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0910; 25:JALSGUGnvfmnMr4kjrAdJTxriW32YgoKDm0foJhVyi5MJC3i9z/ndYb6oS5CcAXij4aVxrldYt9W8kQvq5wOgDYKTni6dxrzobuMc06WSqSrzY9ncC0e2cF8w1N4O+qdod6p4tb6q6N5XXv7f23adB6gpYenM5rnAU4HXMPKLbTcDRTQzb5V0jKySOdtcpNjYD5P5V6sztY5bnR+PmyA7gqZHUZCH9aoSzRFV3OTMCpJohZGVI5MuX/vOhtx2dbSbUU6iFYJPHexS0XjaOJFSsx4SBOz3W6+RtSIozMFwz1s0+P8xWbxdjR2/huJfFgszgF7iEC9ELtX8+K3dEcAD+o7Un+HcJDaTQtRmKEij3LQbRJe+Fwrngi3nzv1y2KsdldOhVxyGcyTURdF1KOwncSFytRgcw5DId+4tUrAUb1QLpJRTpLcrfCz5IftTbJqV+zW2GpQRmfoxUFV719G9aehdL8PyLmugiWcOXGBw9Y=; 31:dBlxVmifQmvE1OsaKdO+WH/81UJNQT5RBADWnNyZTsmzNMwf5PEPBmVYG041cB4Llh27rHT2U7tID+Thp0jWFamSafLp/S8RpEfjCc866/DGv2f38JwTXP5Y7nETnSLy/UE7wJVCA+QN023YYqXMvwLokZ2C86bsJBJOtSRnRzcv/1R1OHAxTTLSyco3+DJ05o1ikhm5vpmD7iGZ8pnC4xBCRXJFSYXZc8gmjvKgOOA9+//eNNkh3kE5xwWOK/YV+rVj45Wkga5IXBtSx75Srsls3dMWjP0OZbteCV9lBlM= X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0910; 20:v4/NNN8DEpf1l1OfQAUlqELQr33Rnoa0yK22e0rIzyWx0wYqMaJAe6uGbH/y/AqPIKphFDlY5nsQtlhD78xxsqd8xSHeCgs5lbz4rqAk09LeGubF7gSa848HQAt4gloiQQTRfQxZbsSYLPTfbuMGH2iMiX0pNKnS9JUIiq4NH/23zZiwgmONmq/Esc7pMPRYjlOExoxWJ/JooiLUCFFsM/pquZiFgUcMf6V+FEPS3oCEP3avtceWzF4yKlWOqH+R7ijSTq1GzSgn4bYEj915Oh1BAiwljokiaJM/e7yD+O3iomPgOFnvcQNEIqyr50DsqRXH59XMfYHnlOqGBlvjL2C6aCN/s2I9HuqM5EgA3ZmColdJCPI/MaBh5jC22PuoZJF7t07p4KTSY/UJFtqAFcHN/nF56I3E8HTaynUq09ClJ4oZAFoa3wmYz49Uvfv9St0w3U53A1XYW1aRTR2Ww8cOm724FnQ6EdmoCiwtQ7XFU0kfx4HmhYttu2Kbn+SMKzm2sCDKpJit35OX2lC8vVVPpUY/cmY3LY8nnDKabu4WThvpclcK/GSDWOWFAJW+Iuo2faGkz+UnoINdV8nf51Y9LmBdxA8UlqjjiVFInCc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13023025)(13021025)(8121501046)(13013025)(5005006)(3002001)(93006095)(93003095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148); SRVR:VI1PR07MB0910; BCL:0; PCL:0; RULEID:; SRVR:VI1PR07MB0910; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0910; 4:HuEoeMiMq7idPa6zXil71C+qFxaPvAhIxJC9Fveln8J6GkxjSGSgUA+s2wdOFdtP32S1sZpnjpIL+pDC6DDlfUMiBKiMmyLJv8W8h/JIpZNhVjjXLq4olIVHhQN22JLA3IVXImmcMwA4UY0lO6beIb6pKq4+dReUBe3XlYafnfBMgSbLcuh1OOx62Ko9NlrZaaeYyt+o8A3x1Dv03NiEBcEVIfFMMQrgaurOeboOsHV6/kzRoRla3RMFU65CWvz3vD6hK6SLbZtMvrNnMw2QvP4X7CHw+wi8FxcCWD8DKE9qUhkKvwbNy47ckLjOC6E5c2wF9ELXcKjXGuc1WLSjwP/HT8sqtMxEkqk/C5wo6yfzLt7BJ46a0wFyzf7UNqvHheW1L8M7cRN3KO8EKGjdEKO6XsdulEDaBr3mUkm+4t6ODKtjyWKuiF+rxdHaW0LGeq0SDmlW9Qd2owrv4fOgb8OqsB2BtSSCRBa5zBoBCe6i6Zi7HmF0niICuG4m2Fvrz8ZkK231wZ/FmfSvPb427NaPyIF3vwUWfAuCFSeqaL33uWy4kEi9nWdy7XHoaYFRCv57YOfO66dVzlK3HAWeainckqJFofava5sAI5nEHsGLkjHN3RBlwt+94qIE7oLOKlHDwpI8xOxBR1V1a/PVqM3Z+OfC1BL1pMnniH+Aw7RSE+kJVwyk5rlkO1ncRsdbP/EiQk+TvE7PZgvE4etRsCqU5Yw4K0hCOXrQhuIXnQkB2kCw8P2+PLelTBJZAxLRM6nTM+JidaTdU+XhDHfgC+3zJTrHm3fGbCQWPelwFt8= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR07MB0910; 23:LgY030Z4Ub4KY3ipq2l3cDkLsMEucxnGIXQZqmb+C?= PqwFx5ilFiiif9RPwzrrl0XdqKBl9yH1YewzF6D1CArkIWJBAUvgY17KtpFriZX2fTZLjNvtCwzdChoaCvCJorazy5Jj9lhHvQc8YNQfwxnk5hW8PkJvM+UeGkS57QuMlXFyD2T25ITkhZuadN6flI65Dvscaw0n1tadfxiL5OrcAWpqCSSppiBWIylMoLv5bzqn6kPOKToKvVpsp2Oh4wRpQsbBiC7+8pd4bO8CKgBVNiTehECb9QlyBnOVg/vAn1w24OelG8VWae/Rv7PwVAyB9dN5VAMOCwBcjgfxdKgl33/7sI4IKlAkzE7t7g/UcarTjepV1+FDWX7x9v/qbnrbzvhhzFn00gOtbTfM80JWok2KPpQNZc4uEe2OuGuIm+fGmFmFDAPRicHQ7P/UelHiHmOEDVTnusyUu/8K/9eDNgIeZY8exV2wvxZkPdWqDc4xGkLFBW548O2xmmNT3Qej+ekBO+P9YCP63ubTV4NqlSjdLvtZjPrqzgiJz8hpJ4+2p2anX4MdMx1FM55WrzZRx9VggpPP88llKbEM55BD9oOwpWhBCoTkWhcsdMAAD9cR6J8TuJSm75JnQtEwdByRVlAdAJW7bfU2QF1bohGdmaiSoct8Y+JxgGJCamJGtFq5mqm2K9ZGcbCE/qeqs78SIjkTTZxD3kKw88Bh70OkWo2g+sTAELEXgMUh2KY9L4bEcPA294CvhfNkWc9Y7Sc8lR5ujNqq1CdAt76K3wRL+uaqKtUu06VykBt0RG2vliOLOlszsevDQFyQSEFbRwUWAVORyOhpFPSuDBD0sue6rK2GvPAA4z7sLu1yPW1TN4pQmCGvllNOF4w/jCgv3zAKbkNUebaz3/pmGHmrfVVM4vAuSzBR9aPdonkFjYbVSPrB1JH7B6HSu+IgcAWMSo0Jfn+Zf4IY1Kl2Ra1qDhhCWrNtqCnkdcRK3SHq7Nre2dpMpOEPnRFGBaizxg/I6Dzp9C18GBrfAH7eHnHdMmTJ5saMSuQL0kOiyKSn3Qe9NzMjtas2xye67R+IcDra3jP X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0910; 6:Sjn7rFYb+Pq4jH7j+Ei8kMvNcYuyH/7KnRFhiy86ApgxDiIlNKKY6d7c1hnPQbf7Aru28oB4RdOriTJ6vka+MX4ta9iPhQGMmwFK7cdENwiG048Wggi9FfwtOHc6U9vR9JbVG+wbKFMVSEE4oobFwrGQX8EdWtK88MtYtVenqeqqWV+da5p+33mIbPbba1wTN9+s1PhlHOiOVC/SqCsBa8NKaMTa3HU+OhDjbWLc3Cv58GEu/RpETPxc7KY/1S9Q6pWY189sl15L0UCqkN96tqGuwuSeDQfroumKOzY0fJ6SQeL5I6KnbEVa0aXSuYEjnTBmzXPD3zcmef6om+eqsIJMASYIPAvxJyLdcgUlhQw6ywYIZxV7qHQzTLwldVOl3MOGTPXz08JIDWmTe3o3ZfK1D08Wlf6rNgQ5SBj5o9IClNmcpM/Pr1sGP6YX/vSsB6cktiQlh23LR+cPEKSFi+giV4mb11vbZ8MhtSxcqZoyGrl2z/WgVYvZ5Gg5dGNZd4Oue4ohk1CGOqX/LZlCB4paqHTK7qf+u3et1V57T3I=; 5:eQQSWWuHTJFJB2uy19uKK6weC32/cK8LP5nzv4o3zjAv4LuBlvSqnERiEmT+I7e/NCXovdyHLIrPmzhcO7H6GJUNCDjK+Jk57gewY8ijDmJsavX1A4WU1XhH6pkG5fsZVXngdKN5P8BlRAXg7WwPgw==; 24:6olkiRSq99eXfR59+AbGDUHIrkPVGu6yGfRiZWDyJMQkPOFqG3tlHGk1WV0QXcJeAvsp4czKuJbnktfY0qclBx2Lv9o2opfislrFZBgqwOQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0910; 7:pqw7J5TpY/MqpPBFFceOxX97wOLxC/bu0gYPgdimTAllYsuUWIavllhnoQTV3MzMh9IiabC+8n9NZjihzrTgjobiFnNsmaiTq1h463uwqvZIPBN4RBubP1RIPMjP0d5sLb1dLRq98qNDSn1o/YkYGbH+0hMvuWNG9K4/2BBekyrPtjvksvCU/0P8b2EFW8tvPtLXbG6MIJ4rDOdy+i2O3D7Z3iYkHjPYTVYJuMtgoLBTWeU1OFwLiTQkcE+KU3p8G5KY4DH5lRtw0RWX0tIuqrJgoWIelzSDmNpFmht+/ifZQrpJsGnwR0ZskMWPyZrFfYWr4y9CPUbl6Joafe+wcg== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:53.2470 (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: VI1PR07MB0910 Subject: [lng-odp] [API-NEXT PATCH 6/8] test: validation: rename time test header file 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" Header file name time.h is ambiguos since C has a library header file with the same name. Signed-off-by: Petri Savolainen --- test/common_plat/validation/api/time/Makefile.am | 2 +- test/common_plat/validation/api/time/time.c | 2 +- test/common_plat/validation/api/time/time_main.c | 2 +- test/common_plat/validation/api/time/{time.h => time_test.h} | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename test/common_plat/validation/api/time/{time.h => time_test.h} (100%) -- 2.11.0 diff --git a/test/common_plat/validation/api/time/Makefile.am b/test/common_plat/validation/api/time/Makefile.am index bf2d0268..999fcf15 100644 --- a/test/common_plat/validation/api/time/Makefile.am +++ b/test/common_plat/validation/api/time/Makefile.am @@ -7,4 +7,4 @@ test_PROGRAMS = time_main$(EXEEXT) dist_time_main_SOURCES = time_main.c time_main_LDADD = libtesttime.la $(LIBCUNIT_COMMON) $(LIBODP) -EXTRA_DIST = time.h +EXTRA_DIST = time_test.h diff --git a/test/common_plat/validation/api/time/time.c b/test/common_plat/validation/api/time/time.c index 530d5c07..aee7ccef 100644 --- a/test/common_plat/validation/api/time/time.c +++ b/test/common_plat/validation/api/time/time.c @@ -6,7 +6,7 @@ #include #include "odp_cunit_common.h" -#include "time.h" +#include "time_test.h" #define BUSY_LOOP_CNT 30000000 /* used for t > min resolution */ #define BUSY_LOOP_CNT_LONG 6000000000 /* used for t > 4 sec */ diff --git a/test/common_plat/validation/api/time/time_main.c b/test/common_plat/validation/api/time/time_main.c index f86d638a..bf1cfe7b 100644 --- a/test/common_plat/validation/api/time/time_main.c +++ b/test/common_plat/validation/api/time/time_main.c @@ -4,7 +4,7 @@ * SPDX-License-Identifier: BSD-3-Clause */ -#include "time.h" +#include "time_test.h" int main(int argc, char *argv[]) { diff --git a/test/common_plat/validation/api/time/time.h b/test/common_plat/validation/api/time/time_test.h similarity index 100% rename from test/common_plat/validation/api/time/time.h rename to test/common_plat/validation/api/time/time_test.h From patchwork Fri Apr 21 13:11:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97902 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp321389qgf; Fri, 21 Apr 2017 06:16:45 -0700 (PDT) X-Received: by 10.237.36.105 with SMTP id s38mr14227395qtc.185.1492780605173; Fri, 21 Apr 2017 06:16:45 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id r29si9496078qtb.270.2017.04.21.06.16.44; Fri, 21 Apr 2017 06:16:45 -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 BB72C62BE0; Fri, 21 Apr 2017 13:16:44 +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 12B7061BAC; Fri, 21 Apr 2017 13:12:42 +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 10D0462B60; Fri, 21 Apr 2017 13:12:36 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40128.outbound.protection.outlook.com [40.107.4.128]) by lists.linaro.org (Postfix) with ESMTPS id BBD2762B5E for ; Fri, 21 Apr 2017 13:11:56 +0000 (UTC) Received: from DB6PR07CA0085.eurprd07.prod.outlook.com (2603:10a6:6:2b::23) by DB5PR07MB0901.eurprd07.prod.outlook.com (2a01:111:e400:5105::17) 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:55 +0000 Received: from VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::208) by DB6PR07CA0085.outlook.office365.com (2603:10a6:6:2b::23) 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:54 +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 VE1EUR03FT060.mail.protection.outlook.com (10.152.19.187) 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:54 +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 v3LDBZVL025528 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +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 v3LDBYOj025438 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Fri, 21 Apr 2017 16:11:33 +0300 Message-ID: <20170421131134.27992-8-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39850400002)(39860400002)(39840400002)(39450400003)(39410400002)(2980300002)(199003)(189002)(9170700003)(76176999)(356003)(36756003)(305945005)(1076002)(2906002)(47776003)(575784001)(86362001)(2950100002)(6916009)(33646002)(2351001)(50986999)(77096006)(189998001)(5003940100001)(8676002)(81166006)(106466001)(8936002)(105596002)(53936002)(50226002)(5660300001)(110136004)(48376002)(38730400002)(22756006)(50466002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB5PR07MB0901; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT060; 1:g0i+JJ007H4yzvMOmHvXgvd2RO+y8rJzVYBKorFTcn6BbNNqM4eN4WjTWmLf53ICE2MXtH+BL/ohmJv7wqgZfSEgbFnLA8CHDtui2GX2/ngGw/vaFDtTnqNoecKrvcfqUHoNCHan/t9GTwN22w0eemNBfusXwGEfpWB0ljyjaRIayYMwO1ti1SMBPfCbit1o2zopL2weJoogFnnBJsdIbQWCYovuHQNxKjLSHSN1oTGmUJNAN8Ylt9tDg8tZp5mpgKBtRgETeInRxHxYLI+RC+Vlbwi0vb4KhyHjsMIEs1/Wkl5q72lnbfr+/u1rdH7D+Sa5pAcn8KkwnIOCcuzbkjmbFTN93bNhHpRgOl6qGILastZrANooNnjJYE2pSB9+I0/LyZwgisvhhgbUfIuaWLg59FdP+MNdnZ5ZThpKBI9niD2L9p3gJeEUK/zr0Cp47jHhzEfmb3GD15wPCarU+0486fu098kLD3hzEEap7D6e4BwRM1l+nXuW0fiQZx8P44bV3gib+IAxgOHRFZ8fsQ== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: b6380bbf-4e89-4438-ceb8-08d488b7fb92 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:DB5PR07MB0901; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0901; 3:mdDontgt7qXq/lpAVG1bduyvWKzfpUXt0TCrVYbN+3fCudh1OIit2mqRHKf/73keE6hV+F4c3RWy4rCqsVg9CYhM+03lGT1jNRBdR/AXLYvKGvHmbVdzC/lgM2+oZpcSvVSRxi9PJyvC3v+Qtu/kynuhVK5V/tG1bibAZvBOCXFPWF5ZtetWOEX8OPc6DHCbyS2PTeU7/ynuxuZOEK6JNdQrF7l4CHpb9ZMgGTHKgz5SUKXx2UmFxR5ZdHOowhzF7Hvd30ZUFcJKBMMoOmfJ9BSv9ix/PHKX3xk7unutF5D7qbxosPODDjVjs/ekFKr8f5bZf1qrEnfz/32l76u2qHD+38VrnIXf1wnzP8gTdRLxuh3RzcGTWu/9tDxuUfUfCY6DotMxl0SlvxmiFSv4W/wML3vaZtUPAfcv7Hyaz437lVLg8sMvGPg4QNTAAhP8b3oR0gRKSIiuh4o1ZNV5hw== X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0901; 25:qzDDkO8BN1xJW7uxsPcSFLeLXj3sTT9KLumvcL65bNiH1mz4dFaZZsq0vFvAJzPyQI3KmuCw6KHqR4HUcor2TsnOd2VUZpShiK5EqX9W09H+lFm0L0bwFJKRUB6L4T6sPMzFVz6m8JGRYdp+OGk1HVAHglYPC9IpoRUkx9pIel8oemnGyMX1vRfPeNrTS4FwFTEkLfUhZZdt8GapDY7BS8Mxi7r61HVhVyPfvDJiapCyfTYRQlTBjAc9Da3VXGOx+bjd4e1MGTIbuut1FeHKKWxMplSjL0EMq/6WsH7AF5TohnzbXfyixB+vCj4S51CK/Rl97onjmwMsfPVZ+i7Ev9xM6T2wxI1LUZo2kdljcGgFREToIeL3agpxpnBEoZXQE8YxgmLCM9z4z5Jj7QdhxoLvvk/2q8iAc5CNhrQUbVdPJrXDfEhap9NprStwxHSxYsKaKkjx5xvefr68XpCmQA1/WHGaOwZaGlSaae9ciL0=; 31:hN5wH4eOAuk/xfvbPEqY7Divj4mK8f1UN4CeWF8k7v2ysXGnc9nZ3WKvmGb4aPt1EfAtdGkiGuqxlcOoQOVnGt9S9WsbBUSWhB90dVJNI8Tpw5LzGCm54Wat+pLF5/mPIXBkNMMVtnZMwJTv/9CPuBULzOVgig8F74Sl1Nj+G0TLs6m9zy8OgPDjdl/cXClFTZCkAy4LNCCj6683bPY1Wzt3VPxDwViar51nx9qgVsVOVLkxflgnws61uhHNaFfZ69ilHkGJp3aO70SbrtYCsA== X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0901; 20:exxv9cJhQZaKhTOAVhKjbHsVww8kaYXWs3K3SGnMdAEJD2xSAa1ZS5uEiDWWR9RgvkV3a2QbI3UPkSUa9KLU1kNlfsbNo1VvCK85Rdwf+NkFJSNBOhOXnsd2j2J2j+4Uq28mGNDI6+C3gxsn5yY49o6WWMweCX16LUQR46YkbPvo4jOOEkJQQz/lH7xDgyb7VnMFJ2VJzsmZQI4cV7AOmSO7ABibq7exqnegy8Ion0XZVfPkWifzIj7IoJCITN0bPKMCFtSEoKu8e0C0U7sbIBhoLWgs8HzNVoGt5vwhRb/kt/LFEYCkl2/6/DrL/n9ZxLhwZeMj4EMEfhoedZiPtXZPTYbytxEEhZRHheqOEKRMociE9F2TCnATecGKX+fBPGFMQn/lzo4gdPgPQI6BPybfU7vQjhFHrGpxG2DRXZRdg69S7/qPSZK38PgPBIxe0F369HRVQdxccTC52cYPxFrlupi2AIEAuz31kg34mCYCYY8nNhlgJaU0I1KiUu09/WoehIL0b2D/sXNbvBYvl9UG4h5ljb2zL6abadqyuuRzK6RhdQuYo/u7t5vI631tvLCQ0KAB0roVqEtvH7f8+qqRUSBDw/Q6dLcnotcQFGE= 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:DB5PR07MB0901; BCL:0; PCL:0; RULEID:; SRVR:DB5PR07MB0901; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0901; 4:Y1SVHTVmMu+5wezylstt6L7aGzebG+8nwv0qAoygRM722bhzu1RI3TaY/1C3s897E3hoMZPSgwuWdp/peP/QLObIgji2Y9zgRpHO8M7KdCY5d4EVZwxDvqztWwssgce0ySIxvxtQcrv2qW4UmSb2WVwP7OX2pGAuoyrc2kLm3186ab7n1wQB3Mbu9vI/0hKKSc+Gz+nTZxUg3LbBWiag8Wd97HVgCwDGVscQ+vIeCSEnDTe2FivGzKhmIAfd7XMTdqHNBo7H4WaFq7YEKSjeYlLqJ6hZe2tB7nmzb48L/7bFV+G1R48+jVJHWjDSyn7VGAsjPgD1UBZUkFDcx8MnrcJEy1UiU/JspxaoYzrRdPYQnzMfN9XpZg7X3JIYH+CFiexOgfp97YaggXwS67Fqyd6XsSLHoj1YtvQBsr+EB97XK+TPknTBuy9wzkcTR7AolFyPrqf0RHIPWclRigF0YGf7HjuPQLshkE00u6Gpi514dg0vyh8KReTE3QK/WmREvRpYgjTwgMeA0k+JKXe1MNx1c8QfPSZ1wuG/fqRsG50+93F5kqDOozSJRsKkFLW4sAgvQOf76Ii/yz+pSW6K6jLnzErQGjJMo5k2NeKByXuLlgLFVaXQ9ZgMDkhd+zc+wb2MM9OM+Gi7gQQPDYlnM7bMy+8oAKqfyA2R0zqA7DGGkDURoKl4gxapXASG0kb2cdVvsbrKGj9KVGd7SS5WhK2jYAgguelv5XRSG+dvBIhGF22Wgl51TIaEzUGNMYpcyaLywvLJpifu7dCcPINLviaK3HLeqbF2qwo/RkjDi6s= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR07MB0901; 23:WJgeObVIU/Nnx9RGUKsQlYnXG3tpHm+3+B62h7kAF?= ZK1s4oIqZVzY6+oZhKWTAzG7GNWXyKm92KhB+kz79PQtnrXAwLuy3CTLZgie0EeV00OX6dTpwpSknuq564p67WQPy2tnaSvBefG4mHNSOkjT7ix1swen1JCKKAYUkhn4K1zD5M7xAU3xIA+TJi5jL5KDyfjMOxxSVfWWe0Jee0X5zeVB8abA1W5CqaWJiLIUdtUx/3s9EfNfMg99nHQ+QJtELTz/lLTeCG9Ucd/E1mJJkYYU9pX7fDflDHYEeAdAfaX66JPtfB+Uo7M0WWecVSnuGNiewCGRMhlAWumNPTU9KQB0PNMGVoqIvh/P4vlv0/x2ss7zYjNm3pD0o66vIADyrxouw0S+Wi18nCgx9rv53TPzIFRmSniII51Vtgg8SZ/3aYwSClhqmbdQi9ZMkm3yOoySxtOSenLNeDzjHnabOFXEZEaiWeSNR3bQP9h2PBU3tEWyQGMJw+uijKXNdQyhlaFnlvE4EYuSBxFSphz8ODbijAqhFldXl2gZ7qugZI/Dbk6iofu6zbNMOEIqpWhgUYGnZpLMkpHSNA+MqCY4MQKpMJBojHZp/eSW8hz+/GHXLveR0oos2Ab9oCGdGvytAG3HJdGOSb936QQUeirUFr+7bbashOms5ExHSjGWluIg61J7eqPc0uVINCWWLsP5AfbddQTHUc+CzOvvkC9adGQkRW+eC5LvdK+Z6uZXBeNlGe5cbbfJ2xLey6TXUYyunHnLRbhUyK4rkTBvFj5vkAMtB7KUMyguF84fLSN2sfMCWpNbdBHU08O5jPg/h8SYO0SA5dzwzYSNotyP9v+1YlVcQipt21MMlilHdM5TIHJIztINCABCiyI9WbGEO581YMpwYKhuoV4P6OVrJ0GXDmadBd489EEYRrGbi8muo0yawjhfb0o3AejbeAOKyoHIG50+SIBw6PF6zdxeoNWXYoNL1M7k6OcGErB6dTatCAEhMhXRRws8r4lqZvkT/MQ6bP79CqWFYGPKUtBLtkonBwebDzZTWwq0zWMKMpRT+FJA391UD3q0XButONvXXEA X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0901; 6:0C1VfOf5YH9YD+yH/670JGTb2CxYNbKGULPL4mM6Yn1437//HqZRUkfBwPfci80yCghFC72lZHG+BFCG5HqhFocpjicpwCsDgjAKuqNSiRf08Y1pfc94A59JMfbju6NNhyOLlWpVUDW5JUTx2/jnNHc3Lvmpxn82aR04R2eZn3xK3NeIZBriVZxJZmO3MUZjuWPHVOhlmW8kpKhaX1qzoJIMODhLE1mnl3A3Qc7w2HY1ENSJAfi+TN+I0EUbHvFfx4g7MiQBUyS0ZgfP+8YAREOnGkbENEjUzVz5O6MRFb2fu+WdluCt/+Lvynvdsq/G48HjYhtdtPmYsILKf7Bh8rKUqD6XLWItnLiKrPNJKlej+/CDzzZ6lhLmvLFLnop3DMovZlAyw230ugJ6p6h4llrSHOYDaMv/nGwnI2WvGfP6SKuUBQ5oFD4gq+lV5DgbMq/EuHW+gwU+U4V4vhzpipofviYCQOX6tDojHujKKFP/X4ZIv7LTmjvW8IDfN6eWEuFXXWbYZKODYxVWYNvoEmBJBnFZa4O0ivCjQ9QXjCU=; 5:pHn/bKYX0NKq7Sqc8q1+71oPzZW7Y3r1CM4I6MO56K8jUfZCMvSmcUYbfqfNyuE5k9VNizcPkuWrWW6YqbIfjDxTqifMVVwr81jac6hcKiZNJs/Kq7ZNil1s2cVwnQF3DKN7p/B0YQKbpctlDVxIYw==; 24:4XmTbYBz4vsjkFsDqJ1Asz1Fil8ptgk6KlZPY6F0Khm3NY3ZQ5vFwvus3+6Amuki9hlyiEIIa0/Y0P/vAXVe+wCcKOyqYAdGnCQ/S1x7bX0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB0901; 7:k9eF2KnhWD0c+5ydNAzCfRcGAlY7WY4b/ROL2rYFNI6SZ6jbEM8hukIUeLBWFyG6B7in5hzt0RWNr1/b03Lb+nzOSoLtxSMA29gf+IKXqBgbkqfiw6sgH45W2Zmdn2tLryRMGygqTrMmknI4YVP3wRdnhTKMo6fP7/DGtXJHTepdwzk8biSo8LUm0O56KtU5dcXWQNLT+B2jD1Bj+Wd7a0/GZuqpTtlYtKgdUPm63tqy7VQIKc/gHdLMNfrfG8OuyquQln88GspWDON/9ENamnpRXcsSn080mZeReHS6LfEohKv/qZXrz4akM6QetOY3CS/LJTd9GlV/amn7SjSJcg== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:54.5146 (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: DB5PR07MB0901 Subject: [lng-odp] [API-NEXT PATCH 7/8] test: validation: add time accuracy test 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" Test ODP time keeping accuracy against system time. Signed-off-by: Petri Savolainen --- test/common_plat/validation/api/time/time.c | 72 +++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 15 deletions(-) -- 2.11.0 diff --git a/test/common_plat/validation/api/time/time.c b/test/common_plat/validation/api/time/time.c index aee7ccef..90e0d301 100644 --- a/test/common_plat/validation/api/time/time.c +++ b/test/common_plat/validation/api/time/time.c @@ -7,6 +7,7 @@ #include #include "odp_cunit_common.h" #include "time_test.h" +#include #define BUSY_LOOP_CNT 30000000 /* used for t > min resolution */ #define BUSY_LOOP_CNT_LONG 6000000000 /* used for t > 4 sec */ @@ -140,25 +141,25 @@ void time_test_monotony(void) CU_ASSERT(ns3 > ns2); } -static void time_test_cmp(time_cb time, time_from_ns_cb time_from_ns) +static void time_test_cmp(time_cb time_cur, time_from_ns_cb time_from_ns) { /* volatile to stop optimization of busy loop */ volatile int count = 0; odp_time_t t1, t2, t3; - t1 = time(); + t1 = time_cur(); while (count < BUSY_LOOP_CNT) { count++; }; - t2 = time(); + t2 = time_cur(); while (count < BUSY_LOOP_CNT * 2) { count++; }; - t3 = time(); + t3 = time_cur(); CU_ASSERT(odp_time_cmp(t2, t1) > 0); CU_ASSERT(odp_time_cmp(t3, t2) > 0); @@ -191,7 +192,7 @@ void time_test_global_cmp(void) } /* check that a time difference gives a reasonable result */ -static void time_test_diff(time_cb time, +static void time_test_diff(time_cb time_cur, time_from_ns_cb time_from_ns, uint64_t res) { @@ -202,13 +203,13 @@ static void time_test_diff(time_cb time, uint64_t upper_limit, lower_limit; /* test timestamp diff */ - t1 = time(); + t1 = time_cur(); while (count < BUSY_LOOP_CNT) { count++; }; - t2 = time(); + t2 = time_cur(); CU_ASSERT(odp_time_cmp(t2, t1) > 0); diff = odp_time_diff(t2, t1); @@ -268,7 +269,7 @@ void time_test_global_diff(void) } /* check that a time sum gives a reasonable result */ -static void time_test_sum(time_cb time, +static void time_test_sum(time_cb time_cur, time_from_ns_cb time_from_ns, uint64_t res) { @@ -277,7 +278,7 @@ static void time_test_sum(time_cb time, uint64_t upper_limit, lower_limit; /* sum timestamp and interval */ - t1 = time(); + t1 = time_cur(); ns2 = 103; t2 = time_from_ns(ns2); ns1 = odp_time_to_ns(t1); @@ -319,20 +320,20 @@ void time_test_global_sum(void) time_test_sum(odp_time_global, odp_time_global_from_ns, global_res); } -static void time_test_wait_until(time_cb time, time_from_ns_cb time_from_ns) +static void time_test_wait_until(time_cb time_cur, time_from_ns_cb time_from_ns) { int i; odp_time_t lower_limit, upper_limit; odp_time_t start_time, end_time, wait; odp_time_t second = time_from_ns(ODP_TIME_SEC_IN_NS); - start_time = time(); + start_time = time_cur(); wait = start_time; for (i = 0; i < WAIT_SECONDS; i++) { wait = odp_time_sum(wait, second); odp_time_wait_until(wait); } - end_time = time(); + end_time = time_cur(); wait = odp_time_diff(end_time, start_time); lower_limit = time_from_ns(WAIT_SECONDS * ODP_TIME_SEC_IN_NS - @@ -398,13 +399,13 @@ void time_test_wait_ns(void) } } -static void time_test_to_u64(time_cb time) +static void time_test_to_u64(time_cb time_cur) { volatile int count = 0; uint64_t val1, val2; odp_time_t t1, t2; - t1 = time(); + t1 = time_cur(); val1 = odp_time_to_u64(t1); CU_ASSERT(val1 > 0); @@ -413,7 +414,7 @@ static void time_test_to_u64(time_cb time) count++; }; - t2 = time(); + t2 = time_cur(); val2 = odp_time_to_u64(t2); CU_ASSERT(val2 > 0); @@ -433,6 +434,45 @@ void time_test_global_to_u64(void) time_test_to_u64(odp_time_global); } +static void time_test_accuracy(time_cb time_cur, time_from_ns_cb time_from_ns) +{ + int i; + odp_time_t t1, t2, wait, diff; + clock_t c1, c2; + double sec_t, sec_c; + odp_time_t sec = time_from_ns(ODP_TIME_SEC_IN_NS); + + c1 = clock(); + t1 = time_cur(); + + wait = odp_time_sum(t1, sec); + for (i = 0; i < 5; i++) { + odp_time_wait_until(wait); + wait = odp_time_sum(wait, sec); + } + + t2 = time_cur(); + c2 = clock(); + + diff = odp_time_diff(t2, t1); + sec_t = ((double)odp_time_to_ns(diff)) / ODP_TIME_SEC_IN_NS; + sec_c = ((double)(c2 - c1)) / CLOCKS_PER_SEC; + + /* Check that ODP time is within +-5% of system time */ + CU_ASSERT(sec_t < sec_c * 1.05); + CU_ASSERT(sec_t > sec_c * 0.95); +} + +static void time_test_local_accuracy(void) +{ + time_test_accuracy(odp_time_local, odp_time_local_from_ns); +} + +static void time_test_global_accuracy(void) +{ + time_test_accuracy(odp_time_global, odp_time_global_from_ns); +} + odp_testinfo_t time_suite_time[] = { ODP_TEST_INFO(time_test_constants), ODP_TEST_INFO(time_test_local_res), @@ -443,6 +483,7 @@ odp_testinfo_t time_suite_time[] = { ODP_TEST_INFO(time_test_local_sum), ODP_TEST_INFO(time_test_local_wait_until), ODP_TEST_INFO(time_test_wait_ns), + ODP_TEST_INFO(time_test_local_accuracy), ODP_TEST_INFO(time_test_local_to_u64), ODP_TEST_INFO(time_test_global_res), ODP_TEST_INFO(time_test_global_conversion), @@ -450,6 +491,7 @@ odp_testinfo_t time_suite_time[] = { ODP_TEST_INFO(time_test_global_diff), ODP_TEST_INFO(time_test_global_sum), ODP_TEST_INFO(time_test_global_wait_until), + ODP_TEST_INFO(time_test_global_accuracy), ODP_TEST_INFO(time_test_global_to_u64), ODP_TEST_INFO_NULL }; From patchwork Fri Apr 21 13:11:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 97904 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp321672qgf; Fri, 21 Apr 2017 06:17:28 -0700 (PDT) X-Received: by 10.200.52.101 with SMTP id v34mr12992244qtb.218.1492780648000; Fri, 21 Apr 2017 06:17:28 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id t31si9510735qta.184.2017.04.21.06.17.27; Fri, 21 Apr 2017 06:17:27 -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 A90C663360; Fri, 21 Apr 2017 13:17:27 +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=-2.9 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H5, 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 6D18C63373; Fri, 21 Apr 2017 13:12:50 +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 5B50861CC2; Fri, 21 Apr 2017 13:12:40 +0000 (UTC) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50124.outbound.protection.outlook.com [40.107.5.124]) by lists.linaro.org (Postfix) with ESMTPS id DADEE6192F for ; Fri, 21 Apr 2017 13:11:59 +0000 (UTC) Received: from DB6PR07CA0076.eurprd07.prod.outlook.com (10.175.238.14) by VI1PR0701MB2128.eurprd07.prod.outlook.com (10.169.137.9) 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:57 +0000 Received: from VE1EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::203) by DB6PR07CA0076.outlook.office365.com (2603:10a6:6:2b::14) 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:57 +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 VE1EUR03FT060.mail.protection.outlook.com (10.152.19.187) 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:57 +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 v3LDBZMO025534 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +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 v3LDBYOk025438 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Fri, 21 Apr 2017 16:11:35 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Fri, 21 Apr 2017 16:11:34 +0300 Message-ID: <20170421131134.27992-9-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170421131134.27992-1-petri.savolainen@linaro.org> References: <20170421131134.27992-1-petri.savolainen@linaro.org> 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)(39860400002)(39410400002)(39850400002)(39400400002)(39450400003)(39840400002)(2980300002)(189002)(199003)(9170700003)(2950100002)(6916009)(53936002)(356003)(305945005)(2906002)(76176999)(50986999)(50226002)(36756003)(189998001)(77096006)(2351001)(105596002)(33646002)(1076002)(106466001)(5003940100001)(47776003)(5660300001)(48376002)(22756006)(86362001)(8936002)(38730400002)(110136004)(8676002)(81166006)(50466002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0701MB2128; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT060; 1:6ibKoF0Wxto3UCltfZvdV28w05QJhBrIF5mwv07ak9N6vCbq0JXZzPunEYOitIpJxHkgqz68D4yRJ20VS+2e74Ol/U/ZQ526JU9GCbcsHIdhvhJONmP/kiWDgu9y1bgexdeJo07Oq8dfrxany5T8ECJJhgo7ygj1q2wQ4nKVM8Px8RPha3A90yHi3E1oNKcVgNjoj7rzGIcAX4jhHgjBk5s9tWEx3CRSr/mmdXPEPa1Q4mm1eyR33cA5rYbmbbR3oE5BkWc6LWH6Y7ziXP/2WvREowb38+v5V9uKNvvVY/Gf2rG7m8DT593FxKz1zK0kpCDeKZw+LvWHitc4mzpjRoo1mYPumCHUgEVNhAC3BRfLONUfhm8I5bvd7cMWHHS5GypuZY3WinKjb2ay1EShbSC0+Oa7Wpmezrka2dCOfl1h1T3Y+QHmjalItNCyukCZJg80tSg1EH8r93uqGX83MHebVIZ9S9BFOfhVrRuYTDkC+ou8w51Pi2fmthcqt7HnNeqNi5lGndibaIOT1R1WHg== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 0c2462d4-f12a-4501-3411-08d488b7fd3b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:VI1PR0701MB2128; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 3:ZaVXqlwebfafnHVld5TDR1uenM/SCVskt4M9juWqdRN3y5h19SWwaZN6A8DPVqYYxk31ewMBg4/xeZAksmoFVrJX01BRZb3iORrsgdtgVKsR8efsXRxyBxBqylUeIGqGb+rArmgZRQEzJJZSNeEmEYeua5rjcRQmAoYYrOI2CglYsv1bha/Q6uEOTMT4KQ85gFbjKKGG3lix4lI56EAUcAKlRbzkaJSMFY2z8dTK+DLZ8+kw4MnAtwuF/o6qLd7A3WU4eWxgJlqEB4dp3MN8Pw8jF8qrR1/5hIyX6RNORkS4uROsPt6Agl5LTM49Kd8p357lNNNp6DIi+HlJ3GDf+kpN+31n+MDQoAovzJp0+rIyAJESuOmdbQElD0enuwQBfxZV4l4y3q6SCUdac9ZgZIBuQtqonuL7p2RcxZSO8D78h+6veyK9aTfIdXXpxnk3uHZCKbxaeW/kz1mPOyAgsQ== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 25:hHuv6Bg23f7Y3tRisagusnHbnSdkEkjI5E1Y871wxUs8io0TebkVe09BOY2EhMZ5wluk5FDzgLlQE6XFTatW8jkHuO3uL38qM7zkEWQtLYFIVwK9c0/Dm9lvCHE2Y45L2RJE62QVmCyyo13JkCXkXm5aDQh+6w8XtFRdFjCTAN8JQ4V4EvWwZaYRLRFVXVk7pPyb/lJHplbC4E9wK0EQ1Fe8qbABpK3RwqsoZaphruslKuliwz+JDtYzs+D6X2f8oh3h9xtANDTVeYEmq69qjLyFBM6lCM75aFaHPVdGNdUZBAuyPJnELIWUT3x+oG8O20Mfed2+AZMqqR5FTZs5MobwbGQuj+IvwN9HNlcfwfF9VUY5j1zPTslUanHOvhP6Aw0M8QbsxYWUL1QLiybA6sHkh4wPD/s+JrLZdYubchHK+LxY4zo0XZdFixDJN3wPEInLdZz8dZRFJyMC2W/PHZzaLvPFFt6Nci3cW0nX8nI=; 31:M/nOx4v5RGLe8NYx8CtDChr8tRVv0/LMaGPyudoOnQWMfbQAFlP2ueYZy7ffgo0/PB2+AZizJlR3616kAsJaxLGXs1NPfon/Te1YGO4ML6HfOJFkIXUwMq1qiZXc+RdtPgmsuNChoKPWSw1ieesqIlL+pbMDkZg0gCUGy/+26GCMAY55Sm+zqsKv3k7ogWj8vXhByLrpvvXQYFtEzKlcemnFGEEikIWk1jRRP/FlvyeRugfjOYm7pxbSL8MgFkSfcpO7guyJlGlGCy50b/YuUA== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 20:BrAv4hNt84OgzwygSiBhxBuRF+9/EVTgBtOsohwJudbYhE/1Ha6jAU6Imcn+mhyKMtbmsGN8k1DxYY50+dEa8zI37RP7Mfm8HuHdqC5MIaToguAoW260kN8KlifrmdeRtUTphsD9QrIVOI9uBdHjjJX2kUefc9Nncmew3vKzHUQIFULp+OF+8SONhNrUZwrti2hd39/ukEt8T/lFxqQIkBqQ3QYb1l6ilNs5AT9kM8UikS1mzMEAJ/m68GwNiqnjs5qJXQ9XJdveyW3KMKrawZ6dKfN2tGxkpMftjKh8rXffb4ReIg9LzpGOZzGnH1ocgX4zBEy4qPxbIVrOTIrztzXoWGkYZ/VGZEeWHmtsxqOLAMaDu+QG/46x2w83Lx6WaJa9I1O9GMze2xmS5kech9v5MRcNvcoxibstuUnhKvNPIM7sA7R/b/GBFhZEP+FWA+nkyLyCODGahDYNj5ejl/aZuoeo7ILgIHSMA8QO3UbjEiosZ3Ox6iKqeDHQegH4BEeJMmKGwpfCA3ObRSfbgFFctaesZOmBu+M6MC/WlTl1QaFJcHp0plIeI5Iy6teRzl/f9Rx0qc548HdDZWDBekrX3KwSKDPG0E/ehIuwFfs= 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:VI1PR0701MB2128; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0701MB2128; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 4:qNYbQKR11+4A/QcMvDxUR/sbdJmZFNT842E8MR2S/dZ1X2jnrIPUN9I3YaDIrF92G0uhxPq9wRrZ1L+GSZcdfBpSZeVysdaZ12TtPWLwWDhKeVhficoiMv8Bl18k3sdsyA4Tph5eYKEBg9FuEUbvXOw88pzmnXihffIqWYQbEaFHRJRDDTOwMuYfI8QoI4h+k3u0IzMuzQPQ/jqAEXDP0l8mxOVshlbygj0SQ4QR3KoaWLO95vnPhbRU/UJFmtuEhSgZlFNv/0sR7gcvIgG/phibr+qFnxW/FTIehhETroOiV+GKDSGFFrLmFxpnICbZ/2FE1KLbQ1lE7in/EV4oHNC2MJ5mMPX+ZG4dn0o32zIotrQ4FrCHCQ+XUum8GdpIEjLwJ5Q8SvaGpA+xKbviuHB+4vkXLwdHZahMufvdE3xim05inbfrlpgQYjoZz+klV1LiScCUXZlwW7k4pYF0pWYD6wVJR5vtea+U7+DgIcZWhVUNFdwFwu/D6LenQ3JSXVF7O//nISgNbsjgEOBBUSShxa4H3245wKQdnMvtFEf6v3/JYW+7eY4eacVuF/DqkD5cSYBi4/N0qrlRiNtygfBwwsDjP0M2D9jMSSBrqy42iLT1CTOHxxN8v8+3y8UJgfCTYa+7U2L5Nczvzxh26Bj7S/bnmGf915yTkFFuqdQQc3vSap8AeA+o81y294jghlvOqjV4PB6ZWteKKBnrP1BZKl8Rg+HRVc0p8BC5FgH778AePTU81SXSzdOqoX1+L7aHjMJXLXwYPsd0IsgkPw/UDsO441Fxkd9r8XyproU= X-Forefront-PRVS: 02843AA9E0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0701MB2128; 23:XaeLuvKehPdlZJTy5IRbeBEVsazKvuMYWtqCjBt?= 2CmVPVyJTcy+Ohv+4ksgmetyxgJhiBWNq6D120h87pM8k9pH5SDkJl7FD611LPXg/Tfhl6Bdbl8WppsiEeO1Pp0+uJw1ctrP5nQVVDfjrN+zMEJPafsEnxGq8Unm5cN/XolNUF20yca9oaOlVSkm9E0Z0LZ738qH2uhA4sG7/UvFuO6/yZLnpX5x3wNGIamzUl/lb0yww/7jheKKngMrHZ1/d7R5EIHZjfcu3x9bvqneinVJTei3wM52bEZc2/Km0TUb+qdt5qMeLjO0Nd1pK1ZzIm/iPyf1rLfzweziPmonz9ggezUVlK2UuYzIFBeq35463X/G1HOUi79h/vGgdCWXJvYsNqX7rSwLR+aTTlVd4uihDkRr0pNbgb2S+kNC+Y+bpCnXkGhDyJtAXtRMUmj+XbVYQfDccqAb16dvKsxaDk5yzdpLSxbp/bRNyxQ548/BAbuN2+AoXsAqNo+3h2WD2yskvjqQ3VrP4zAPruR+SNTvy+HrkIc06GFMo5h8GGSlzCbW6OIOBrHx1jhT8zyQ3CQZs9PA/vN7+5mDouoUbKRbVau7gF7RYDvIzUazTUGkEVSpSaUqkTSKV9Dtp2mMAe0fYIyzuu08Dni9619ECQE5Vx27Mnet8SveyBk9rNMqdg2EOiRvWXQKHa3cQMUFX9/2jGVb9LV+xxJkM7udRTWo4PSunn8E8ZfAVVTgh+7lXU3PJIbGOcwz6kpqI/QyYdD2NCKLsYFEOxZLSJQED0rZ8+3UE1fQlJZbSY41h9nII7m1JEOssuKvKniNHQY7lsI8sPArV0qvl5je6x8eWskEnDWjlwuwgJa3tVFu4ZVzhgF3qNqHAFMgz9vW8pu3kEDJ3wx/LCtEijF50f2mO23RBipE5fsiDzLf09yDaigqNLqjam/nJ4w8cJf67G9JsE6tDk051KuXslbz5GYPYY7Wl4uIsVRV0YTY8VfhH36CMKxbCtUF0K5nYmFXG1jtQF8F50HyJ9899gq1BbGVO2+9KSJr7R3S0cf/8V6W1lV8= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 6:++24wHBWXdzR4D2pQZQQXYy6oPz9t/nfSrl/kCwGAC48DlpPe3VG4zWQcEAVp1C477HS4KTHPPzQCiwsJT4NNUdn11+iAWvmlJZJqlzPE+NS74UY/04Fwte47kJout3PVGKE+Z0Pj6FxpzmPcZ27WcXa5dy0br5CFKhHZYlQqopv1P39bren01d5F7NViFWwrlqklmk6NFobRGsJwZoez57kzWFA1tn4M6ydKqobxRxJ6sBtirViSpm20LwLtvENOn27V8TDrvV1ENcxnsgmyypdqctnIqVsSFy3kXq0EuXtt53zow6zX7Z9W+UEHUqqiNBJqGAkg78Sm3nF1R2gFPL37PGmaAJvk1PnBmc48UTAR+jtmfbyxD7tXzDKY7YNaArHPGTNn3UGDvnDasbgNV5KYAXP7GQ8Odoy6dZOZDlK3Pu8yoBzoRj+SknKkdfpEdxH8T0pNxLesvosxFPezNOazqPxBS07JIzpzKDXGPtiFsEibUMCPhqtrHOTtamk7QhNpXTtXTsnxRo+Rx2aFTc2aKQucN+l2tpCWXbKhgs=; 5:aKy1pS0aaUMGxQ5mwP//ufAtLi3/Yj81lxs/WQCqjS/znqTTHPe3SnOryX3Nh9edG9uDfwavGu3kKAq/RCzF6sGXcg1ekUmdLERSN8ccSszb5NsACy1xipUyelEkBwojWasB6FTyGzdPI2SxNaHgyA==; 24:In14dOFkTleE1Jl3kesH+vYATv+NId9fiRvRujmDH4B66KryyGdDg8dpfQNG/G8HRK37rJ3x1JySMK3NWhennYxxqWz+Bei27FBIdYcRwSc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 7:x/zE1v6rf9pMfo86mBIkAr1EBiQZI8x8U17KPZNogq0BYP39B3IHms6bN3vetcmaF2T/z+OwaRnJAhqjxmRkek+alheyCpQmf4ffkf3tUsvbwddXDSNkJrOHFMQGHQRhnHbGq+lGorRK7RvPc9IkOFqWPSVV+g+VeBfrr4KtwXVliV9iveq0fTKcmNQW9Jw50nZh3Qn1+leR4KG96MESpj5+qk4jFRHvxomwa0ppR3Wy6p2S9YbZP7wSfQ6BktGjAMrLDlFckilDeigHBah0idN7Ise/aBZSRSU4R84vkntSJrSSfuJEdOEpZbltQJng3eLxlnEY9g73oVdN85aXVA== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 13:11:57.3115 (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: VI1PR0701MB2128 Subject: [lng-odp] [API-NEXT PATCH 8/8] linux-gen: time: use hw time counter when available 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" Use 64 bit HW time counter when available. It is used on x86 when invariant TSC CPU flag indicates that TSC frequency is constant. Otherwise, the system time is used as before. Direct HW time counter usage avoids system call, and related latency and performance issues. Signed-off-by: Petri Savolainen --- platform/linux-generic/Makefile.am | 1 + platform/linux-generic/arch/arm/odp_cpu_arch.c | 11 + platform/linux-generic/arch/default/odp_cpu_arch.c | 11 + platform/linux-generic/arch/mips64/odp_cpu_arch.c | 11 + platform/linux-generic/arch/powerpc/odp_cpu_arch.c | 11 + platform/linux-generic/arch/x86/cpu_flags.c | 9 + platform/linux-generic/arch/x86/odp_cpu_arch.c | 59 ++++ .../include/odp/api/plat/time_types.h | 23 +- platform/linux-generic/include/odp_time_internal.h | 24 ++ platform/linux-generic/odp_time.c | 303 ++++++++++++++++----- 10 files changed, 398 insertions(+), 65 deletions(-) create mode 100644 platform/linux-generic/include/odp_time_internal.h -- 2.11.0 diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 60b7f849..ed66fecf 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -171,6 +171,7 @@ noinst_HEADERS = \ ${srcdir}/include/odp_schedule_if.h \ ${srcdir}/include/odp_sorted_list_internal.h \ ${srcdir}/include/odp_shm_internal.h \ + ${srcdir}/include/odp_time_internal.h \ ${srcdir}/include/odp_timer_internal.h \ ${srcdir}/include/odp_timer_wheel_internal.h \ ${srcdir}/include/odp_traffic_mngr_internal.h \ diff --git a/platform/linux-generic/arch/arm/odp_cpu_arch.c b/platform/linux-generic/arch/arm/odp_cpu_arch.c index 2ac223e0..3a87f09c 100644 --- a/platform/linux-generic/arch/arm/odp_cpu_arch.c +++ b/platform/linux-generic/arch/arm/odp_cpu_arch.c @@ -13,6 +13,7 @@ #include #include #include +#include #define GIGA 1000000000 @@ -46,3 +47,13 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +uint64_t cpu_global_time(void) +{ + return 0; +} + +uint64_t cpu_global_time_freq(void) +{ + return 0; +} diff --git a/platform/linux-generic/arch/default/odp_cpu_arch.c b/platform/linux-generic/arch/default/odp_cpu_arch.c index 2ac223e0..3a87f09c 100644 --- a/platform/linux-generic/arch/default/odp_cpu_arch.c +++ b/platform/linux-generic/arch/default/odp_cpu_arch.c @@ -13,6 +13,7 @@ #include #include #include +#include #define GIGA 1000000000 @@ -46,3 +47,13 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +uint64_t cpu_global_time(void) +{ + return 0; +} + +uint64_t cpu_global_time_freq(void) +{ + return 0; +} diff --git a/platform/linux-generic/arch/mips64/odp_cpu_arch.c b/platform/linux-generic/arch/mips64/odp_cpu_arch.c index 646acf9c..a9a94531 100644 --- a/platform/linux-generic/arch/mips64/odp_cpu_arch.c +++ b/platform/linux-generic/arch/mips64/odp_cpu_arch.c @@ -7,6 +7,7 @@ #include #include #include +#include uint64_t odp_cpu_cycles(void) { @@ -29,3 +30,13 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +uint64_t cpu_global_time(void) +{ + return 0; +} + +uint64_t cpu_global_time_freq(void) +{ + return 0; +} diff --git a/platform/linux-generic/arch/powerpc/odp_cpu_arch.c b/platform/linux-generic/arch/powerpc/odp_cpu_arch.c index 2ac223e0..3a87f09c 100644 --- a/platform/linux-generic/arch/powerpc/odp_cpu_arch.c +++ b/platform/linux-generic/arch/powerpc/odp_cpu_arch.c @@ -13,6 +13,7 @@ #include #include #include +#include #define GIGA 1000000000 @@ -46,3 +47,13 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +uint64_t cpu_global_time(void) +{ + return 0; +} + +uint64_t cpu_global_time_freq(void) +{ + return 0; +} diff --git a/platform/linux-generic/arch/x86/cpu_flags.c b/platform/linux-generic/arch/x86/cpu_flags.c index 8fb9477a..cde8ad3e 100644 --- a/platform/linux-generic/arch/x86/cpu_flags.c +++ b/platform/linux-generic/arch/x86/cpu_flags.c @@ -38,6 +38,7 @@ */ #include +#include #include #include @@ -347,3 +348,11 @@ void cpu_flags_print_all(void) printf("\n\n"); } + +int cpu_has_global_time(void) +{ + if (cpu_get_flag_enabled(RTE_CPUFLAG_INVTSC) > 0) + return 1; + + return 0; +} diff --git a/platform/linux-generic/arch/x86/odp_cpu_arch.c b/platform/linux-generic/arch/x86/odp_cpu_arch.c index c8cf27b6..9ba601a3 100644 --- a/platform/linux-generic/arch/x86/odp_cpu_arch.c +++ b/platform/linux-generic/arch/x86/odp_cpu_arch.c @@ -3,7 +3,14 @@ * * SPDX-License-Identifier: BSD-3-Clause */ + +#include + #include +#include +#include + +#include uint64_t odp_cpu_cycles(void) { @@ -31,3 +38,55 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +uint64_t cpu_global_time(void) +{ + return odp_cpu_cycles(); +} + +#define SEC_IN_NS 1000000000ULL + +/* Measure TSC frequency. Frequency information registers are defined for x86, + * but those are often not enumerated. */ +uint64_t cpu_global_time_freq(void) +{ + struct timespec sleep, ts1, ts2; + uint64_t t1, t2, ts_nsec, cycles, hz; + int i; + uint64_t avg = 0; + int rounds = 4; + + for (i = 0; i < rounds; i++) { + sleep.tv_sec = 0; + sleep.tv_nsec = SEC_IN_NS / 10; + + if (clock_gettime(CLOCK_MONOTONIC_RAW, &ts1)) { + ODP_DBG("clock_gettime failed\n"); + return 0; + } + + t1 = cpu_global_time(); + + if (nanosleep(&sleep, NULL) < 0) { + ODP_DBG("nanosleep failed\n"); + return 0; + } + + if (clock_gettime(CLOCK_MONOTONIC_RAW, &ts2)) { + ODP_DBG("clock_gettime failed\n"); + return 0; + } + + t2 = cpu_global_time(); + + ts_nsec = (ts2.tv_sec - ts1.tv_sec) * SEC_IN_NS; + ts_nsec += ts2.tv_nsec - ts1.tv_nsec; + + cycles = t2 - t1; + + hz = (cycles * SEC_IN_NS) / ts_nsec; + avg += hz; + } + + return avg / rounds; +} diff --git a/platform/linux-generic/include/odp/api/plat/time_types.h b/platform/linux-generic/include/odp/api/plat/time_types.h index 4847f3b1..8ae7ce82 100644 --- a/platform/linux-generic/include/odp/api/plat/time_types.h +++ b/platform/linux-generic/include/odp/api/plat/time_types.h @@ -26,11 +26,28 @@ extern "C" { * the linux timespec structure, which is dependent on POSIX extension level. */ typedef struct odp_time_t { - int64_t tv_sec; /**< @internal Seconds */ - int64_t tv_nsec; /**< @internal Nanoseconds */ + union { + /** @internal Posix timespec */ + struct { + /** @internal Seconds */ + int64_t tv_sec; + + /** @internal Nanoseconds */ + int64_t tv_nsec; + } spec; + + /** @internal HW time counter */ + struct { + /** @internal Counter value */ + uint64_t count; + + /** @internal Reserved */ + uint64_t res; + } hw; + }; } odp_time_t; -#define ODP_TIME_NULL ((odp_time_t){0, 0}) +#define ODP_TIME_NULL ((odp_time_t){.spec = {0, 0} }) /** * @} diff --git a/platform/linux-generic/include/odp_time_internal.h b/platform/linux-generic/include/odp_time_internal.h new file mode 100644 index 00000000..99ac7977 --- /dev/null +++ b/platform/linux-generic/include/odp_time_internal.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2017, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef ODP_TIME_INTERNAL_H_ +#define ODP_TIME_INTERNAL_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +int cpu_has_global_time(void); +uint64_t cpu_global_time(void); +uint64_t cpu_global_time_freq(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/platform/linux-generic/odp_time.c b/platform/linux-generic/odp_time.c index 81e05224..2dd8f2c4 100644 --- a/platform/linux-generic/odp_time.c +++ b/platform/linux-generic/odp_time.c @@ -10,36 +10,39 @@ #include #include #include +#include +#include +#include -static odp_time_t start_time; +typedef struct time_global_t { + odp_time_t start_time; + int use_hw; + uint64_t hw_start; + uint64_t hw_freq_hz; +} time_global_t; -static inline -uint64_t time_to_ns(odp_time_t time) -{ - uint64_t ns; - - ns = time.tv_sec * ODP_TIME_SEC_IN_NS; - ns += time.tv_nsec; +static time_global_t global; - return ns; -} +/* + * Posix timespec based functions + */ -static inline odp_time_t time_diff(odp_time_t t2, odp_time_t t1) +static inline odp_time_t time_spec_diff(odp_time_t t2, odp_time_t t1) { odp_time_t time; - time.tv_sec = t2.tv_sec - t1.tv_sec; - time.tv_nsec = t2.tv_nsec - t1.tv_nsec; + time.spec.tv_sec = t2.spec.tv_sec - t1.spec.tv_sec; + time.spec.tv_nsec = t2.spec.tv_nsec - t1.spec.tv_nsec; - if (time.tv_nsec < 0) { - time.tv_nsec += ODP_TIME_SEC_IN_NS; - --time.tv_sec; + if (time.spec.tv_nsec < 0) { + time.spec.tv_nsec += ODP_TIME_SEC_IN_NS; + --time.spec.tv_sec; } return time; } -static inline odp_time_t time_local(void) +static inline odp_time_t time_spec_cur(void) { int ret; odp_time_t time; @@ -49,77 +52,237 @@ static inline odp_time_t time_local(void) if (odp_unlikely(ret != 0)) ODP_ABORT("clock_gettime failed\n"); - time.tv_sec = sys_time.tv_sec; - time.tv_nsec = sys_time.tv_nsec; + time.spec.tv_sec = sys_time.tv_sec; + time.spec.tv_nsec = sys_time.tv_nsec; - return time_diff(time, start_time); + return time_spec_diff(time, global.start_time); } -static inline int time_cmp(odp_time_t t2, odp_time_t t1) +static inline uint64_t time_spec_res(void) { - if (t2.tv_sec < t1.tv_sec) + int ret; + struct timespec tres; + + ret = clock_getres(CLOCK_MONOTONIC_RAW, &tres); + if (odp_unlikely(ret != 0)) + ODP_ABORT("clock_getres failed\n"); + + return ODP_TIME_SEC_IN_NS / (uint64_t)tres.tv_nsec; +} + +static inline int time_spec_cmp(odp_time_t t2, odp_time_t t1) +{ + if (t2.spec.tv_sec < t1.spec.tv_sec) return -1; - if (t2.tv_sec > t1.tv_sec) + if (t2.spec.tv_sec > t1.spec.tv_sec) return 1; - return t2.tv_nsec - t1.tv_nsec; + return t2.spec.tv_nsec - t1.spec.tv_nsec; } -static inline odp_time_t time_sum(odp_time_t t1, odp_time_t t2) +static inline odp_time_t time_spec_sum(odp_time_t t1, odp_time_t t2) { odp_time_t time; - time.tv_sec = t2.tv_sec + t1.tv_sec; - time.tv_nsec = t2.tv_nsec + t1.tv_nsec; + time.spec.tv_sec = t2.spec.tv_sec + t1.spec.tv_sec; + time.spec.tv_nsec = t2.spec.tv_nsec + t1.spec.tv_nsec; - if (time.tv_nsec >= (long)ODP_TIME_SEC_IN_NS) { - time.tv_nsec -= ODP_TIME_SEC_IN_NS; - ++time.tv_sec; + if (time.spec.tv_nsec >= (long)ODP_TIME_SEC_IN_NS) { + time.spec.tv_nsec -= ODP_TIME_SEC_IN_NS; + ++time.spec.tv_sec; } return time; } -static inline odp_time_t time_local_from_ns(uint64_t ns) +static inline uint64_t time_spec_to_ns(odp_time_t time) +{ + uint64_t ns; + + ns = time.spec.tv_sec * ODP_TIME_SEC_IN_NS; + ns += time.spec.tv_nsec; + + return ns; +} + +static inline odp_time_t time_spec_from_ns(uint64_t ns) { odp_time_t time; - time.tv_sec = ns / ODP_TIME_SEC_IN_NS; - time.tv_nsec = ns - time.tv_sec * ODP_TIME_SEC_IN_NS; + time.spec.tv_sec = ns / ODP_TIME_SEC_IN_NS; + time.spec.tv_nsec = ns - time.spec.tv_sec * ODP_TIME_SEC_IN_NS; return time; } -static inline void time_wait_until(odp_time_t time) +/* + * HW time counter based functions + */ + +static inline odp_time_t time_hw_cur(void) { - odp_time_t cur; + odp_time_t time; - do { - cur = time_local(); - } while (time_cmp(time, cur) > 0); + time.hw.res = 0; + time.hw.count = cpu_global_time() - global.hw_start; + + return time; } -static inline uint64_t time_local_res(void) +static inline uint64_t time_hw_res(void) { - int ret; - struct timespec tres; + /* Promise a bit lower resolution than average cycle counter + * frequency */ + return global.hw_freq_hz / 10; +} - ret = clock_getres(CLOCK_MONOTONIC_RAW, &tres); - if (odp_unlikely(ret != 0)) - ODP_ABORT("clock_getres failed\n"); +static inline int time_hw_cmp(odp_time_t t2, odp_time_t t1) +{ + if (odp_likely(t2.hw.count > t1.hw.count)) + return 1; - return ODP_TIME_SEC_IN_NS / (uint64_t)tres.tv_nsec; + if (t2.hw.count < t1.hw.count) + return -1; + + return 0; +} + +static inline odp_time_t time_hw_diff(odp_time_t t2, odp_time_t t1) +{ + odp_time_t time; + + time.hw.res = 0; + time.hw.count = t2.hw.count - t1.hw.count; + + return time; +} + +static inline odp_time_t time_hw_sum(odp_time_t t1, odp_time_t t2) +{ + odp_time_t time; + + time.hw.res = 0; + time.hw.count = t1.hw.count + t2.hw.count; + + return time; +} + +static inline uint64_t time_hw_to_ns(odp_time_t time) +{ + uint64_t nsec; + uint64_t freq_hz = global.hw_freq_hz; + uint64_t count = time.hw.count; + uint64_t sec = 0; + + if (count >= freq_hz) { + sec = count / freq_hz; + count = count - sec * freq_hz; + } + + nsec = (ODP_TIME_SEC_IN_NS * count) / freq_hz; + + return (sec * ODP_TIME_SEC_IN_NS) + nsec; +} + +static inline odp_time_t time_hw_from_ns(uint64_t ns) +{ + odp_time_t time; + uint64_t count; + uint64_t freq_hz = global.hw_freq_hz; + uint64_t sec = 0; + + if (ns >= ODP_TIME_SEC_IN_NS) { + sec = ns / ODP_TIME_SEC_IN_NS; + ns = ns - sec * ODP_TIME_SEC_IN_NS; + } + + count = sec * freq_hz; + count += (ns * freq_hz) / ODP_TIME_SEC_IN_NS; + + time.hw.res = 0; + time.hw.count = count; + + return time; +} + +/* + * Common functions + */ + +static inline odp_time_t time_cur(void) +{ + if (global.use_hw) + return time_hw_cur(); + + return time_spec_cur(); +} + +static inline uint64_t time_res(void) +{ + if (global.use_hw) + return time_hw_res(); + + return time_spec_res(); +} + +static inline int time_cmp(odp_time_t t2, odp_time_t t1) +{ + if (global.use_hw) + return time_hw_cmp(t2, t1); + + return time_spec_cmp(t2, t1); +} + +static inline odp_time_t time_diff(odp_time_t t2, odp_time_t t1) +{ + if (global.use_hw) + return time_hw_diff(t2, t1); + + return time_spec_diff(t2, t1); +} + +static inline odp_time_t time_sum(odp_time_t t1, odp_time_t t2) +{ + if (global.use_hw) + return time_hw_sum(t1, t2); + + return time_spec_sum(t1, t2); +} + +static inline uint64_t time_to_ns(odp_time_t time) +{ + if (global.use_hw) + return time_hw_to_ns(time); + + return time_spec_to_ns(time); +} + +static inline odp_time_t time_from_ns(uint64_t ns) +{ + if (global.use_hw) + return time_hw_from_ns(ns); + + return time_spec_from_ns(ns); +} + +static inline void time_wait_until(odp_time_t time) +{ + odp_time_t cur; + + do { + cur = time_cur(); + } while (time_cmp(time, cur) > 0); } odp_time_t odp_time_local(void) { - return time_local(); + return time_cur(); } odp_time_t odp_time_global(void) { - return time_local(); + return time_cur(); } odp_time_t odp_time_diff(odp_time_t t2, odp_time_t t1) @@ -134,12 +297,12 @@ uint64_t odp_time_to_ns(odp_time_t time) odp_time_t odp_time_local_from_ns(uint64_t ns) { - return time_local_from_ns(ns); + return time_from_ns(ns); } odp_time_t odp_time_global_from_ns(uint64_t ns) { - return time_local_from_ns(ns); + return time_from_ns(ns); } int odp_time_cmp(odp_time_t t2, odp_time_t t1) @@ -154,18 +317,18 @@ odp_time_t odp_time_sum(odp_time_t t1, odp_time_t t2) uint64_t odp_time_local_res(void) { - return time_local_res(); + return time_res(); } uint64_t odp_time_global_res(void) { - return time_local_res(); + return time_res(); } void odp_time_wait_ns(uint64_t ns) { - odp_time_t cur = time_local(); - odp_time_t wait = time_local_from_ns(ns); + odp_time_t cur = time_cur(); + odp_time_t wait = time_from_ns(ns); odp_time_t end_time = time_sum(cur, wait); time_wait_until(end_time); @@ -193,15 +356,31 @@ uint64_t odp_time_to_u64(odp_time_t time) int odp_time_init_global(void) { - int ret; - struct timespec time; - - ret = clock_gettime(CLOCK_MONOTONIC_RAW, &time); - if (ret) { - start_time = ODP_TIME_NULL; - } else { - start_time.tv_sec = time.tv_sec; - start_time.tv_nsec = time.tv_nsec; + struct timespec sys_time; + int ret = 0; + + memset(&global, 0, sizeof(time_global_t)); + + if (cpu_has_global_time()) { + global.use_hw = 1; + global.hw_freq_hz = cpu_global_time_freq(); + + if (global.hw_freq_hz == 0) + return -1; + + printf("HW time counter freq: %" PRIu64 " hz\n\n", + global.hw_freq_hz); + + global.hw_start = cpu_global_time(); + return 0; + } + + global.start_time = ODP_TIME_NULL; + + ret = clock_gettime(CLOCK_MONOTONIC_RAW, &sys_time); + if (ret == 0) { + global.start_time.spec.tv_sec = sys_time.tv_sec; + global.start_time.spec.tv_nsec = sys_time.tv_nsec; } return ret;