From patchwork Mon Apr 24 10:49:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98030 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1420796qgf; Mon, 24 Apr 2017 03:49:45 -0700 (PDT) X-Received: by 10.237.33.209 with SMTP id m17mr19272902qtc.26.1493030985708; Mon, 24 Apr 2017 03:49:45 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id n7si4934767qkl.43.2017.04.24.03.49.45; Mon, 24 Apr 2017 03:49: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 F261A60BFD; Mon, 24 Apr 2017 10:49: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 21788608C8; Mon, 24 Apr 2017 10:49:41 +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 314D9608DF; Mon, 24 Apr 2017 10:49:39 +0000 (UTC) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00090.outbound.protection.outlook.com [40.107.0.90]) by lists.linaro.org (Postfix) with ESMTPS id BB9C9608C6 for ; Mon, 24 Apr 2017 10:49:37 +0000 (UTC) Received: from DB6PR07CA0069.eurprd07.prod.outlook.com (10.175.237.159) by VI1PR07MB0909.eurprd07.prod.outlook.com (10.161.108.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Mon, 24 Apr 2017 10:49:35 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::207) by DB6PR07CA0069.outlook.office365.com (2603:10a6:6:2a::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6 via Frontend Transport; Mon, 24 Apr 2017 10:49:35 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:49:35 +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 v3OAnHsF005802 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYP005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:10 +0300 Message-ID: <20170424104917.24102-2-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39400400002)(39850400002)(39840400002)(39450400003)(39860400002)(2980300002)(189002)(199003)(9170700003)(77096006)(105596002)(2351001)(86362001)(47776003)(106466001)(1076002)(305945005)(50226002)(81166006)(8676002)(8936002)(356003)(5660300001)(2906002)(22756006)(5003940100001)(76176999)(2950100002)(36756003)(6916009)(50986999)(33646002)(53936002)(110136004)(50466002)(38730400002)(6666003)(189998001)(48376002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR07MB0909; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:xignbJFTDOs9qaSXHsPz+FPNqhtnsw1++szWpJsm2qDNSH2vst9WeSCJBvCqU/WRhs84Aj1D4ozmup9VaviA5itCTHbJ9DqMr0Zr4lnBFJiY+b9CF1P6QbSXGcpCo7U+D5hRg/PGs0fnswJZ3dfJrXrDSG/L8fuPpr5jGEVDQUzccPuCUxT1w4RDSP9+7vNYVgTQu9fAzA1wmprt68sfs2hTm0JPqOJmq494Xh+973nXUYUyiHKGaXrajwQMxAGulpHxBWqxMELz+CgVGS8MVZNEgXyD0kj5hODcbydXJeLdFAXXVFSlmfwDSAVsu4Yjh99GMsahJFAcTJli7LELrHQjdE6Gu/bLICg1u04uHRhUxAtlDkqDgFCiChDe5TcrIVucngEM35RGf7ZvC6fSeoVarXpmo1XMKEcqrQVUD4/s2BmU2CZNFDM5vOmx8LlruH4Lr2/FPBpKA/yK/iKJ9i0fjyi8K3I04tSM8tdCrX7Es98y2pP3yFhUQi766eULvL9+PLtRxZDa5oM6DA5w4A== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 38b3e613-0802-4187-06cc-08d48aff98f2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:VI1PR07MB0909; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0909; 3:thWPrYnHteAeASNE5yUbA92yXwl7UUz/oNH1/UAiXRpJY0CSeKfkQoqdWu2PGq+QqcYFtJ1rbj/8dfpLmhYi3dMo3DfUk389+B6EJ9d5ureWVu90Gwhx60NtyLKHKHqJdqyc20LW4ZW8BfulvsfkDSaKsjPGxxE/sOIJee5a7RAXBwBoZkupfdn83bCvioR8U4rNoJ0Z4zasTWNK6QoGojVEVzgwpV9sJpoDg+52ucL3w3KB1kWbOZd9kbQE5Va+JgBSRsNBw4lZR6ffSsspPY22LhaImVhVjKBMeBcFBq/elkun/dnACgMRWEqHwbsJBrMG5ff+t9UfHdcCDzO9J5nNmEqoNjbFaFHMmxTmaEtq16gtIm0EzebtBrV3ppGFkcueyEnpOJkv3YWds6MgRZ8xFMXzokK3fzgatlT+m65NFzXgXQC3jbO8vveoJRB/UU3n8IO55rNYN+b7RXboAw== X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0909; 25:nl1OppmIF7XqXp4t+lz/xgiOZZbx8QYzb63jlHmIPA8hPqTQ/XkzglCzTKc4Jtx+fSX0TNh7hRudWQ2x/HbOEswzTSGeGIcZApawE100QIVSgbzZpSkWq7XBRlrchIUcBvIQhKDTdNziFmlep/YHyU5KYnqC2Q7yJCx/8KuYJfH0Z6/7fzLxBeGW1ZmxAQKOv55TE4PiIZuAh7wBZkID/IsOK7BKoFlvwsPnPRMe4xwjmj0kCdfTUroWYQS/QFs+WAd+na92JQgb50o0Fh1D0bjbYT6Ahyu6iHJkoaGgaUjrPaG2aMeijlGx0AwuUOdOvHpZQDpcuBRmeNVZLaTBK92czjJGsk4cgIL5kXe6V46DSYJsQapdFaeiki4WAfAev5W88QYqkuOSnf2bR74/2SFdix9WHuNGxrH4imHtefNJzlx8UB56VHEmcjY7F6aOVwfw9eJg/JMJSUSFhyaGDs0KvetXm7vYarJrJcp/+FI=; 31:U+RzqjUklILERzTsSumzQsndARcDKxqgS9fGTqWvBPjlj3k1XjIY5ZJFOzLzKqLXh8N0WiGMFka3Zo0wMiwI0odXCOqZnURgdkxpetGpNWRDP2PiOysPE/ooHZfo4d30fqfgqq4nce6qhDn5pEN4ThIQAOMK0rD90LXthV8cHjtUJELY3eXJnXRJfLHiQzcEg8ySXOs8gMhT+FCmvhJE5LxCY3db+iOxpD7KMQ4Iv8Rkt4xVEBgomZEQJ2H48xjN5OOv2KIEr+OX+akjabV7+9A2YUwP3cnK0MJSkApG32Q= X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0909; 20:PV976EVRTbdh7YgkGjU0/y04UTVYAKaeg/EUUHa3Yaam8mOqpm/0hJPivyT5EpK7ZNUR8w7GVTX/lFHYEEUio1ZAJfHUqXjOaWFWTd9EH/tg/fpa7tgmGR7nupIqIptQZZWvxnqEKacO5CBrC0IfE60ezA/zePosFtdw4xCPrDzg/YZovFa8xRSdtYPvmwGeSgMy4ZUGWxA0SQI6r6LTPkB2XA7cQPUZlKYMUc63kqmRPKAvwNw2MweimHZXjBQMDSS4wxN79/cKmvV8iJUXjIIalwkigz6Ytfqtlmvd0kBKcaF9Fti587E8CaqmZqNl6BEdjb+9F57WFjHHRDJDZd0pCX8R69p0ZeEjLWCIoTPaCZlgLYfwmX9Z8STr7dSHKKVkQX/uAglJq2oxVjj4wl4cNOXYek0qJ1j8Y4Qg8Obffp0G/2ARyvKDNUDI+k76mOibD80yt56KoJOFTV18kVl0L2VlPJYbcVcB3Tep4SzYuMWB4jcZf18DlDMfjkf4SwS1d1sq+xRvSbKNlLm9jJjsT49PSRNyRNhYyer542J23ULz4r+2TrvDH7wYM5dStFt+50xf5aRdIV6ZEYSTzPkvklKOZP7iyaB+XO7el4g= 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)(13013025)(8121501046)(5005006)(93006095)(93003095)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(20161123558099)(20161123560025)(20161123564025)(6072148); SRVR:VI1PR07MB0909; BCL:0; PCL:0; RULEID:; SRVR:VI1PR07MB0909; X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0909; 4:Bcz1vHTR79Y5au0+4MTO30LrWtFomZ40gW01k3bJOXIc/StmslKmhSkb5nPPOMCR27Z7hFSVMwUA1RL1QcpP2HfeL73CebmgDCYLQq2aOalWEfpgzCscbkq6DuOW/6xUM6IHiNvAPip/ZCE9TtM5IncKWbbhpIiOxiJ1WLmCA28Xq5+ouhGwmTVwk7dQSlHchGP46o7wNlo/WBLbu13SuDExHWE0CApryOL4Ue0BuF/0gQuWRDSyX3Q4N5ojKQONAO18FuI99IyAgObTxuHDIVNluqTGzqjuBDEhhv2vyiCHQN+3t9fCaXwQDfs1RcNbEnBeS+oYeVXvToFVtMlDs0n6k5SvcjvDdsn4WTescim4NnS8PM0HnJdRz+tGNmjB0X+jVtUxm/zK3WdNzH4iLv/FRZMHPaXDROdeq8Iqm/5Y4DjqJHyztyfIZvtJzwMM+azi817bkHV4MiaVOWzKV06KFoox3meiBkiS2gmQOZBqUhv0MjmJv6K3Bxp3KldqWt6tgeEOjvMPtx2dzBKeY1j2cxL/6KlPoHmi0xjS5uD693hKTv5l8omWoXGUTiEjSYDoyYVro5qtAeUsJdiGdhUmHJu64HVWBW15yC0yTLCDL2fNSbeOPJpycHnaiQUIWej2xx1wBDY8U/vNMGYz/8iby0D0YMkL++z59g0EZyx+FF8NYDxXzoatrF/Vp5Dg2+fICnqfkZhgRI9cRNCNDxvPjLIZKOVPLyN1o7a92+PymlOBg4+JELdCwi4uNWUlBfQFk3IdFvxZhwXrnfRwK0kcQz4I7uFHCHU6YSmyU1CTuIQ/mXUj5fLbqkDXXq7zHtg79D3bwSE07vSDIJqt1PH9C2O4K+f4t8lrGQWIlp4= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR07MB0909; 23:SO0crSQ3dzzvrfvxh6gRsu8fKm6/HTyUiQbqwpB7V?= jJhdUKeb32j/qxRyBkKtowI3lVq/Nu4Idr3FbWnqSTjY8d/HtU/zFAGNQMgl3DtWuTQPp+ugmaVH0lyZf8CiyFbi3LwpWx2PlKU9IK2lfc/X4eU93iQMzz9VhepzHo5t5cYkjKPotdkeanN9tpXuvQvWecTSlq2S96NLa3Cavq7LqAraFdx7naH/aa57r3e+UUBteb2n5JDTnlzTIo5CDUmKqJezT5RT29fEPGbTnsrQbsd0hqPPFBUHCrslPPkcAA3amHQli61zyNA7pRDUwLCRLHGK5Z9nHJ3AMnRGd+MQTzh0Mq5FA4bIL0YsQn4yH/2rmtTySODnj6/ReU4Upc5r5Sw3PUrSeHYlhhctF1WeibTIZRiEHvJ1AsXv78nAP+1UAj6xvTGkUk1O05olTHDSseLVNvXyxG/Us6UHhWYO4/vnvzisc+dE1eqrs+Sxpa/C4ZMNwlARnHq4/jJFRRuyEdM9h5z1OVSXD67iDpxPlmq2+ZxGOaPXAxTmuobugeO10n9ov9LXn+HU4DWSS9+j0GeUl9Hr9zkrdUTQumizPnzJHiPmjjSyhGhzgvWrIcL6c/FKw0/Bv9ooq+mqjWjcWslfuamJKcQRy5KUteZuHi+vEp/asKNYhNr6YYPRJPd9nQqhXRdZ+u0rLKyMesNZj7n+dF66gDtH7Fig0EYarwoG4aDggY/2k6Bc//ldH0c+Ffpvq3MHotJLMNpIEV+WcYwQ/soCocgVAlKakCAaYz6xZwYHmrOflZVSoqKxKjznuhIOW6I8qZqY0/BLlmxCGH3BgBc0gdlsv1hLUmMV3FPGpjNu8gNeGyogHkLNfQ+7+e9NKMuNI2PbetVcWyLvJcYLVboIRuqsgya8hxxM30poz36i1r4WUwGpS3afhIv8lPuanemDYt/OB0m3qf7Gbc0QQkpaXqU+94baV/zNAKwomkPaF4/12YeTPVON+GSUiB/mUWbNARK4O4R2qwV3s3vyIx8gGVDfbYspMQIXjFnIic/b9lfB3PuRg60g8MRDX1H75Qd6wVyoKHlz2Ic X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0909; 6:yl9pGros8xiI6s3EKJfSwBDt1xatOuBkwNOSQM9dLsmv9p16uXAFLRG/bchoezLHRCYB8qp1vqAUwgNh/2l+Q8/eaWDxk2l4J3aDvsWD3R/Sxx3zvQKrSOelTg0YHVgVRx3KgaSi6c2kOZJd7pwuSvRwiEFUQQUyOsSpjxgH6EJ+ybqOuGA+ISLm4LvNYOlkBenfOTcmW8hyAt40veoGpqRpmNg28myNg6duEmqXXUNlJPLXDrzSdRoURLd789EgfZqUGH/olF+eziYvWFok5AWAHGlkDhVXQj5JYjWVCW9NjnQWQVUxyG1F98GSzs0h7zTARbz/QahW2kzLhg9Sg/13erRoyVZwb0hro9a88nlclBJKUkntMpuXWsKvPQao+tORd48/+bRiwllFZy/hzlpy6K8BnpGA03iM00U/dh7EtupV7meZFwn484GElTXIvICujLAFyVU3abAUoXaqaL2/89hMmngsUp3oksi1pu4GIAmdl6OW5WLuJctxX9oVokIHh/jFVcdWZxZB6jP696OMQYtiwdesMx6T7OzrfYsetNxNF7lMPoBxgko/qBiwYz9NXV0MxnDNAB/G1myMxQ==; 5:Vo3LVfwA5fO3OGQzfyPJnh59ppTyQm7fK0HmXHU07UOjklOLJ8/jFpxPWM8qtvf02d9lzm8Qk1cDBVKu+j8lJIh/SVfl2+ni51SZA3Bv4WlK3h8OLmYf3nRQ7p4bZCQhRE8vk3hGkDdt/ZSFC1yVBw==; 24:2eGtUMUyzkoYenP4TIH09wqVesLjQZLMjkqh/1KOrEwobrHnpbt0XJBvF9OXO76/uTYwLMDn3PIWxLxRWL+32d2PxW98+6UtAWE5hddp1VM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR07MB0909; 7:dVgsVAK/JpjEGsDm/toR2ifNG6MlW7+E3EcvoeCAmoO5yxD7c8Tg+OcxkJomLQyAWZlY3hv97XLddVZobFklLMk4sOElBOCuGIwW4SjUV9yGzY0ZDaVhbIe5DQsI/fLYOU/FH9XMAghEXpZ9xoZVaoWNYJsHemb4yz361hZyZ4/SgJWZdi+HsYhWDaqNT+naM8oNwYbNX6GmYbwUBZXhQ3nIH0XnIb0CH39R8vU295gqwITp5pzBRNDAaPEwOkNqL3ZmpncbRMGJvV6DUgTVE+qhlEcTVJtZ0sIiKzg1AD4xXBXE5c97eHlZgH0wXjpckrC0zFntJMyBsPydPmER9Q== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:49:35.1655 (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: VI1PR07MB0909 Subject: [lng-odp] [API-NEXT PATCH v2 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 Mon Apr 24 10:49:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98037 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1422742qgf; Mon, 24 Apr 2017 03:56:18 -0700 (PDT) X-Received: by 10.55.203.65 with SMTP id d62mr9257406qkj.245.1493031378023; Mon, 24 Apr 2017 03:56:18 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id m41si17688328qtb.264.2017.04.24.03.56.17; Mon, 24 Apr 2017 03:56:18 -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 9E023607B3; Mon, 24 Apr 2017 10:56:17 +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 E12A260C3A; Mon, 24 Apr 2017 10:51:25 +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 5C858608C8; Mon, 24 Apr 2017 10:50:58 +0000 (UTC) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0093.outbound.protection.outlook.com [104.47.1.93]) by lists.linaro.org (Postfix) with ESMTPS id E3663608DF for ; Mon, 24 Apr 2017 10:50:09 +0000 (UTC) Received: from DB6PR07CA0061.eurprd07.prod.outlook.com (10.175.237.151) by AM4PR0701MB2114.eurprd07.prod.outlook.com (10.167.132.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Mon, 24 Apr 2017 10:50:08 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::203) by DB6PR07CA0061.outlook.office365.com (2603:10a6:6:2a::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; Mon, 24 Apr 2017 10:50:08 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:08 +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 v3OAnH11005805 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYQ005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:11 +0300 Message-ID: <20170424104917.24102-3-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39840400002)(39400400002)(39850400002)(39450400003)(39410400002)(2980300002)(189002)(199003)(9170700003)(110136004)(38730400002)(22756006)(189998001)(50226002)(8936002)(2906002)(1076002)(86362001)(53936002)(33646002)(8676002)(2351001)(105596002)(50466002)(48376002)(106466001)(36756003)(5660300001)(305945005)(6916009)(6666003)(2950100002)(47776003)(77096006)(5003940100001)(76176999)(356003)(81166006)(50986999)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM4PR0701MB2114; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:lZdyt+ufgLWimJbhGCgsjOVIfQqMPbPO5n5m9PN9RHn9WfOpEfZrl81C/ucdoAiWu6X+AYmQRTrdb/gLm0QarovDAvqzWq04gWsvDa7GySOyBxVW45wJfVV07MxDmpkAUMTfCcItnIx/spQhwqrWC3M/CddpYjGl2W+Nqz3modW1GGdEFoha7OV3S7fCYodHnVSHeFXVn+7oTMfNz/olKxnuayF/18RGtbXgwOMHqXTKfKWym5fS8QY6VcCJ3OQUnuJ+7+bB/mGD8v48O/CbHyoV7p/COnOsFL5ieIicad3J78Vj72/1nQ8J46m3CObxiG2qCzwxV1Tqz3VRWHkRhTq1eOdPAtpnTSW1/EU0o/PHwbsYKrU1AjozFGmwPg5maYtN6rzTxmdMg/6EXhLQtwxCefJmrkgr/6m186OqyfCyQ68ePi3AAGN9GAlT7p7adhIo/VrCBz/flz3sK4hEuee/xaFZvfSWXFdAKx8v3sChDxeWDkS1c3+NdlCY72bCbO8aybSPhQAiElC+2SPwPA== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: a599550a-c6d1-426a-ae68-08d48affac92 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:AM4PR0701MB2114; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 3:Z791JQtnJuNZ0YUi4cX1mMIfGfxJqiXemGzk5pA4I+/KvWxgcPICGA9AN5XDAjzGsVmcTf6YDm18KcCSc7odHnTLz1ovYdUDDbkPTAq5BVRKkDbXX6+NVNCrF1n4fnGdr5p+snKu+IcbDXNoBECk3RW5iyXt1NGwpAS3LbWCn4vE6ZMxk8G4h+e2dthWcbN9cHnSG8aKbape/xZke88VCvBePiRLubDCihZX5JLTpi6Xbtaedtgm68p4hOk7JvVWdCKE8lbxGk8Whn+i4iy+7JH/gv8zNC44fwieLWfNdTlyGmTPQG6EkpTzkZ77MBGNaXTEIsK8+ZmfaqGJLZh0UnFAs0gskozl2wMO4MoPiIVTnqw7/3ctsHALPsD0acDd6tQPVMSkL52cnOaOfmEV8oCKzNgr7/tMxU+hPkFZe1Z0herEM1CuMOKqGcHSJyNexr03Ex5VVu1fwVsnfw+QsQ== X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 25:gEwHvqsU8mA0Uw8GZGL2juigvJcSCVi9I4J24rqe3a2wr92qXiifu3trLvceY4Erbdf0bti88NpZIdo4mNMmvVkXc3OOAzu8KSkmtnXWpY6FU5vw9kQ1lbqLirR5ksU2WTxEoFi2ysEB2wsdyzPsSUs9nVCuY2bnqkscLu8nqfzYtBobqfBLI3QJvizqaXGU4yEOXN3KSN6ZMi/fg7GlEvxzL5KS3dVDnO4PndrmH6StvYeQYh1jDFnCHS2aXa7BoIlE1WoIyT/xCsIdksKQC5OBo/sTvIT1Dm/aZIz0K2Te7HdsiROlu+kN5Ky53JDeAChxnPdvdbuInnQMafQWHw2auCHVOlIIdwmyL0V51IwnSpL8nkblf3s/5aIXtlBr+nFGZaO3h4ly9wzzCOv5zzt10W8HchBXDBjTU/cIytcqdLkqd5pxFOIOz4rXc9BymRYecODUY+5jEPbAJpVKEdyAAjuq8ugA8l0dOP51/9k=; 31:36xjQ9F18MXyLMqip/bj7l036G1WGoVCRIjqQjkw8JAwRxBEQlcpI7FsRxa4rpo7MOsfvvR/3D9vXFCILAstEP5Gc5lQbF/5ykvVaLwMWYO+D1kKiWfLm+9T3BD2id9brMB0jcY6lkvT7yND84vvGCuiSPHAvNsUVbaQ60hi4EA5m+nxe+RwX+d+aHOX0CfRVpqbwtxOOW2G9lsN1bP7VZ7KElm5y/28LBWLd0xm42gACMq6hzLlL+f10OZmiOhM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 20:Eq1UPdx/CyvBnAh4x7m0CP7v49Yf/cZf31mmjhNY8chXIjvr+Vd0Fx5aq6bV41RrRkhEDE6nr5Bm0G8Jl+TJU/YANMDGX4iUlnVmHZ4Bw7gM5685fiBdrRBA3Z7DWUEds+JVOqZBRtKR27wekabm3oGxkD1J5bWxljL5qqvjdfW9EaxusU5/TkWImw5CuyWKwiogjT6t0P+aqmJ3qTiVv3frAEgDBEL6EAtwvgThSzjT73BpkzM4ydizusm4zu1J4AFjhL5969DSbcYJog+je2pdZTMEox/bRAK3cHtpGbazZORMWOjUqfwtqFMi65u2m+Q3g0AWahwrJJobSToQ9gIzGgfsBa8Bl2bgMOtdJZC/xg2ETurXtPTUhhJTFtHFWn0ou1m0Bj9xE944K1mjTrt9z2uUgS3sr73ekDQGjFnl3crBno+LgjSkj67a6ULMRvWaS7NpFZhL9usZoBwYK8cOpg9lbiU+QR8eUJAW/3zjoLHIskf9yHhvFig80T0N+v/OvPhKgXIT4cOyT/37wK9KSAdYrkVko0x4DGdn1v+HXfm4zI2jAypcr417Zt2K0hx2gfzHH0UEw9yO9tYqp5LJxPclGHofG/fUF1Pxryw= 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)(13021025)(13013025)(13023025)(3002001)(10201501046)(93006095)(93003095)(6055026)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(20161123558099)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(6072148); SRVR:AM4PR0701MB2114; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0701MB2114; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 4:1awPnOAc11cdXz940wJZi7igPPB7wHDg911A12MFqb8DTP+Rk18j9DVxSxMUZYA/NVO+YdGYsDKdoK7cN2pxMxfMPQ+HTgscRcZC5zwFFS85Nzic0Bg7nLxM5qyg8zJftgKSy4vLa5ismXInPxh+ngkS+fx1xmaX4QNdUYZ0OTksHnBAYezql7I3UdXdJa8bG+qj2DnGgbmN9UarTqkdT1G8RtDrYUWgdO/BUyGe7cm87bwa2x4yIo/epheZTKq0MJdsk0XN3mBYI0n8mZIOuC32RG7KW3wdTmz+O/vgkwt1yYRajP68p6H+Eo1z/0wjepAkrDa2i0bMMoi+4aRHHTbosoPMB54PDZq9i0OlTPc2EhBUN+kW73EarAxzHIIMHX5BaHSdTip+njsuVTcBjejmufcNaYbxXA/Vvn0AajiMXekywEvUw0rg+34x34XvPUOocKkLGP2JsLMCSMBrVtb4DBGEt5TBbrpcLiMHny6RJhAU2WmLBXLwleY8QNtb4ERzatqN7VPGBM4NgKGeWzpvSEGh3NykIfiJ768ipMyB8vdvU3Ls49xsjhvTYY5XaZYU8E4+kvJOLS7ugifROqLfcTZN7qLaJQ4IajKPWoq27JKVv5D9ggQz1UqWQGOw32UVNDv8ul79UuT7jvhYkGFKxq1Ju0Fn0Hevyf//wclsOdhiyZrZ7ogxNnlYM/syvcxWxvKIlDqzFpfbcIFLu8QGH7IuaJ8emZ06eGMwpgzPFwnhH5Vawht2Alljp9lUpXpkyP1DpLMGF4jQAWmr5VzDka6x3Uqkmm6nRECBQdQkkEXPKmgpptNAP0hik1Q3+9DNfGRt7Evw0LAulOQYxqbI2lx1NQb0kekQ/EOnx7g= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0701MB2114; 23:mS1bhqzVUrLhft0IGiQdicRKRNykEW1JmwVLlQK?= A2RVsYwb3Pythxjn/fBT4MLtcq3SeyUqcuhOAZdCy7z+UrxMa5ZD+ljJ4T5hKVnqpWfFNz0dV3NOUtfqzLYHBsZtOvigFEpvF5kpMRrvpGKJEv+hJCwhh4ZQ7/yutdot5p/d7xLYPDXV/uoRakumt9/8ldUi5lSdl129UgPmQjzqb1MO/2q4GXvxi1Frb7QTTLivrvvHKmV5W7Ms9+3Q7qjBHI8KY2pDtgZlSREmjxxqs6EVFC5BcW3v+CVVy1c+XeeYHEyQz53wfopk38rCm6YvzXisBRf5K9AIKsqUSSK+yCMbSmylToMWuFaW2h9jwxmzVsVeSsZylIdAXR4vHeksY5UHvlobDQQ240F6ITST/nvgcYqgt5Qb0gQWmZNqLbqEUsTaQEdW8UKUclI2A5owoqVc3LP3RNxquanCta3ZQqfM7vtvbzuJ4IxxC6hIemiFZXx7mkc2Q62SUuIcrSSGC2tE8P3xB3z0QIs9atPqPB2gYrNZ1Y1KcOesUL8YxVMqUV1opObJEgaVdcOmd0UbjzGbXbLeH6RDhfZjKd8coP5yFeI7HQXW9x8f5AC38F37XepYUuWVzkYseJxD/tD0Po6B7bLGDVF0Gw4EAEY/BSEm5ZvXhx4FB2/1lH2gSTht5wmyiIKNCREKuSsfUhLZ4KUOmRS6rQ7V6n87juNvIcHpIlQiBRkP4kzLgNhykJazpm+5Js+G+Sk6JGfjyEyjgaeeHHfth0qCJlFPc79Ci4kLbRVkooHFPjKUyYoKDiIpOsLmFog0QnpFN8xCWIBzhwmfAmysyYO1amY3+bBza4i0K0iNogMpZePyR6P+SkjI4KgBuK1cJw6jvDTWyp8QW8nymXJF6OAT4RAYdcDkd9AzNXEnGmK5aBjTGNI7NMEbKwfuOYs3OZlJ89zdB2lPeiwiU4+JaZBX7SBnjeEivrijD6whVgyHvsVwdCTed6Nb8lCLnXomRE74xEk6W2ugnS1pvOQC1LnUnXtDSymUjlJnXAjGGssE2m/1xp+Gpbx0AD6MPQSQWfK3HHDckGLPE X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 6:27A+ADdL2jTNCQZ5+bvlCfMuCTA78WTpo+SubnQYGa97F/rjHHx7L3nREYKu9Uo1UcXqvCUU3SQcJ66+lU5kM/DMlujZs+S0q3r8LCVO8+u7LHcynGCJRI+SidFIG5WkwKWfAsbS4+Ftwki6FGe8Dk5xOULdltSrJ8Zanlt9EY2IpOyFT3wkuGxVZ/1UlV1qAwiMP/VpWqgNJNKiBaU06iVI2Wbpr1qPhaS+A38WkGU4fp/fuUippn4I8CQpOFEn3j1qIkNtcf3ECKW9F68kNyDVe62vMLEE8mLE4Da6ir1tNiisOO1Y5lYDEhv8l5IRWC9JKCb6ar+hP40zIrbb/i2D95fEICG0ZZasbsuzkShFAmTnvi6V4YHLZEC9pbqUdgh+wObWRX8pwGYgjvx7py5Y3UtNKJFm5dTqWGAB96yTQtfdSzRfEe9EGdWAFEK3h384X4Itscu1z4WEaigAJcC33oqBcA9sqoJmxfg+hwegRnWszQyKllnDPgKJqNt00/DReOJXfyHk05uToKBUax7pt8+rFcg93hcrI+Ciyw7T6tObDNbaEkRGVH0C4isu; 5:i0f5+e86lMQy8R79J8wATpvaGT1/7uGz6fgN3Cqcz8ESI0UHi0ZD03GSmFbAK3BGgL6KQ0d6P6k37DJ56elvG/9ihHS8agHNbauSPI3CoNBrmvp/GEAG14M+rgTlmrp73FexihqPsoxWzGEzzS9EcQ==; 24:DlR/3drX5aHK9uv6uGrsH1AifSzCNSBRFobYkox6bZ0pviNGsomLphws1ixtIQfGjA8m3mGEhNKdt4DT1ZyV0f7wN/XO8ixFVHvxIlrQw14= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 7:MYyGpUmj842nVO8J5HLT7EBrQsCLLcdBX2Vhonmk1eUmqlO/JynFfCuYfHbNVx4RoyK83mUjHK21NBvnQYl1YMFfywOjxyIVRmd8R4vatlFrRuy0ImWKZEftZbXEvk4Z6GgHTRtFgxNgL3ghqo7OjxAAUdDgD0gLwpwFhEnhDb/+VdWO5SnfPSmJyCYvh2hd+VuvXJQ1MrReWJEocoKHBoQM6/SwW/NslbIWCbJ2OROwKoTwIrKEH0nSJO566Yq6xj++QYjBE7Rb7upFJE78/3VuBRgZy8dU2LMJaUzOQc6TKKvlJ0wP0WGU9YGJ8r9Ey+Jx2MqFx/WchtwXAWi5vA== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:08.0951 (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: AM4PR0701MB2114 Subject: [lng-odp] [API-NEXT PATCH v2 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/Makefile.inc | 4 +- platform/linux-generic/Makefile.am | 4 + platform/linux-generic/arch/x86/cpu_flags.c | 359 ++++++++++++++++++++++++++++ platform/linux-generic/arch/x86/cpu_flags.h | 20 ++ 5 files changed, 387 insertions(+), 1 deletion(-) 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/Makefile.inc b/platform/Makefile.inc index 874cf887..f0776134 100644 --- a/platform/Makefile.inc +++ b/platform/Makefile.inc @@ -111,4 +111,6 @@ EXTRA_DIST = \ arch/powerpc/odp_sysinfo_parse.c \ arch/x86/odp/api/cpu_arch.h \ arch/x86/odp_cpu_arch.c \ - arch/x86/odp_sysinfo_parse.c + arch/x86/odp_sysinfo_parse.c \ + arch/x86/cpu_flags.c \ + arch/x86/cpu_flags.h 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..954dac27 --- /dev/null +++ b/platform/linux-generic/arch/x86/cpu_flags.c @@ -0,0 +1,359 @@ +/* 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 +#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 len, i; + int max_str = 1024; + int max_len = max_str - 1; + char str[max_str]; + + len = snprintf(str, max_len, "\nCPU features supported:\n"); + + for (i = 0; i < RTE_CPUFLAG_NUMFLAGS; i++) { + if (cpu_get_flag_enabled(i) > 0) + len += snprintf(&str[len], max_len - len, "%s ", + cpu_get_flag_name(i)); + } + + len += snprintf(&str[len], max_len - len, + "\n\nCPU features NOT supported:\n"); + + for (i = 0; i < RTE_CPUFLAG_NUMFLAGS; i++) { + if (cpu_get_flag_enabled(i) <= 0) + len += snprintf(&str[len], max_len - len, "%s ", + cpu_get_flag_name(i)); + } + + len += snprintf(&str[len], max_len - len, "\n\n"); + + str[len] = '\0'; + ODP_PRINT("%s", str); +} 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 Mon Apr 24 10:49:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98036 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1422254qgf; Mon, 24 Apr 2017 03:54:41 -0700 (PDT) X-Received: by 10.55.184.1 with SMTP id i1mr27942804qkf.102.1493031281672; Mon, 24 Apr 2017 03:54:41 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id l126si17663696qkc.129.2017.04.24.03.54.41; Mon, 24 Apr 2017 03:54:41 -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 63CA9608E6; Mon, 24 Apr 2017 10:54:41 +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 39A0360C05; Mon, 24 Apr 2017 10:51:17 +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 1C3BD6069C; Mon, 24 Apr 2017 10:50:49 +0000 (UTC) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0131.outbound.protection.outlook.com [104.47.1.131]) by lists.linaro.org (Postfix) with ESMTPS id 3332F60C0C for ; Mon, 24 Apr 2017 10:50:07 +0000 (UTC) Received: from DB6PR0701CA0024.eurprd07.prod.outlook.com (2603:10a6:4:3::34) by AM4PR0701MB2114.eurprd07.prod.outlook.com (2603:10a6:200:49::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Mon, 24 Apr 2017 10:50:05 +0000 Received: from AM5EUR03FT040.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::202) by DB6PR0701CA0024.outlook.office365.com (2603:10a6:4:3::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6 via Frontend Transport; Mon, 24 Apr 2017 10:50:05 +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 AM5EUR03FT040.mail.protection.outlook.com (10.152.17.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:05 +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 v3OAnHkc005808 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYR005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:12 +0300 Message-ID: <20170424104917.24102-4-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39840400002)(39400400002)(39850400002)(39450400003)(39410400002)(2980300002)(189002)(199003)(9170700003)(110136004)(38730400002)(22756006)(189998001)(50226002)(8936002)(2906002)(1076002)(86362001)(53936002)(33646002)(8676002)(2351001)(105596002)(50466002)(48376002)(106466001)(36756003)(5660300001)(305945005)(6916009)(6666003)(2950100002)(47776003)(77096006)(5003940100001)(76176999)(356003)(81166006)(50986999)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM4PR0701MB2114; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT040; 1:V2vkOt0bR6MoVDbwuRUF3cJkv3fIFmCWVqoQJAjp5stVQGK8HEPEbivD2jeGT1Z5eW5/4QXwjwUCe+yy/vPzBWbGKwSNj6Y8wqPUWY22wT1mwaOmkSVIaFyhknpvRj14noJjS4cHOab/9o7eZ2flfe7loJrGBZ8oitVPyjhYr1Xd3oIkFDauUHlWwy5GszlEz1LuL+/ba5wjA8J5K+AJcX8KBPcpK3HuArfEWifdbCHjAyeg5ejVl+/YEz+9eYPgnVJnOMKs8QizPE8oJ1BOW/w5qOv/ejVF6OIckneg2lMCJuhusFpvg5BcEc3Dw4h0AB/Xh94fmjvBSehohPzsuR7GvEZjonmMVKbaLKRJa7MR8yBjZPvR7W3JmUB0ZHAzOGIempuywYqv5I1Fc4vlZN8cUzDZyey64NJQ9f00NdHyYx9Phm6UXcTI222yPcghYVOJN2fiCOnf+gjlWnlwWWKFp+pcHsbZHJFLYfcO5IbBQsl1ppv2KnHsRuhgOPDQQG2bdEa1w6djZd4ha/DF6g== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: d1ed1de0-2b22-417e-d86f-08d48affaac6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:AM4PR0701MB2114; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 3:PpQS+BN/MfcWuLr1POFHqnPaQaYzDY2ER1llExSJX0z/7cYp7OsvEThU5DhW1X+8G68kwYrcPe4YmgxD6nXJrOMaS4m9mEiJd37aL+HLCMoakzIPkToHGRJ2uLO8Om/TOFaNoHZcNOWcSY0wfj1+/lOIhlZAMlU9y3jYv8vB1hL0xiZHM569+SDZHzGLUZ+uUDc4SV4ZhQikYoKKYxiZInd0pPUpvofO2JSdDoeP9elYJnRKhkynqZFzFOPk5QNdZgBGQhxShE6/YgUgMCvRP2SR+nK4VhBfDWIrU2y+MZxGINH72MStU26N8YpG6NVd5heEZQHG4kTY0/NyKdsU3aXYTOKipzfl2/HswX6Mcyrdqw8fEOe2qtciwmU8hFBdgjtZhVU+mBgF6+YRrilrYd4IspJb8LU/PPFeqnk9QdtaCJvR4gCVxqnkksvfehYsOjWz2XqPaEmj/iaGgN4P3A== X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 25:CqMHaQ19gf8aN+DhuzZx6i+6j95EGohnqwknlfrmj8V/egUUOYoqGBChN8q77QkXo7Av9SoPltbY/bU4dCJK26YJ+sBHnAT9fvSvmqZrxn1urfEYTfQyBDMjVPo1+AOGuT2QlyPVOsPrSF4ZR32sLd4RXl+6Qp0XmBKinA4mddKRePaKzE5AplW/yddHz5V6dPEqyjITvL1/2Ur2mGHmmuGPVUPK4UbFAuBgVcLyXBOTxW0k83L6aHdJP4Hk/IUQi3TwBSJ9lTXj5DXgBaHhJ18T6zHXgAjPO7yO58f/5MsqXhR8kNu9FBxnGFC2irXKLtHwv/lbEIaUzDl0/FoC2G2sL/kyboJpwuXWR39HHMyaZaI6yQ/B4juR9aOdztvTyx88ANyO2xBmt5EWPq4MkXO7kJAChnzMughnbSrOfFnVlundiWj+7BVmsbq9gLpUsL28Q7Rz0WXQN5KsH9AZldYEXya7qk0GOfL7iXt1zN8=; 31:yT0YOZu7mlZoO+LpZzioYBvpKYGTEYUP9+qoqn62ZcgtDQUK2JPqnAQNm3L+EIdqjISmYfqrQswhv/GbJSbJSAYI7o+zFeTC0+e6YY32mM0CTwIS0J+SP3JezusD/OoMXO3Z7sX6a8aCsQ+ReZwA+LyPxVD7ztZohOhGkq5u2BCdKdWAvDXmhgCfqLvn3fbPKn1id0Kl6zRNkL6fUmbtcIGw1j4/bQA0PidDqvUlVjSd3ymRzEFjyX5grVD3nMgHIuab8r1hjSD1pl1arvT5euRrFBRcRHqsbumyG77qng0= X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 20:Gkpi3WzxLaAQe+ZDTgGHJUhnNK+CIA6T9keHpA2Lvrqqh5NaFyBsD1rfjiYKQGlJ+HB4+9fbziyRwO0oCOpX0qW9gZuCpNsv04F9dNA2PPldcAOFO23T3/kuJvNWKDC5PqIs/K7A3bE+omkaE87BYIcAnRPHx+U02MFUUYk4O120Khp7HAGlRGC9INN1UHwEFekoG9Lg9vpVvVqxjqT+kzbJ2FpfYmfgbbcLLZ6TkUzRnrkIexC25soAdcPD1D6iEa/kw/uRRPOAgb07E7+XI8CnBAS6s7JDZH4/ohwnsPvD23Y6R29IvKMp7eQXK4cTQ+d3ZF9iApl/CdX9+L+LAl+H0MuX/N9RhBMvRkTC6mVm4yd2qsutqwkncL+WkTIdD8FRO6CfH5K5tPl+wYS4DT3Wq08HL9ZJaabGJ9VS8QfRA47hvEH9U2b/N8ZVjzTCSLNzWF3lwOHX4n9XXdYDaxN8Sp4/2j4ouZ83rv43KSA9wbL+qfdtLcIhgnd+NpOThWY/dxgc9i1OQxmh0pjl0pBwMOIrTFNlyqZHm4NCDK0Y0qbdFYJ40eTKxPWigA4sjElB/v6sySc6eW8N+qQ2A9RMR14LlusvpTWd9QaRSxs= 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)(13021025)(13013025)(13023025)(3002001)(10201501046)(93006095)(93003095)(6055026)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(20161123558099)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(6072148); SRVR:AM4PR0701MB2114; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0701MB2114; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 4:spIBXiq287KC85EZuNAFENV1jKUgYSbgLBl3G4H9JSLGZBSXCeQAZywsybd5t5k642gfn9jvkCdWthiw1VWzVV+Xf2Jt7W0BMEJ+PpSRGfjUVxCEZvH6DwlTLjiaeEyqV80WuR5jha/M2devjo/SpOrw2a8g+F4USOJ9oDs4yZjXj+szywK3qWGovjRKpeIuTdz8/3n5bXPZmcmw5gnEPRl9M7DqicvGLBcDWKKdrKOJE08mqB0pvA0wFkLo1kLsbddYdiktCDLHv922aT3JYKmyuVrM6pg+AN1Q1gKhIqyGAprvJyH06wFMyGzG/DNPzrLhrM20WaF56OScJmtfpQYCChmfRASoq5qFmEnZSNdnEFHRKpQCSfklJuH2ORkja5SKh8A0b7UJ8VjZCpPTZFEn8vriornWE2h4CCqlgaLbRRFTS5Ocl8muhKM5XfcTjEZbXgpUcCUMCfWbZhDiY+wXVzigUXvpagHlxCbcycSCserSOdtEKPKbkbugb8n+aXCX4EaFMuRut8yvxGZiGsnzJowDd0cIHbBma7+5H3A9fT/B6vudoda65vIMu6hCIorojNHlHeRbf571IYy6Isi7igwvbS6UN2p99yPuH7U+lvFIxEywsDvJHp63lGcTbIFZxdWcR+ywD7ax21QJujaBdWPT3zncASOU1IOL5WAxua0SFSGLf9ePZz8d7Gx8Qyf90snoggxK+y3nDz4GpimW3OQ5DqQTo1SaRWQFHLtoFdUXWdTdzaMiL1zKFvaijUpCt0OnHWM9Iny1+K3sgX+QyQ/cgtJ+MuOIN3IMcYRbRBGHfuucMTZmZAHxgZ2KsTLvUFRg7q3bbvdEHNModnX+6+Mp+Linf94LgKP/+s8= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0701MB2114; 23:f0/X9Rohw5mQqc/dGYuYpd1r+c3ZoDm0Q3oPguu?= 9WUEUyHPz3T3q2gmQv7KCz5/df/agKkScARDcqDYtwRVEbVSXcRbR9B830okd2Pr9bB195e+78S8+PRl6ZTwmlmnK6cl3vWJtdBI14y4PkYFSZbJA9vO8BZLkE5LsHPIixCtO5uEFbtjsk60Mw0zTgVTMnpxGvfd1kGhGv2GzrcryR0PPC6ENJ/Bb+9fxAjk8G+uH2bIuqFaGB7ZPPl7Vvkx2BlMn+N/oo3+AxSZkWrIx6K96tasULNcKnqApOFsnjI/kWE9EYvs8rg6KPgJTFTf6wll8T+ai2XUdIcu0FiasaHSpaUiIuDInh20UMFevbYRxHw4Zr7O7ai9Md/tI2dhW0HjWVCh1cqId5J+GlDTXoXu8WdHkO/PkiigpXsex1kfSHtx9MfDOE9e4cxT8L8cuNmzjOkpRova5y1C0oTYfVoEzqRpjdhEHQqdqmJWnZJ1F1WcOeww/GVwYmPQ5SV2ZZrBJhzSKXCkL91t4h9siGVOpjXxaxO+v10D0609dWSH2W3t4vKZlEgPbLgmXsgSocFsF1K+wbfSLJUI6PUUi6FSSXTmjdCwOGpG+1fO5pKbqwYqfeZSYZc2k+wDxfiaTW6ccgTWCaFVCm9LDMI0woXPCXfHEKDnWiPBMf15+8CaReplXj7LtaCs7zfKkc05AshKFpOgSU6CJEV0ciz+txo8QVFjAaFV6z3YvpDZHnZqRwc/k+hJFjvef+cOheK8cR27gk9Hfgd9TixzN0pRj8khhZQFNH8gbC34fq8u5oinccLljuZcuMyN9x/biU2n5OI3goyhhqkypfcm1We/srRY6gC57XIfh6M7r5fT1I8ngcvWYcnR0BzjcfC/Vg9n1o91oFPuwCn86dJvDdAazB6CBgxDCWw5Idqt5ULiBQg3BYhrA0x1AOc8kXVJ3vgM9VJHNObGNtaUzpUslqXgmVBk+ewPtJK+rFGLs0aNgpi64jubHt5gz1a0lx5PYv72lDVFEFpIZhx3Q79yUWXpr6rHEzp/UffcGkOdMNgLIbhN9c2ReO1NAAwvhfxMx3Hjk X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 6:99iE9+UD5W+GzbHwb4TCxizo7xhXawyplVf7wQVHbfg4HKxrDv/8bp+666UsLnU/ODW3CLb081TdaG8snXOlMjYwjCBfmbog3FOGIa2RpTxIZ1uhHb4ZrXByE8bGG0ggjo2DnHCwaQZnn3m6FA0Eo4IfqtTYwsSZ8/stdssFyLlSB75PnTKiNy815DOkQyqjkRI9/H67rPB1kK4pWESQFArkXtc0V4J1718H1P7pp9I/S8+CzygfIC3cZ61GjiXX0uDsOG6CItl++4NKkoyheJCgFAW04cquQ/BKDUvOiqtt0XrJt5iDwL0ulKd/tY9lisc7XC0+9dQmzvNyy68iBVkU5v85WB9VlNytyYPQvZDlVa58gIa39fZ6Ij5lj6M1QeFbmMo1xRFI2DuzNc+3KgDOBRGWeDrbXXa5JMtEr5fUTuKwi5CSW4WZ9WsM0mZFE4ev/tPtjE5Aru6LksA7GsVegdE/5F1lEiK+RXmJYD9xYspLYoy4/qz5ibZYDp8KP2qyqk3yT6DQWQB27drIMHVJrrnUT5TDLsAFsGXF4rH2go0vlLXfE1IvPixKl7nVfTRIcRvW0zn7A/cUB4YpmA==; 5:a4jAaATPDuVYH7fWyPLaurONo4YjlQcotTpcl8qp/L8ymjcv3zLR1bS3i0UsNOPvD5x3n7VFZIKRSK2CoT3XMOvVP23hUDC237p0zCqJ9K40iufxJJ7OSDFZnBLippsrAIGUwTWqOFwGv9RXyJmOyg==; 24:eYupZPgLNLkjMYacH8Sg5P7XNG9BITdfVqUH1B9eNm9loq8N224YSNhT6Hv6Oayv04yGYqvCVibC7a9I1KVxechCDf3/d0rwpINP79diTxE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0701MB2114; 7:6yRS2YEhF7YEEVMLFL8qJ3pLN2/MOuZQxIC6dNMJL6TybV8VtuStLlDDfHm5qiZYzH1cprsKEj9OZ1eUhhESueiKG6RdMdIeLRPwbjv729bh1K/kWtr5QQxIqL3bDfhGQQk4ye8QaP7SLfdTiG+6meHotAqAf4SMY94Bz7ecZC8bmqFas+IqV1fOOJGhl39/X1u4w/ga9cyEUWrhNB0p3oWXw3n/ipfhS0qT5gP2KRHeLy3cT/NM4+5HO8F7PpYF5NT9NKWImpnjcSimPDaeOAVbo2ts4A8lbs19yoPO3n/uaF9nFqW1QeaahpQv/WeuxWLOsqZ1Fi1acSxwJwreMQ== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:05.0971 (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: AM4PR0701MB2114 Subject: [lng-odp] [API-NEXT PATCH v2 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 --- .../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 +++ .../linux-generic/arch/x86/odp_sysinfo_parse.c | 6 +++++ platform/linux-generic/include/odp_internal.h | 1 + platform/linux-generic/odp_system_info.c | 30 ++++++++++++++++++++++ 7 files changed, 53 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..40ffca07 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,32 @@ int odp_cpu_count(void) { return odp_global_data.system_info.cpu_count; } + +void odp_sys_info_print(void) +{ + int len; + int max_len = 512; + char str[max_len]; + + len = snprintf(str, max_len, "\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()); + + str[len] = '\0'; + ODP_PRINT("%s", str); + + sys_info_print_arch(); +} From patchwork Mon Apr 24 10:49:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98031 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1421240qgf; Mon, 24 Apr 2017 03:51:13 -0700 (PDT) X-Received: by 10.36.228.12 with SMTP id o12mr12801081ith.83.1493031072964; Mon, 24 Apr 2017 03:51:12 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id s128si19820465iod.129.2017.04.24.03.51.12; Mon, 24 Apr 2017 03:51:12 -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 6B86860C03; Mon, 24 Apr 2017 10:51:12 +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 D117D608C6; Mon, 24 Apr 2017 10:51: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 BB30A606E1; Mon, 24 Apr 2017 10:50:36 +0000 (UTC) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10098.outbound.protection.outlook.com [40.107.1.98]) by lists.linaro.org (Postfix) with ESMTPS id 06E9060BFD for ; Mon, 24 Apr 2017 10:50:01 +0000 (UTC) Received: from DB6PR07CA0064.eurprd07.prod.outlook.com (10.175.237.154) by DB6PR0701MB2117.eurprd07.prod.outlook.com (10.168.58.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Mon, 24 Apr 2017 10:50:00 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::200) by DB6PR07CA0064.outlook.office365.com (2603:10a6:6:2a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6 via Frontend Transport; Mon, 24 Apr 2017 10:50:00 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:49:59 +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 v3OAnHqx005811 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYS005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:13 +0300 Message-ID: <20170424104917.24102-5-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39840400002)(39850400002)(39450400003)(39400400002)(39860400002)(2980300002)(189002)(199003)(9170700003)(106466001)(8676002)(105596002)(8936002)(81166006)(48376002)(189998001)(5003940100001)(2351001)(356003)(33646002)(36756003)(76176999)(50986999)(47776003)(1076002)(110136004)(5660300001)(53936002)(38730400002)(2906002)(86362001)(305945005)(6666003)(50226002)(77096006)(22756006)(6916009)(50466002)(2950100002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0701MB2117; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:m4TXjItvADHkd3h330G44c3olMyRXCYNoVhzYtVCraMymN5GY35FOKm4AgciMIVYgArwikHi3fWIPsocenUwezYb80n9wo+O/UZ9LbhiiU0yN6YgOTYuhN7ncToKSOg1ZEHuqiYeWPFclCvex1VoRGcIC4WEfLkTFbkBV+1DYZ7hCe7rwJ9DBaZebMx8WZ6TrBr0ryt8p7swmGcS15GBQyV0vybSTGMusNlgik7mDzKkkCths9sTgV7jlW5wFgGXpsySzVa/8932/9Hphq7WpW5LNlGP8AkZP/wlVo7QPhROv0c7eXjQWPc0mW5FAB6Gs9rNQMRFaoLb8OOlO0+b2XifjR8janP5x7LUi7Iht/kXjtgvUt745Xi69Rjt8AC28J3e/Rly+BTpyhk3yiyCYzWXBYjplELIkoOi95zx73K9gGv6M0VEIUb5zxroi665QbvN+PaBvWP3zDEAFyPBaYmvn0Qsf5no3idcuRhetJP8EjI+uY4Zv4Q3epmf63cxThDzkJsq3dosykKO1p2jQw== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: c5508fc1-4730-4453-3f9c-08d48affa7bd X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:DB6PR0701MB2117; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 3:ofwZpRtnkPxG1RALfspCeWrVUNKVVwqwzbKDv1XO5TIy59MrG0jL6ZQsS93eIAUK45bMHSGqGLdNPn82vQaZRWkawOXiTo5/5Mx14cScxsuQ8X7ifPv4z5o8NjHxJTn//YZWZTt32PuL2jht9mu2NXi14c0+ITtgvbmMHHsOCmeprTHf9FyZNqknPNmokrRqzHDomufYNjECtQ1HV+NRcpoRdaV8wgGf9Y83nEedZ+oTON2D1UYmW44B5dQzf/RyjFjcmbvfnCBbRjU5hyGGq+W2M3CbJkWML12CF+SGGQTpAlV66SLa0osk3RK1Bnt3O79HOqK5YP1hOK1/pmSZvQNlPES/9sI51SISCcjN9qJTVu3O+/exbPhQPgI3RV6DpbGWAojYaQC5eTWq4MoVtq/javgjXImRLNNwq/U5sngqi3lGeRTRrgLGCuVntJpOOEyhm6p78zEccN0I1CYU6A== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 25:5RIJH4VU01AedR2j1JUiqVS+3PBsbnBKTkzzlf3pzKx3uKMnNzDXBKIaLlpdx77lgoU5kkGK1d4p5kOFOEMc7YvMGfcGnGWMzHird4LrbjxVzDiTS8nMXI2QJKdQ4t9dfH3ZlxCR8QRzLt6xM3z02IGgixIt90hfCrC/KqR2+Rra3XnDgTgSuTIudx8WpcBt8yZ6nDzggd0RkxYNs/cvLZ242W4dZfdVwp6153OxKGnkoGaMjxsy7opDIC3HHKxqhML3z0LufLClhIV6eY+IsBhhLK/qnH7R3Mf1Q9XtWYdISG2yAb8nZ7L64YCXh03WbyVFfyvfDVuwszFprVtHPcClUlDIzjKJG/W4PKc2qWfmiKTR/sJr9IGh+1RZsaKXDgrrfe2/n+2hYgf7tiNSlDRegSxcEyap69zCY+kwSufLzqxn+HshUcfLYq1q6FCvV178pZ3xO1L8GGd1dOxqVNdm1B2hl1co8dAFyc31qkw=; 31:yOSMtEhnHTAbjbyykKPk21A4WrzxFLVRr7zjFBClMZd9JD9lfh8JTZTRD7El97/RT2jLRHkNsbirdzGGMmdeKmux6qyxqZj1Szy6TYWP9/O84OKRzFBjwxY7HGvSaZYXNASUO2SUzzO+42M2A2jo0NxpbNChRlEejYQySQFoIIrpgAEK18zqXAdpqp5Lq1cvfinOId1OrtQy0Vc2fz4FqcWd1Nm6XW9h+PBF3GZo4VRymTbyXmvDYYrFST6F7MDFu3dK0vpsgwnWh7EAi1qOkg== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 20:Oer2EqxAmlPB+swtT2JjOKabvEv1J5Dq/xV9z/5hR7bfMF6KpYzm0s6dAzHvdE21n4hU+WCEYzp3QAYqgEHmQ3GkQaMl87z70fS5PggdPWp2xwlNZyB3tOWBjR0Ht/eK4UBhMz8iBFcI3o/DBrNfbGw24XOKxi219rpuwWZAmduVFqSp1KhNgbXIlmPBuwsBZtT8UxhVyZD1HSBkxcJ157QYxWdBYaGjYO/3MRiNqI/kCHjCOUnN8vD13QQ6tefJBboNn+YHgdBTWp4FceO1de+nNkJW09hK0n7dH8JHKe4mJY3HoxAyDa9HQUaDsDthceSlO9C4gtNASowtph3SBQe5jr0MRegQhtztiAL8gQLI69lDymzjB/wECh8GL4rZfC6L8C3BL/uOR2qJkwN0hSNYd0CWH0ogebRWaqvLe+ZxcTynGcExdbPcUe1y1rgJNqO7w4DINkxGIcjkg630+DYf1ftZD2cHDJ56/QfAswDoXUprKEucyoe2qbjCa4UGYq8J6cpKfIxCgmpjg2qgoZRYFaVAiVbREwJPawlalrfHzWGkzeV4efFFcFlJDAk2HcjoTE8z5Y4WgDvNAhnDboVBa2MMBKJRDHCjpJubCD0= 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)(13021025)(13013025)(13023025)(3002001)(10201501046)(93006095)(93003095)(6055026)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(20161123558099)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(6072148); SRVR:DB6PR0701MB2117; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0701MB2117; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 4:GtaXKcIebidjRYO0bo1a4GcuWIa1Bbv6FH20gtZLKOCUnA6HmML2lytUSYg8VA6fTDYv8p0ID7WkmFyhUUK6qTnngGXNaEVjN1hL4rjBXjCGXzovsFWXiZLVp1m8TAI33Dxgas+8DNRPA/OPRLnfWrqLd79MGofH/AJldAUZgFFHfCgJBy2PqesN7paVQWrYqyvD1I4F7z/zOgIl/wQ3xIcUct1gKVCx4l2XnCnaXIIad4ToTBfhzRn6H3wI4cukWQ7Yo8vYTmpNvcbn5gX8p5A5i1KWTN53PY0dKduDp8hEnHvyrRjpl236RS+5YJqa98UobMXjVyPfirMhojA/RZkd8Id7rXSdSi1uwykK9cwLuNh1ds9z65dD3Q2b5gF6d0F78LJloO6tR84NPOxbADM+o6Ws/k5dCAd0q7ARTw5H3m9+CcDJx9FyJYmB+mYZE3S8+G22SYthXTX5vdkc3KJwD8KapkTNFV7eihudjVu2E8cd096GGd2tcLdSGKMHctkTpd1YEOGb4Sv8xh7b5qaQg+5CUVVz9RUd615A5vftskrWTYSejpfhgj5av84hDdcKrQyes8JCKfYGS/LYUcomAp2xVd7WXLXaZLxJVZXoO3BntwjEOjKAxbkAmQVvq5ubeoEV3Yp2Auu89MipsY/R6VAKd1R+6VhFkEi4HdRj4WIherCmKzYFnRNxF55EtdYQbKbksiGJFOELkxXLXQAR7CcpQNWm+QoC69qSXovow7Om/Ch7kRORkIuTV0V5agH2db3n95cPr3NV1h2g5LYb9IuIFxo+HnOOyzFquECiggXKmAux8PCD6fYU37mJieg6O+lsx9G4529+Y9mXBPeo3mMsOTomO4gbgCcmTII= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0701MB2117; 23:6mpfYi2K0dL+gyCUwg/yquhrzMthVFoII7150XA?= +8W1qSZCp3UFXSdpBHQiWAXGEBAIkp/QwRHhBMeKALc3xf5hM/CaCAD5w09A36UIwu/GfCcv1CkPJs6LPmaX21lkKc9cBZCChSZmXQv7TYkg1+vCZHANx+Xmc0u5gNpCJ8qylrbjaMWjwJ4nbfxNt3iNtk1mX4/aYVZDMRQZtrqJzmH8tH1Y5UkkU0cxY7Jz+8/XyOgXat2knv/RvYTk1DmcPCXRoNDrEM1KI3Lx4Db7UrrqJEIQHrKE4zghbRxQxUnFqFfV5CmqBLoClgVfK2Uv9FO3TrMQ2ShjPhzp+CBY4T35bYLtrQoyIInEJgPOxcrVmMNE7ekcz4MSbXGQ+RzNp5RZowzI3wjIH0TIchfDmWKsX1ldFcVDgaDG+IB82047WRLdZzYaeegTQoVP5TaRYD1JRevEtSHtyHf2yPw2hbpg8/Evbh2MSkunuxjKokkddY24yx61LWDy0lkZrY6SuSr8P41H+EOY1Xpk3RFMbU07K6avIPqUwpZ7GQzD55rJm4ehwb6DWxDABwG/rFI20ZvUlsMEhNbkYciiliIS4JKa/Lg76AU1+XmA1IaP6Pc5FUrRmbboyWjg9BFT54QGTD4F4aFyMEsjZjGUMWh173dM8jtqOnt8bLdVMB9FBzOr6Fsore/ob5wfyFzQ08r0+EDct114jmqbFSy1rkKwDegzL77c/MpLpO4hTfMek1mPA+fgN0Ca4usHk4TiQlkHgcNARRTAMRcI7e7jgTCFyPrPad90IUudO8lLFr4AulntJ5MMxDtVMYTXeVUyar07l5y60eJ9BLSvPP+5a5JU7zdxhzrexEN+DM5exvOUVoaq7t9+YgfJdGyI6OJK2RItNoxReYk269lFXSYWdie7X3E3qDkpwwWqfYpWowjA3aC9cFcAW3+EPpXFoJbbLMQdsnwn3uwIWcZ77W5GCYYnM/EvExVj+dClPweyauptHjt3+LM4ikuMen+xyKCNYtSZBv7maAzudzv+FPWRgLTl2V16Fb+y6UVTEUZvzJMQe+U2wfwI96RMv++rh28hicoe6 X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 6:7TM5csNMcQiu37Nt52SPjZuPtvzU2u0f+rA6oYa1RhUaTBCVXwCgqBaK+P8UK3zqHcM3cOrpJSpvp41Hzfv+K6IfVd4tuQRxcSxCu/dKt9qsg/ZrEBHvpdFHC1UOcYYoNA1UBc69RHEeIeojrwgpTCvAgo4+gckeKuY1ND0nMGAvz2S80P04ryisI3c6SOTam3uwDR0gqasWIeGaY1xxJhZxbfbmjLsnHjrOBS4Zgr7ZCCFj5T6A6MgC8WXFYZGIlEfL26MdvfNw4FHOXHxWPBjPxMIxaSmSQ1QgFqmSDPe3qlNgWo4sGlzyyVctWhzVpnTwQFFcYAm29KRzBZgtlcAk2jt1La7B5ZfNaSFgZcY7lNsyILvDE9rP//IPwThuS0NF+86e+e+47R2CuFagwRmAiDi9S1D0dlS1I4+lBvAxWFYI3EEiedtlh0P6sjzjOh5YXT8bg1xmIYhfNtTqlGoFQFsWenhFpAhbedammDQGO706aR3jkMOA2Rn5THtl4rZcvTnXODvIBR+150rK7KcnL16tcaIXHzoPNzedVRPshdQv48YF0e1m56wgvX2UWF6+nLbQ39Qrn1HHLidTgg==; 5:esZTwMIz3C50AjwCZqcme0aHxa8BZVf2CvAeplqcBgykh1qKM8ZHQNwf1ux3o3gf/2CJ8Bs8vjdhVocPGxJtlE7pZhdtOidYXixzFH7Id8U6I35rVzrPF2G3T7gjRDy4w6HKkpL7LKY3urvwCEGacw==; 24:8mICxPSBnfDNgcmzkw8IjGWPaYTGuIc3HIfZu3xavsrfWnvvy3moBGA8lx499wio5ZkwQaZSYtRxcPn4VDlYxhvR/Ex02zWoSAD9RzSH7lY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 7:gQScMGEqdZ+9z0umzto621ptygcEeQUrEC2K8lPCLMkw4nEXO1vnVxIDxW5fHT6T0tmkzG5bio68OqJQCLyiydNybt4zP4kutArToaj1YXw0siHczyAqGTXVO2N/uqp9M76xQnTRFoSy8Gnwr2YJrNDQzxfa5PkMfYiyiIo8jsYqaWtO0QZb4p5JBWNqpIHb7VfcoLYHy6HbHX2snWrV6dO8LZxnofs1uEtu88jlYobX/O4R8qHZJInh9X6L+du2jHZLa9FGM7J5nKRP9XdzB3qMpLB49IfhIv0Gd/gG36zJevk8UMdKNwcAl2hYZqLgHWWcEh9hdtWcwv+0CQmXwg== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:49:59.9698 (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: DB6PR0701MB2117 Subject: [lng-odp] [API-NEXT PATCH v2 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 Mon Apr 24 10:49:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98032 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1421417qgf; Mon, 24 Apr 2017 03:51:53 -0700 (PDT) X-Received: by 10.55.25.72 with SMTP id k69mr18547635qkh.276.1493031113737; Mon, 24 Apr 2017 03:51:53 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id p26si17694355qtf.194.2017.04.24.03.51.53; Mon, 24 Apr 2017 03:51:53 -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 5376F60763; Mon, 24 Apr 2017 10:51:53 +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 880D1608E6; Mon, 24 Apr 2017 10:51:09 +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 2E485606E1; Mon, 24 Apr 2017 10:50:37 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40108.outbound.protection.outlook.com [40.107.4.108]) by lists.linaro.org (Postfix) with ESMTPS id E204160962 for ; Mon, 24 Apr 2017 10:50:04 +0000 (UTC) Received: from DB6PR07CA0061.eurprd07.prod.outlook.com (10.175.237.151) by HE1PR07MB0905.eurprd07.prod.outlook.com (10.162.26.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.6; Mon, 24 Apr 2017 10:50:03 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::203) by DB6PR07CA0061.outlook.office365.com (2603:10a6:6:2a::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; Mon, 24 Apr 2017 10:50:02 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:02 +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 v3OAnH0U005814 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYT005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:14 +0300 Message-ID: <20170424104917.24102-6-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39840400002)(39850400002)(39450400003)(39410400002)(39400400002)(2980300002)(199003)(189002)(9170700003)(22756006)(50986999)(76176999)(77096006)(33646002)(189998001)(5003940100001)(47776003)(50226002)(8936002)(1076002)(305945005)(81166006)(50466002)(356003)(5660300001)(2906002)(48376002)(2950100002)(86362001)(8676002)(36756003)(53936002)(6916009)(110136004)(6666003)(38730400002)(2351001)(105596002)(106466001)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR07MB0905; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:cRz3F2Z2SeTTOFRStHDfAg5SZQDUvbtAt6gxpv73JP5CCostXIlaHwjbRT3PX2iCS7WnKdDnz0OxOBkQvwhC1Uu2cgarZ5l0D8ALIqsnfWa7pdFtLX4LhrCY/6vQlSL3YDUt+lkQ9W5BG5g4zvZuPWL6NB9M1RnsvmHOnvFN9On8s+YIGsjzJooS9bpsTY1RhO7mEbmNLeSEM0XvrsV5SY9pbodV/+U+iqeKDZgunnqSpTe2xn/iFT6FmJlvhsFAbLEMF4SND+RCSzTMdZzMwdTjmgWQn5i+NTcEt5gCJP93tXBZIQREoerOm4UmDr+h6hwkWAFTMgvX5AFBK5xaYd7snB2S+/mX8Z3NyxDWqja+as0hyvYA9yhHa1GA0vG1yBAR4WO+EQqEmy9crQTCfiYyQzK6YS5+zAhx2YFsci/uy8wD+M4U2hrNftg5oMWaox+j+YHIL269pwjWY87lylzE/N3jDb0+TBAoO4BS2NOZFz9lv9SOPZi6zMUwaCH2FtwgzU3K6SKJb9SnY09X8Q== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 22a718f0-08f4-4d37-bc39-08d48affa91b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:HE1PR07MB0905; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0905; 3:7aS0Z5G2FsYjxX/snzLP/03cj27IAC2qrZ+bvDsHt+GIW1WvLnUWVSc4tIqeb3MmZQiRXps5AUTPzh49lZa1OqmxUqsJqyIFjVb387qWFtJ4jl+qFuAzSErh2vE0bohIm/ZigeIISVoqid5nQN6RYhBgojy5ppQl7Tj7hg+qr6THYtzp8VG0VZZamUWdHJIXDAq+LgXR8/qj3yoZg/pCY7YSHc/rmrcV8xoLZn5amySAivezHUwMnrI+GuQJ0rK3wFQh0MhyUmi3vzeyhhIgFB4lHjn46QDX9Zdy5SFdGI/aGjSmeI8OBoY1SEyePZ6lR1GzPGN7aGM/CL0Q+WS5wOyKgVQNgjQjXus0YbsVBHp+CiLfUl0ED0lyzh4zd3yPVZCWbsdIZTktyOuUfL97/xeH0qqn1Vwl+SVSqbIHSjOl67p/hfcHIzo1dMQUm7+DjdAIkRL+G3kmeAmTJuenGw== X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0905; 25:ebPjC9Ol1dj7WBOjytR8pbcbyJ03lhY3EfHfBXSmtUSXWk+k7dTbtM3uVcYjGsn9WNbVWdv/h6Ry0wsHFZ+YsT9lOoINBkGIPUVK3oF5A0fdHWy5iu7GpQaDqeJ2fIjJIQ9+UOXF0jll2WP5I+Rfm7kLwmLv+WL8FaC0pzLjLEaOCGKYgO07RsQpiHm8/ABmrBqTPVRt+/wlE7cMMDldqfAC0VcMWCaqFpjRWt/rhCFzjgYtGjzSbTKDr5M19d0X0xB2Pb+Dt8dklGIZSOM0txCbEr96g75La8+EOfGOJgm4ATkxWBtI2K83mHe8jfxM5uNKjOCqpNgLLbVbY1FFCtITwwglA7sZue1ZUKAw436NIvjiro+RqysIO+bWupnafu4pe9C1LBXig94hgFpwe0plj5Fazl1dJ2MSAee+lrq0gSWIXO+9ywxdd1zB1K69gFj9r/lwB2ibzkUHzIyd2A7h55OlYQI1hVGqg2TS+SM=; 31:zl9svDMFXH3rQBVNSuSKaFW8v/JzUNATNP+Egl04cBkpSGeHvnz9vscqij9eEwnhidepri5wn74Q7NhzRqoY+XqFlXTJoEtDRjHxMFqWlYD5XWQwqvwXwtPmgRejP6d9F2MPSB+4QjgcvnjSnsZDASMNY5wcNA6ZUYE0bISZe26g2q0mBbiWglRZBX73sBqqMdoKVAArSXrofzW471nT03WFRG5lCLjx2NdvW1CBV0tGYy4XtcEl95I/OFWoDZO3DPcwUbtsW8rW3rOGZnp8j2YdRal6i8E2v2qAxYiM1eY= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0905; 20:Ti+oiwLVDDKHiU5iy9mj3UkpnJqObU5RMa+CyyWJIjW43ilA5Jh/L4Q0ORLTwg1MatwJcyIKarB0B922/OVLhLGidTIRU0wK+Y+FV15pM8SAhpEsZQjsfsAmY/umZhQP2Eo7LT70hPydxnMkTC082o43KI5p87BUJgrIRo3ZjaAoAZS8xIBRii4UtjSsh9RgEED2U9KIEEaMwfsLF6JPJ8hTdUWBzFLA7ZvHi9cbWqs43eWqVxWTNsSBEWwQiuIBP2ukFchWwZmZLxyZqFdW217e1O2H/M4NmQnyLn7JG1/lSnICo9kQRCN0GKUz3AZWf4O4KZx7yqGU/ezEGwqbc6HasFxOwRMgpVCIzX3YsqDdxqne96SI6WKtZbnym81jGBsL/tQEGYZ69Bw3nAHmNIAzE9XhzDjgq5dtyjH/6l5otpLIzfVZv1wqKTBFe26wwRAfzveOCELPLlXrANoLwfRKCFb0lTD9M2p7D3NcjOD8lP519l+qnzaYKSrrL75jWIdeV8fo02sD007se72pSceHpcGT0fDgzniVpu3HSvf8mQhN+b0iG+5roIWfTu5B2gfTlmTCCH6/51uJHM3Cqbl7QUPL1vwva3ajUFsCLE0= 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)(5005006)(8121501046)(13023025)(13021025)(10201501046)(3002001)(93006095)(93003095)(6055026)(6041248)(20161123564025)(20161123555025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:HE1PR07MB0905; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB0905; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0905; 4:mkKEtYrjIvQL/XEaqJax88JhMYicirQiSdmCp7QJP2Z8dEX4rerD5INsV9MKR5r9zdegefqoYu0mkEpLns0vcooFrPb1Yj6VxMuIzsVATwojlmRVoqhOpgs+71tVsw2WWwzyi/7+LSeASQ4vqXTQYBw+wWajnNqsOtIR0MXcwLQVpcW1U3iXX/egUams/yDuQJfSC14Ixs9ev9GSKDTzIBRjqsS8qskEZyM9XjWTxQ0kgTS/UpAA6cP5YyocptQ1wdq3KFxT+QZTb2xhiQWHrmBtFeR28GpQjSG1rcQeit5dlJD/Z5x0P/o5uvpF4tzZhO1x8YazBVOkKkm2Kza1jRfKPvWUTkKVBd62rxTbdyV7E/6dupcsJzC4LO9xL+4zkiTouL0GXOhc9//WvsbxpE30rkNUA9jnjWksddbaeMutWuK4AKR3XpWpOs3XlDXGYq/hxhdqnS7yyV+s6gjpSPPtj3wdS3gVHiNbs+2VXgAoXIEIup8X4P/7cQWL36y9qZc+vXX5ha/5oOv7ELnitkdJExwuoz3KMmQVthkZPmuKi769P/HB6u41GG01pqwxon1gemjUePlyUXzmWnePN7DIiYnEfN2Ta7DtuFEHwSRpng5DZAzUvpN9GxAAamT31+0kwp0VRJSqAjAplG6R/3sjr/MtxbYpzq23jnLmVrlgGd1nUQDkMod2zocUWWZaK2e4E8h5dSMvSzBNPUgHtWqkZtB52ECMAou4TX9pPcy84WIVXoubvxuL/2NmOKEXXua95yYLgUJXmXyGg5me6qDt6W1XTxNd5GcidyLVuy4= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB0905; 23:FuJNw/PvZ16EbDW3hxkqY1C52o7l+EXqiV5xI+0NP?= qU9p8al3quUNhzhTog2mE62nFqQK0jb/X/iAkUkAEqLBeLuyjlzscD1yhHnGeYI/FQgEPHyCVrfIFyV6witQ4hDMddbYmx14bo8bE7NUUcsY/DxffKO5QlsPIQeP8WHtNmlVzvrbld7iMercudRe3KjjKIknxTlYtpjP/HPkTLg93Mh7ma+piFVO2aROwlqEz+yHsrGofGdEDOhgyrJj07lkBfpPQvg/CABi7b1vpG/EhKAtw8OoOFUZQXhmXLNzPa+HbHjsYEs17zhtA95uKjB9XjeKjz5Dpt+eyqD0HCYWsf/biIeowULRvd9FzAqHoKNhTuNTtGMuFH8J7pNMeqEATBhHstTD8jhhBDiBTqjeSqhnCB7RqxWQuOuoVQit1dkpY3SuGLTBDJ9nunSvzUaW5iOc2fiowl4HjM6o2pYz7oaNfmdZI6fszvH5ek+RRxAWg8UuxSbb0nNZjAxMCVPScynv/dNW5xYh/GvSIRNbMFcogSaqduB4Dtndi+JNnTpQ4iDOs2EhS0OhrN3d/WK+SfCEeNKWXI4Xp4L3aqu1Gt4L2/LdPOKWXaymTsxTXMUMBslxBzMUi3Mq5+ea4YVZIF0qPZzQKEpgs8EJuVJeugJJylFcG34R0x42NVTT4WI5Zc42YEVyUGQN0/FGJzm5r/zebomDsW+s6dbmcI0xYdKzBs4ZBGluT48MvZqaLjmRssl8XdnPxqM3HL2t5hiqOX7P4nHNxWx5QN8SomrUs4oaLBrtyO44Whea3mra1zdm0TdfoGtL5RHB9baG08eAeP9ZxlejjtwJKNzxlUeJLgh51pV8R6pq3Y+iqQvgTcaB+fijyHc5mVSeuxHPqWEQgGI5/jPCaQffHgS7gN+YlEWaEYJhrTj3lIDJTv1L+a2jvaqn/hHHlPPW6UUWBFcoi4L7AYxhV4r8JzpxSqpXYFhmCh1x3wvlWudo4LBvKkVoQBLQPXQw/GJbhEzirwxHsYO3ZRAtAC3SejVJHzhjOcInsVENaTIpfxvn2ybK6MPjQ+5Z9dzWAkkBgqC//0c X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0905; 6:ySIT95o0xiZAMIt0XcoXggmcA+QN82XTK2r5lfDg44aFyVmPjJseLf0EZ4NfsJRqxtx3NOOykywkLGdp0e5iV9E6pu+TWH6VXRbp2WvWQhzvwCrJFPRI7nFDhHKJDIPgGoKZ6KYKzhtVmyAIbZvR2WMKS2JgTznNooPJZLbNTT4yWkAWhZ90cCd/fGjX5fnPy00T45NVHjy54aHiNmqIHXl4V4lik1AxoGP63RFqOh+7Gao2GHNZMRQ/Yj0Qxw/6vkthmjanSYl8RQORKOwoYBG4C4VS9SRrOm/ipPrWB4B9Pn/Ev1EcdPbzfZYETwG8ry9yh++3IVLcf/cGrWpmPFmLOoPNEWAwKOd/6IJvEUAyKrFjiJh/R/nXvZE3odpMC/1X4aFd9ZG1KQ11vkcG5eaWGjYaEybHIjVHUAWUN6HpELErMN79RtAJjcoUPSzibJv9Ul915AezxpVypHJ+GpI/JClIn1ZoTs4pxsj8w9ebkRXr5p0sXWV7oYgLMQQr4VNHia4Dbh6rf3hD5wtDRijRqZQdWuwVVhG2qpmVx+g=; 5:XJiBi7TmO2kbmsRUV6mGhPSkPaR3OtbhFNWAF2lBD4QCqpKeFaVaM74W+bzKqAI6n4WtO0jfZJ8t8QpbWr+BaNU1HZdXeN36AIy1lDIGuIRnivGk65aCPNYCZLx72Ms1turYpH+wxep7Gu9tPw4X3g==; 24:P9p3E7uxJQkPt6oaTiIkxLc+Ue01FvCOMfbrnWmVH3U6RqNTEPzk8B6rn3mBbP6HffajNa45xLigCUDsfZDu5OHE7h9Jw7MByqjJdZf+SYE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB0905; 7:8dq0kXXZpzTgKOXb+Ig+2P9mVSWm/bHw45wHKOTzZaFNNpmKnlhx84wJyQZwt/21ZlWDyZVab4dG2J13mvtvLVWB1cE9b7QT4bnrUzt/DOXsGFpxKnqw3gaCmesBfDMaaaA+HPOvPzln9zELlypg6oPKTslpf5JocynXNBgSatuqfP29Wsi55ruJY5fLLWdaDd70TGCjCFJTQyURvKraHLH0WS7zY/SUgzoWhfZFmz152OFV41Y2CQMxsdL+LHmJ6oh31tGc5AByJBHmyMNabFMkk90LDmq82KBG6ETHTd0KI2yFsI9auMbFiiK7f73/vk3gBg2yMBYnCfKQyH2IfA== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:02.2824 (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: HE1PR07MB0905 Subject: [lng-odp] [API-NEXT PATCH v2 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 Mon Apr 24 10:49:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98033 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1421561qgf; Mon, 24 Apr 2017 03:52:22 -0700 (PDT) X-Received: by 10.55.102.196 with SMTP id a187mr27669651qkc.28.1493031142852; Mon, 24 Apr 2017 03:52:22 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id u38si17672386qte.324.2017.04.24.03.52.22; Mon, 24 Apr 2017 03:52:22 -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 8C4C6608C8; Mon, 24 Apr 2017 10:52:22 +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 EDF2E609DC; Mon, 24 Apr 2017 10:51:09 +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 783E66069C; Mon, 24 Apr 2017 10:50:42 +0000 (UTC) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10093.outbound.protection.outlook.com [40.107.1.93]) by lists.linaro.org (Postfix) with ESMTPS id 9797F608C8 for ; Mon, 24 Apr 2017 10:50:05 +0000 (UTC) Received: from DB6PR07CA0061.eurprd07.prod.outlook.com (10.175.237.151) by AM5PR0701MB3012.eurprd07.prod.outlook.com (10.168.156.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Mon, 24 Apr 2017 10:50:03 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::203) by DB6PR07CA0061.outlook.office365.com (2603:10a6:6:2a::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; Mon, 24 Apr 2017 10:50:03 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:03 +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 v3OAnHmU005818 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYU005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:15 +0300 Message-ID: <20170424104917.24102-7-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39850400002)(39840400002)(39450400003)(39410400002)(39860400002)(39400400002)(2980300002)(189002)(199003)(9170700003)(77096006)(8676002)(189998001)(8936002)(47776003)(22756006)(1076002)(81166006)(50226002)(33646002)(356003)(86362001)(2351001)(6916009)(2950100002)(110136004)(38730400002)(106466001)(5660300001)(50986999)(2906002)(76176999)(305945005)(105596002)(36756003)(53936002)(5003940100001)(48376002)(50466002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM5PR0701MB3012; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:7XPBPu6CMlW4vard+ia5sdMbHzyqy19FVUt6oADtTSMfQk/QtK3Q9h5MVzCKq2k3W2Ptj31+pPefZ4KRf1JLJ7Um1kdyiMLmRVvAt31FulEuowK+wew826QoNROCGlEkhQWPSb072JNhbWkIOJCKENQkV7PcEjF/Kb2Hb+kiN8muOTytIb6l8EnoKIvgs7PF9Biih1i/DCcM90pub8wLXDK1NHjbQfbZvoeqN2+UvyrMhSjICm4yXOekRtOhKCE/k1g+B4ny6RV8jluVr/Xnd8tl4XE8HLAcdpqaHAMYbTj9cmmGLdtW3GNXrLIhRR9gdtUGByg19FXkpWANtaTcThFPQvSIcPbjhSmwzhcWwXSM7hAidA8cv7U6TNkLZcVnfJFRQFUyu5EbFrzv15hVjupWoCkBIgr0bJkGbm0uMTwOM7pnp/W+cs9ewWxBpzI7g7clesow4U466FTzb1GxRVxyG9ST1k3JwuWmwtDOXruyXCdC8GZj72iR9hJs8o38ypS5y0FoBSEeNM8etEuFIw== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 00585e26-ddb6-46b6-a23c-08d48affa9c2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:AM5PR0701MB3012; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB3012; 3:C9CqeLwWmQTV9zQ3rmWaF6evhrqh/xywZ8N4vgdVXUQTqrhMLyTLqJOEl0VlHSb/dBlCiR+ReYvxjSEJEGmttV2xR9hhByxcPQdKK81fr5IgqqfvrjGE1HOOw3qknu8VYMukAwL9M4HEBGI0UGpcAE4hpnRtvjLAQvrRtItQZ5z3r0c/q0/uafa4xet0sjKwaQz8Aio9RzgILqQG5Yn/+rVaLe4tquJNriH74CjETzogJdxaFBR9IdPij5v2NZF6H51mZE9Q4oqCwBcL4I2hxDt+TpyQB5fBhqDZdoNX0/sENNMMVULgMXwzoGJle6gXSXHz9R6vs36vuf2j8i4wbLrCPD96FIDnMJkRO2fninOJZpaQpeP3frT7WRMja+IZJfX/WrrnR2jILg+x3Wu+VtJsGqHBkTaSp53vu4THbK/L7l7J7WVaU1VnliDVT8inTIz/n6gfNxDBevV6EPEdgQ== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB3012; 25:4ceo/1tOOC7cXuQ5tlqrd6cJllC3HxyLqBbv011Dvnty4F9HkUBXkZA0zkTln/YXfDqqe2mf5SC5tDj7+m8jM6o7QYF2nBcxutuR36IEiCBSNfqkZ2LO3BFvMTG61WKnaFuDO5P/2U+aiVcJa8CMJBmJEsmhipcjohG3htdC7RJMZLheiEntZZtwRs8aSX9qH3we9UodwtyoDdisnhzYsXkCC16VXbcxxX3qO2gBdMIlTL+J6BXg5pPj5k8wAG5rOpQz3KsxTs1jB0nIDR29U3l70uLeBae5TrtWntde/iuvQypkoduBSZFJ+VK1a2vXaZXGdVgFsuZG5MYk9edFMruNjgJLwovlFg9Ww1sbCRhk6qqOa/U7cjHSxsOP+H41B5mAyvg9S72mYCNdgLbwba697Z9SiurvEWA77KxvfNkdITZoTc9p9/a2J8Dmu667WK+p9NO6BcUxlXoDVzvN+7apK0n80bVZgzd4vRyMKMI=; 31:k51CvP1EbU0cpl4NFMlXjhQDdeqKqlSv/Q1VYxLEtdwSuukokf4+TOm7kICwGDQgaOG3VIIq7JWHJL0DXYBKkD06woaFpjF2ItKaQuG6dNb8fheAed/25nNSHc8YY64mrkAiaZbm1bg9G9WPeWIHnd4LwpV+YGG6nDTu83FiUWao6kPqx0BtcYAyW0DFDv70TcgbvQPjhcPMnmPNNJcH3rZkfbXgHvRnuE8EneDrZuXMyPIdbgzgn+dE1sq5mboeiktAEH+xeoy8foA6jin1Bw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB3012; 20:cTFzITzSY7Rp6DqUFLghnKl1Tl7nI22VbATtyliamLAjw7ZnUJ2JUKCA0iseiMvrMn/lr69XXHLr3lObqdNVf1eoG1deDVlLMKnYzgR5GA5pb8XNc0EmxYoQwCygZQldusAbacp8p+E79lfl+zOed/IK2J0wvUo4qOAA9EXcbvfZFKURPYkFmgUQ0l7inhOe3okGvT8M/bJVOoAktM3NKcJE50Q+LAlVHDN0IYiVTHZvU+4+gNhRRB5xx/uX7x4yVNNePOFNwUoYt9lLCEWAIGrlPMTrmzqwuoaCha80TJeaappZppg4Oft/kFDqTfiLeUNEcwdl5Dl2/tZ+hDXhaaUX/ASim7rUwh79z8XMWOzWlHaxan39qWECDZQ2wg99ZPlFRlImEUE8FHw/NlON50cnC8ThI8+dyayzjCjgjdCsPZ1/IkeNUb+SMgu7yX8HG8S0QYbS3q4WwFx8keLqrMVT6zMsu3jJ+FAZFJ4ridOiagAjIkqau/BxHjS7yt1K6Az3WCurveP9GD2vYYVV+M1TuVyzU6/mLjI+uhCpUtu2IhdgKOWzQBrvYKR9Wy6ZkZMRWtVxK+/CVXC+MMew8oQCdI7AVepAXE5eWATrVx8= 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)(13021025)(13013025)(5005006)(13023025)(10201501046)(3002001)(93006095)(93003095)(6055026)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123558099)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(20161123564025)(6072148); SRVR:AM5PR0701MB3012; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0701MB3012; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB3012; 4:zJ5ZCVtAPDtnF0cYBtfIbfKMHJPr0+Xy71N6AfjOpR/Xi6QHmWeVZRzL7hX0+Ydx71mpNqvE5ekQjiMkcYHJMuOYLzayAATPilS6AYlelOGKAZx7aqQxYyLU5rFsPNoh6DZze4lUPxlMgSRXUuUVWhZYR3FuvkB7lbWFTBEE4B07Ezy32t7DHIG+nrHcxtv1VV/90gEoiT4bQzlnNBizYwdV5UvAhKA1zKsZ0yf8kFgs6WvjxIou0pCs+LAMi2uJB6FYsYq8bWgU3oOV4caUyf5KUZWkkdWEq72QJzOPi76IY7ifCPRgkdnub0DvbIxCFNwmDiQ2/CFWpWlKGLpg72TMt/V7EX7H/vZKTEzlCFInvxUkF9o8+QoC20yj5ZnHYqWn300qRSMz4ZIymSS9VLN30BqUA9V/1hiJAakNmpdIYVZuOzF2NoNHYZm3ppi37eG5tTROh2XQD2rSrIxnqe4yk3JOtvqYjx8wiF1k2wL6b2rifTuJO6f+GiDvgTVPM54eMQ1PJdqoG2nPcfqxOAD+4m4HQD4x3hDq+ICxE2YLeboFz9yFbjNg4sGariQMWkT3o7Qmfe0ZBi8tDzXHlYTqwSF9P5SFgFwEK34dehT1omzX0XiD/vMszcY+odDSNzph3v6Sjlic4yt9tXtzkduKcOy9aOLDLANwDGEsoU5sJPXjWZsYyKujl+fmDhmRkQ9F9YLbWR8VY3HDLSNKBK04mnHwGRzXPVRXna5DSbgVkw/eJh9tBTuIwMP4Fjm/J1SgpMnqLQDTGZg8SJFGIhG/zAFBIV+7cyxd8afv8ia16RAuxfrRKbm5cMa0ngO/Rt+KD/oE7xNbedXFs+7+pOBrk4BBmFl8TMuOQogW3DY= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0701MB3012; 23:QQoBY8iPfnbn17SrA6ET5ZXzhm7c0U8hKXU9cYs?= dzIWrjsUost6PlDNq74+Nwv0hTQ3HAn3cd8IPtk5m1kETkZZw+g9lonC+/gWkyQRIAR2Imocqb5R5KVp2uG2jDfmJ8YPknnFJp59OC/lEbOgWrWk76kdwJYXVaum6SgYmsx7vEPU8DqgGvUQNHHKyB8PJDiDLi2j8VYK2MdjOu9wqVjPS0kQRtUUkeTcBk79COp8lq8rEpQPejMp+ENEkFns2CdUd1JhPjKOJ8CtsbPKJlPJytQyhiDkYpmXT+yEUtAAD7osE68BsQo2JvNOiLE4yIGxt1sl06OHZiUnaNrGV/2hn/wgN0doRuVbCnX8tz6WomoVCj6Ur3Xe1VVnKVIlP62uHJO4tBrCWpTbYyoZ9DZrXGS96N0c+Zg/cFJoYSYHIP7uXbMngCWXddEQGyStRcvVKdcrFb0+77rkdeFEcSpfSC5sb4lOebgNlFzXzkxNzOjI9aRRXXUQN8UAWdfN6wtICJ2bqwS+uHrBGk7o0XEOQRTq31UN88SehdUNSDd2jy1Eahe//RTczjMKxJcNzGqrQDsx2R3zyKbECc1NiHqbuMd2/WDfCrBaLbjOUZl0m4JAGMdbfQXkVZ0PtfDOJ0FMy3pzc+JtweyXtYWeOw+Wv08WuNbPcHe69jZkloQFXpyJaS9LD6FRo6v2Dtcv8ic4k43GQ46Ncn1ln08tde19gBatF784bH4Eqpbb9fdNTpP8pJUusjZ50UEU/zdi0zDVMHU2e2L2OZcMlO0NBr6hDfUtFak2d+b0GYqGr5qVeqDs223GgUTOxiEsJnZ3fwC1j4oNKAJ5bgx+/E6ACmC9Xb/vHF3PmnoiceAx8CcbMtyffcrWA29s+1xQBOvgRrTcHHiJ7NEfUtOFNkf6KcgAwLYHziLw3hSgi/MBeiO5fNt+ET0pu7qRB8pZV1svW28QL6kqY2ipsGJZ1F/0ES6euJPeFPrKbPwEzrDN+cKxkaYtncu8YMXqKeJEapcYuh1TBicF2Jp4srNqR+qchBotT4oh2XqP1QqPh8Docd6s= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB3012; 6:0lCFFRNumdSkcuQgzGVVeqilpmBp5Xaq9fdSXPe0QsKFhd+UqAilnGMORr6RV+eMez3t2+AMmkrpcZIIgYAdyR+rdCcHvb1c2q2VJ6ada4M1O1nljuWv4nbeWWg+E4nbWpnOY8rjTGYAl5TURy/jgnHNOZcCHrQqv+GmJX3yDyuCiSjOZYCeMqVe1tSvbGcAfZtnR0pLwDt7fNNvpKeJzJySSOrT+6WO2+GBgthhjPty/gkstPUtizz5YdzH4hrLPa/kX4RnkzU3gU07IMbY0VX72PAdnAD/IPG3Y/3+VMoRR0JsALwXrKpkLfZ5lNWIzcs0Mph+80ZgT98tLu2Ecytd1ZPeUuirmUxFU3KF1sycKMfcDN7Lku/uLp0UqQBq1UlZVBNgSm9yUmq7+mcxrVHUjGdPxwQzbQHG0SseuKeaxq59Izl5FoudE+GDZDMYrQx3vLglRYXbirnB0XDzKD3uQX0WE/HkXjZL0VZjgwFTC7fRc2gzNUNZzeug3iRVl3eietawDndHmghP4PS2ps5S+7N6ghFhIP4nHTm8JWw=; 5:n0AHHEC2PDlXoT56dxEoHdr6X6SOFdlKpz2s/WH93DTeNcggrNsjcw40QNR6pvfqHCOmxsWdQHFkx4eadHT+ruO6uXDgNEaTpDrx8zP7Dxkmr0EK/qxkfKB1UAbcwfX4vkKgL5hNkW77BbJZ/0SPng==; 24:yFbNyqo7ZtFFhViAyx6PQWIbtOxFrKqzas9d3gxkAb5sNAz9sGAr2tDsC4PNpCwlNxErpNb26FJRGGfcxpENHQDRdmAeXYRoY+Av7kbAVX0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0701MB3012; 7:Zb1PQhPbz08Kl8Uyif9+/qZC3RyiK0hLs5fnSZDiQPOENhC0UhRee3jKcL/qI7vhrJZBcFCt2UYxgwMAjLfnQ4zyErD8rH7aB0Zs6uCd5Syt4tdvR/w5YFKu0UxtvQFzBhIMzv94s2JTFlrc0N+4B/cx/E5Z9bQX5EUkXpBCM95I5Xg9qbhQAZRp367QIEFEqsukn+FQ5K4Rb0cUGaQ7v8bLpFxsn9meKxmWa2yXjW/1AJpdQ67R+RG/8QoTn/2hoAn4ovlt3eC69qelsO88zRBngqx1BXe45V46tm1nLLe9ULUd7EFDtzr1rWIaVt6DORt+HCLtz2HhaQPYwZlaYw== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:03.3918 (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: AM5PR0701MB3012 Subject: [lng-odp] [API-NEXT PATCH v2 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 Mon Apr 24 10:49:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98035 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1421980qgf; Mon, 24 Apr 2017 03:53:49 -0700 (PDT) X-Received: by 10.36.54.129 with SMTP id l123mr13029620itl.50.1493031229599; Mon, 24 Apr 2017 03:53:49 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id l186si10971912ite.74.2017.04.24.03.53.49; Mon, 24 Apr 2017 03:53:49 -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 331B060962; Mon, 24 Apr 2017 10:53:49 +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 C80DC608DF; Mon, 24 Apr 2017 10:51:13 +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 454A16069C; Mon, 24 Apr 2017 10:50:47 +0000 (UTC) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10105.outbound.protection.outlook.com [40.107.1.105]) by lists.linaro.org (Postfix) with ESMTPS id F004560C0D for ; Mon, 24 Apr 2017 10:50:07 +0000 (UTC) Received: from DB6PR07CA0069.eurprd07.prod.outlook.com (10.175.237.159) 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; Mon, 24 Apr 2017 10:50:05 +0000 Received: from AM5EUR03FT060.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::207) by DB6PR07CA0069.outlook.office365.com (2603:10a6:6:2a::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6 via Frontend Transport; Mon, 24 Apr 2017 10:50:05 +0000 Received-SPF: SoftFail (protection.outlook.com: domain of transitioning linaro.org discourages use of 131.228.2.240 as permitted sender) Received: from mailrelay.int.nokia.com (131.228.2.240) by AM5EUR03FT060.mail.protection.outlook.com (10.152.16.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:05 +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 v3OAnHvq005824 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYV005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:16 +0300 Message-ID: <20170424104917.24102-8-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39840400002)(39860400002)(39400400002)(39410400002)(2980300002)(199003)(189002)(9170700003)(356003)(189998001)(110136004)(38730400002)(8676002)(81166006)(8936002)(50226002)(50986999)(76176999)(305945005)(2906002)(22756006)(48376002)(5660300001)(2351001)(1076002)(33646002)(50466002)(105596002)(106466001)(5003940100001)(6916009)(2950100002)(77096006)(53936002)(575784001)(86362001)(47776003)(36756003)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB2121; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM5EUR03FT060; 1:1SlT8jKiUyrD0DZiGGpjxl1NM27keT7+R9FwWupWQjszEtPnRkq5BLsh017Fpr8rEBV6X0ecEjvFoLdrjsdE5jOBoOgEeh+P/jA4lZ9Sc0VA/zemN+ijeAjXvuCNIitdjKeXuEasOQ0O018rDRiTDihox8frVwUaAhbVCMwQWrXso7Pt06ExmD2Ltgpsr6qzhnFnhJvkPsS9vyugmwWsEJRV/whG0oiHuJT/g5ZQHwvnTja9qkIkCyJVZCPSsvQI3MlU7I8adSyT2af1/QM8gyZj8bHJdWkNoK1o+UIiKHoeCaCLmfgwNXRbkeHdUlwu+83ws9xVMuTb+AFNO0paK1PKI025vlBhurozbn6yUKksbRQVdDoRE9OYoXLagf65x5qGp/88klqWRLo3UisSYPCKqyZcskm+pTZZ0F1qLbcaWKPSA8unxJQ2TiSRLDyfsioxj4+x4t/xGWw3bM5WT7PdfLRr0DAeiZY0kfeabIg9lkbL6GQM7r/t2clFBWGXMYludXjU3a4rBMptXHVC+g== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 107f0544-ae54-432e-d1c2-08d48affaaf3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:HE1PR0701MB2121; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 3:RnZmpI0pWvQmEjtAgmnycOw4wDX3mGCXo08U/6SG01EOKqkleg8xMrCgxaK3QIRdzuFhjZXV7+5I/Xt7PX0b/2VZWB9vjbxTGqt8iejkE4y02D4ptJPdE/iYg39LWyWV8DIghkwAP/64ZiCN8Yxphv2NJe+w/8sZBBzqQ57AMk7TUnUqZ/6DquDxrde0CFuNV+xTcQvNC+u1p+e7s+JRgGxA7DTCgqyJ0xpolZCSR+lQm0S8FYPdh8nQEd/EBhq94+BcgUK2IISBz9y1J4N1XSRe4xxrD4gamEjqwQg9eQcK2kmX813ZABVxEbc2w/gjQhJC7qSuAQgYezB2Kx9cY1hk+k7IioG30QGeAFB+rrAiPcoOxPTrD6M8+gxd4fLq1ujK6awaCMcfUXxo/3M4MA8WLhrrKptTcS0inoAeUgDouRQz0CxW/2m4rD8u+OI3STyuOsZ9KkoHPndtzO0JVw== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 25:aou0iegUK6KN2UMZ34w1E1mAapPYPRh3in/ngmaAlwGlcWjN5AvtDnq8rC7QfPldkLalx2PTHKhUcYWcr+MuVwUOM9JiQCmNVFljrwMLlKVUcE9Y0UG6dzBZB14iHZNUEY5yydMMgf4z52R74MAgo84yDgkFXk/sNeNPJXhhKdnycCt2j7OHkaEXfpljj+3Z71Gyq94DNlH9Rvu8z4RDMuuasx1FAYUNAJdTRIKGnAyKXWVpAZi1JzHTybqWca6kVC50jaUVzxkB7oJEefJ1YXpvGpgcT9ccCPoP/z/xY2OeB8KK5HUbtzp6jyBqDpYDUI+o7gzXW1Uom2a6K6dH+AwWiDLCi5ySWaLDOliH4OE/rfPYcBtzZarbuDkv5n0zn2jICgQEmoAvLEyOvwccWlm+t09jjhtuO/Li1HdDXjX9RF9VmXDtZmJq+a/A9kTFywzH18sNaozgUjWj60s/6tcx2JrcAiMk3rmPlW0e+Ow=; 31:Q3badC4mlCBqwwbV3dukxLruHsMAKSxBGU8nNtcgDPpNKCxZR7hbPaYgE3TO5otydR9gERtGenaWTd4nN0iUZFuQrf1J1pxXcq2xPEqMaMcaUvOuFl66ROrxRnFrwGDuXZ9kFhmvW6TCKECEZVligFhHludPWO9ISG93rVtS+cU1O2hHP6zIpWLmBtC6eBZ9Rp4OMFFjZaPXkybw5V0ewHVY5FGH17iQFGt7RruBdgiGFfnFai23q0RoZtKR+LGJIcKxau6XXKmX+isZwMrjDw== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 20:rhfynULQWjbwHwrAMb9dKW31ApGu5+qCeVe9weEWB8wD6AVoWrX3X6XRQ04em8VowZm6udYI2s7oA7Cp0a3CsROhmdTcK931Pc5pfGO0ApfnM/yPzVJ6OvbtswroWdxMeOySHdEgDwUuJh2f/uMgIO9so5f8qqYV0yyVqzr6iGUYZcCUG1RK1pcx1gkatVgZRa4hRHNjiYoibqVI1FQeU/JFTZ8eKcVA4jJL+vp9ZS3ebnAdjK2D3NZswZ9eGHRFsg0MYu5oeFWeHZIL6GADw22sVsUwUu4v2eN19aYq3h5RhiBLAYs1LYf1mbWaYe33wPHShxR216b/OZOLO7ngy3ByKPx0H0hVpYuICsLBR2mNfBFvsOVkh6AqBOnDtKe2yCoB+rNe9fI952NinaZMHsZ6P24f1iQLib08YMRHU/RWJScQW9fFxBlZgbaspzTJxVrmy3MzrGzf5bIrkbH38Wu2DJx58lmxJYWG25YnJymFW4vaH7MI8JcAAFPLqoGXFbkAAC4fC42XQzitieERWgR+vRTLnnmm/X+28rlunNLw/hoI1EmpnT+7gHAhwd4jAo3yXUC5AqKfZQdNIgC4IRvyoMbI3PDssI/Jj4hntR0= 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)(13021025)(13013025)(5005006)(13023025)(3002001)(93006095)(93003095)(10201501046)(6055026)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123558099)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(6072148); SRVR:HE1PR0701MB2121; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB2121; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 4:kNX4T6FmRJafISeLp0ryPJ7J+OqsVgOcKR74N9h6EeGGHygEcdNWiIqlLMEKbcr5s2Cs2PDLYyOmyHnCYJpC8a2uu/cGD9ra/G7HQd11QKDR3X1mKvtOyPhou3f+EJiw0LbpCdRq6xDLVdU2ch1k8ImKcV55ylP4Jue1kTVB1J8kRRXyMj95Oopo17dVu/jbmf3Gy590hs7j4MBC+Ou7nyT2Vf+3j/ggx6PTTf1An9P9uWEGF//dwBO7vQRpFc0xzA3Z6rZbbrd6QMJpJcP7+jf32Eywc2oLvceF3kHTtJI45Cg4oL/ILNQR2LlsmqhtDNhmMK86eUmD4Am7XExdmWnlY0/uvBf5sl0gFvyoc58dZt20VhFD0d+QokH37tMuOa8OUvtcgKECHVICJ0ZMijTPIFnC7ltN3fhqL3uWbYe7WkgIht0nSJcdcHaIXcxBGEvyJahAatZu6GLtzVMDRUvzLy3NJlC/F7q9STs9uXRO1oCjaWrKD7e4gwdXlqc4wc/3RcK/nmnal/sq6FamZc1devetDpkZNklvNaM6304ku1tfLsmzZZAfkiv/crLVjm6LETffbLmw7vnFUowUjoyOqVQ6iot0lDoaS4s2PfXdxmKfrFFV7C5KCtl0bmIvcYpVax8q4eglj1chVXK7p9FK0DV6+aBNoMnnwI307DfeVJcenLyduc/of7oPndEZOiDmjp7km2JxTiUIuNHuS6hstmltGmVQ7MC68p34JYWsDgM0b0bugeTf03zDJptiRQ/Uy3AnV0PIS1YnzckaGsoU5QnBLj2ANOctjCfDACn2ngEoicUpfauhKStFZcUFwFnfO/ZmZeLUBIRJU6tJAAHf6abBGahkTUu/QFhC39k= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0701MB2121; 23:LK47Sk9sAx4bUaTNTasiXG/EQG1udPIW4GXZKVR?= K1BpZL2M08tSYCOwmfj9Uh+mbbngQawWTZDd9DKx2TplhYk0ykQpL+JKX4GMA+NhHRiEXHyS4/nvhQQcRU3iFvE7xlQ381JgY748XwgQ7YpxNyftvr9czx2KjLUIApMxu7B/Xc/sHPX64Dlbbm22UZ0LkDb5nQnWLGrPCsOPjJJuZHfSVBjrfaf3JZwOiVNiWRGGY8Nf0Z3kkveqqntC2y+IrK8omZVJrg1OzTcifErYLPLuUprP7qC1YUIWHruOWvXL66OvgzHtVJzRn8XNxJwE/2CiDYNXZCPVDxRXF7bKU8ujFkwg+zvIPsQcRFfrqL6NURuklt6qegI7k5CZQq75e+qo7B6reDPIgwLTapLB1HO40Vm9Wc4xxEfCYTTJ6fB8PAnnjktHf2RKSR51XHm+C1jYCD+XJKdUD0XTVoabLSXTCeR+K5agAwvt79Nh5LQgoFKV/4qT1skbb18S55rjPHUj/N6/M6F0U3TnyTm/kjYBh4YUXvZ18yaKtGgt1HFiaW/bNazVxIdGf7pXEbaad3o7cdMQDcrV8qluuuJ/jRsgJ7HTvRN0q05GyMwNOCidqy8QzjSzD+yO7g6rjaNXQCaQ8gF5YOR0pZ08YXL0d7D7CEehl0gPJ7mjxJenzpGOozhGzRiv8vOJptE/IW4A241eWxqN8T1uesEhDb4lmzadR0RdBm+6SUgQdcNEPLqaMoSbJHg0R5n1lkbOgKDdk40WyE2zspKKlLnRzxaOVFAFpCmRT+Ic1K5gZ0GB1+5AB0QA6ufj/iTYLdwI2/3HmPv3DcS4yFkPnrqlyEWR6cNb48Fut5ajxA6zvDyoT23Ceaps+uG4/wyv3AMUxmx91eE1stEnClWGDEAR7TykDXPbwy4Rx9a7tOqD1a9XtI99UXOkg3lAd+RM4O/pvOmYanRnIBMVEr91fiZjUkNmBFLX0CxZKSFFQgD/i12tJ+OwiHjUh34V3AdJrCT7LgiR/OQinyAR/OK3PU0qa+8CvOi5Rq7Zheg/nT7geoi8XWgY5gEQLIhOP1GKc7XI6lP46 X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 6:qmH7IxSk9aRb+j1PaMe2KRK+lZOl0OpuJik3ngSIICD2r+lTc+vf9ZTJ0MJ7ATWRBAhpLc//cjZuv/iWeSE9pu0UaFJvciKd5Puti8bTjiIIOaEcXGVgmaB1/h5VKxrQoeVV1mY1lwC8fJ9C5xy/gfY7SCUbtMNN7jZJLo82HyK++TImPOaek748VmBcN2gROlqkLFQAW6g8MR5beJ1kOiQNW0ebKCnjRcxaiQDl/T03D8YTaTGBE/y/2yaMW4RJBsp6gsu53ZARKYnPPkrBSJEHn8C5d+AeYn2+6HfaTT90aagJ0E3KyWCSEMFUhFsqIv7oCmeNDdUXXwfzz+fqzz/VQ3Jd37xHleYJH3thvkbCh9E1NjhLEMcR1NDQTDlsj35P17eU6Uta2Iozg0h025ElWYqIkJau+vnaZtgp6talBM44bfm/bvJRkZgO38nYseovyrC2+v/RStRqlUGn9BDS/GpbE2YW5sb55Tz+AcLK1qo2KOIYStxqQXVpCwk+QSYZni8g/JPUogXe0hAHviUkw/agdcHeHwm3oKtrCpBniVTeXLJv+vFLbOXyGlyZ; 5:cnFZGc38zeyNzNnM0GAa5YYQ0DE1vCFY7/fVbsggkc0eMVtooS119W0mfDAIl70l7DBoCEhkCVdL2KjKwrI7oXfKwTvMm5ml3UEhz7e26V3LF7O893H4xAeF08qu36QA5NLX+XpEDHAEdz5hZ4HqmA==; 24:jdtE/4QHOm+EZPr9KWn8/8S1Not5+EQX1obAuNLGUotKuFSer7y6G1BgmNXt5Zuqet4tKHXd79ns54ngeruEfvlxltjmrNwgNinkCAUG1B4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2121; 7:VMHDUMAFPwaQGqFHt/d7y8wFOLaihfh1cjC2kETljHgjQrO/tofCREmSkuXM6ILa7XxyrHXUjdmOzAz6Aej3fU5h8d0tB2ionQv5uWgX21HNy2lTY4P6s6YZV56opgM2pKJznoTTNlARZSDVZQCOfu5oQ1KWSDU583/JtRJwfnEhvIqDhvNigWMQL6KFOLL3rZePoz+GdwRKDfL+nvDxtjCjZZ+41waifxZ1pu4U3mdWr85x3Sbx3AvD5lU7Kvm2aklu6OAiX8LhMExeHqSuDPqa2L3J7/3715E1whODLXRV9yr+uI4o5+l2nXaAJ5w5r7enB8XCVwXWUFw3htyNng== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:05.3762 (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 v2 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 Mon Apr 24 10:49:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petri Savolainen X-Patchwork-Id: 98038 Delivered-To: patch@linaro.org Received: by 10.140.109.52 with SMTP id k49csp1423164qgf; Mon, 24 Apr 2017 03:57:44 -0700 (PDT) X-Received: by 10.107.170.80 with SMTP id t77mr6227016ioe.113.1493031464136; Mon, 24 Apr 2017 03:57:44 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id 90si2482999iop.217.2017.04.24.03.57.43; Mon, 24 Apr 2017 03:57:44 -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 075BB60BE3; Mon, 24 Apr 2017 10:57:43 +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 48E9960C39; Mon, 24 Apr 2017 10:51:33 +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 1276E608C6; Mon, 24 Apr 2017 10:51:01 +0000 (UTC) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00124.outbound.protection.outlook.com [40.107.0.124]) by lists.linaro.org (Postfix) with ESMTPS id 4AADB60BFF for ; Mon, 24 Apr 2017 10:50:11 +0000 (UTC) Received: from AM3PR07CA0146.eurprd07.prod.outlook.com (10.165.223.32) 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.1061.6; Mon, 24 Apr 2017 10:50:09 +0000 Received: from VE1EUR03FT024.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::206) by AM3PR07CA0146.outlook.office365.com (2603:10a6:207:8::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6 via Frontend Transport; Mon, 24 Apr 2017 10:50:09 +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 VE1EUR03FT024.mail.protection.outlook.com (10.152.18.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Mon, 24 Apr 2017 10:50:08 +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 v3OAnHRa005827 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 Received: from 10.144.19.15 ([10.144.104.219]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id v3OAnHYW005796 (version=TLSv1/SSLv3 cipher=AES128-SHA256 bits=128 verify=NOT) for ; Mon, 24 Apr 2017 13:49:17 +0300 X-HPESVCS-Source-Ip: 10.144.104.219 From: Petri Savolainen To: Date: Mon, 24 Apr 2017 13:49:17 +0300 Message-ID: <20170424104917.24102-9-petri.savolainen@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170424104917.24102-1-petri.savolainen@linaro.org> References: <20170424104917.24102-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)(39840400002)(39860400002)(39850400002)(39400400002)(39410400002)(2980300002)(199003)(189002)(9170700003)(1076002)(8936002)(86362001)(575784001)(22756006)(5660300001)(8676002)(50986999)(356003)(305945005)(2906002)(50226002)(81166006)(47776003)(76176999)(36756003)(2950100002)(6916009)(33646002)(5003940100001)(77096006)(2351001)(106466001)(50466002)(110136004)(53936002)(48376002)(105596002)(189998001)(38730400002)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0701MB2128; H:mailrelay.int.nokia.com; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT024; 1:7JbJ45j2XzyvxYy/ILqkRrVBrQmRxP2o1DzS7xPlxGKVmHAVdgTeZyz/GDlHmrjdtnED9W7FadqgexK53j/ny79a/oU9YUPHU8Pgz06fhTBIw/gr62waMy7Vis6/Q5gnUTfF1RpExkTifX46ez4Be2fhDgKEjZdPNz/ErKgDTWodE0pnW1067llygBPrr/L2hZ0UsWC8bc2yCcNiuZOIkTD4JhurZxyBoqNyVOa3ly2LVtWPt+tV5Lfp0og11rhhic0kRMZx/26XzpSJ3/NX4uyVbe0r/HxVjISGRdTEm9Oigd2YS7r59d18wo9siWEZmO81C+ErwO2U4EIEczvMMd8t1LO71znVqGVGSCf6xXfbVah7tkgvX46YYJbWaHZv7ufO6wTbK8shgtuvQy5FEFWicla1NDHepQnFyv1z5bXK3ds71/zg+3dTFTSxZKyw5KxKM2WTgTnyGua79tUEVnhefeKmTLAv61upFAAw4LL8Mwx1FoxNxHHjoZ8htM4YAtbNn2/zSyP3W+hD63nFSw== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 06a451e1-0073-4563-9f2c-08d48affacfb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:VI1PR0701MB2128; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 3:9aCjm9qz3Xe5u0XK7xf0+wmyURVVgYo27xuwG5D30wvDeEyt8jLOpZt/Lvfup57pLuInU7t09o/rc/x2FbMtAkMATj2iJgtj3qGwqOe8mrWkU8YGXocOHFG8DjmTYe+jKeWrnAQ5rba3xZXWEmija0BRl1WzO8bJbtXUcUpIDzbvARA7hYoAIZln+bA/VKcRZjWvdd+qi0oBxAxBh99wOrIz+grzroD8EJggZH66NmZlIzaSJUXSnM9P6FPzR0mi787SAPLWkL43KCX8Dpwae7HQJNxWez3f91orpEIJs8LXwll2/q/7MwN7MPHJfWDrnGxvAVtMlopFfJNzljhf8CvQsb8cI4swX/9XzMRUN7WfTrns3jRAu9KdAdHuQcreWMlUPKvbo1TOh62eIuaylUuZfaI3oV386h+kHZI3VTHFpkgJGBp3fQ+dyRw0OOyrjSl9xID6tc7WQ33Zb9978w== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 25:HRq20/90UlBuQo5WsvOyE+/mEHiWvf3Ilq7cyUwvl5E6C618ynVFKcRMLzJSHy0jhTyahY0uhxdmuusJnqmceZWdTAglV+Qj+lANAJ0f5Vocjs0j9bv3SFbiCneIFoqs6LNiCk7e/7ftYgvX0O4IueqYJy7EjxkMzfo+GbPSbiIaqIFc0jJ9l3jdQeLabDiyKxb9tvR4t8UJcoU6VM4/uQHfNg6fkurpTJxEd93FRwkVl1p4WPjxoxih/Sac+pdxr4+plStlro55u/3Q/w0ECf1w5fldkflUIGav+2nfeaH/HFipFKp1HXOp9RPj9ntNJkj/HD90Kj3OzDijovBMAcK6KnujtiJrGPLfSXeDCQXCaGdaDg00l7ds8XAhry0xhTRbt/MItRYsOUF5vJEmxuEszQnJ7H7Nbx6NwemsLZFytlJlumI3j1tlhhuKpYdcD9kr2Z+/ir19fJSQMfapEf1yqSlvxt+Gj+D3AxzzV/c=; 31:hZXDrz2C1nfXQQ+zZ9Xyj/DlyRy1FBb/L695YXackKDAcpvrI4pre+AS2pBF6CnKt4gYp8QYoyOdHqAcDdJU2n4IctRpyn+5tDKzCaqiI0xBHrjZ4bYxFK0NeMqWV8NC74TD7DTg3mZhKrY66kJztrJV0XfvjEzb1V+ABegLM18BgbtadGaY9i9hgDEUapyIujd8ItpSB6F5/n8o0jppX0vRgDW4wF5+ovZ9JR0B/FqVIX1c7MmqFcGGQqg3WV7+EdW/4geJFLRuNqpM9U8roQ== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 20:3knik64LXGM+OlS5wugaELEioZbW+/D2mNhY+NQbl/Bqq4ZAMZ03xQTVOKT4BizQG/UdJKU8NPvNgnT0kPjhOm65iMQEWdSAcK8wDxpoZahUzok/j27LgqeJbYhZ64a05usGvV1VMdulGUfp881OjVvuetJAZ2tSGNtBMJa6+5Mv+ArbMTneshb3W9tbXn/cvhjSi3kNnDH9wOw919nim35SvpSfu/NA40Lz5nqdJkNTzK9yDxPKUXn+HwaYo5gI/9Bj3iuKmIuAicBzx24+w4M789pggYfc554E8sscFARFZdJe3ZGkikj6dOW0kYu+u2TWMrPAoCTk/Fq10WZ0OvkyqjN836hBHUtIhncF7ky7UwuL+TxvMwEtAlIjsymS1EY0HxBI+pPUTRgmmBpAxzWZch0Md2TmSGAQrKSkSXq/FYOG/WDN8Xxsa9fUKemzAMA1WzPVxFLrgSbYyjzdGebP6kvOBKfPg5y/MEG7EZsEVZJuACVruhOJ4czwZKkNOVVT4Ky88MGAAIPe1IQon3r24G4leDfvGM0dnIESkdbitnK+GMp5Hn36fY0HgrYjq5xJrHcnczqLrYR35ulbsZeo8I0UoD8N9WyDNfvAep4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13013025)(8121501046)(5005006)(13023025)(13021025)(10201501046)(3002001)(93006095)(93003095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061750152)(20161123555025)(20161123564025)(20161123558099)(20161123560025)(20161123562025)(6072148); SRVR:VI1PR0701MB2128; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0701MB2128; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 4:yaUCoqcio+KnXfOFpQTViuF1FhcHezEsqQ16OGyERcQ9FJPP6OiQDdRD2BU9BrB3otvfFT2+2TGOXooMzUeFfZ/UrlqqZ/YbUDi+7PZojrU70xcxAL/fvzsBMMDfGXiOHsIgGagnTLCZ4vdtBX/zWlo3NtdOoCr6HaTW1veE8HNf8icU5J8gE7MN+EJl7IsyxN5m+wZB+4RFqEY+54wUrcJaPK6WdQ2ulG2Ejanel9TwV6COlQGYgjDuoPnF30jwk9PjVPrirCt9ZiqRrtTSktA2ZGAiwcQ9x+y5lTKo0ADYQyEJeffPB96VNBdfWBMvUv04ysoY6agZywUZLSn1KCbiStwmk8+mxwCrwN+6h3nUPB07mgcLwurG5/99GZVPcjR8EMEsE0wcT/tk15Q+evUg7l7uMZkZ7ZS/yJdxxPfbRaaWKXsIlVJaN4F00Ed7BFYdcf7IsDJX5uUbZGC0DmUgANO5F9P+5zJ6ekQsOtiU3lglqMakY3G5QkzChFLXBCVY5MoGevuDiyV/L4fXstDGmyedczslktQ8zmxpXRxQvhK4Aojiss9nnRLB6WSL+kdycaHRkVBjjYI22Picsdm5JAsGBLQfIOgMzanORyLFLCcIA/dRceFSSHc+rdyjUoBChVtetUuOAQXo8H+up7Jxo9K5xcSPW3BYqofZYtOjQ/1VYoOrAoGyOzyeSDTju1y4xd5wcJc7WAOgaaD6KSzs//ItPuQtlAYtXr9FVRb4xq1110GBRyeZqdKfswKUDO3WWTT/5pJf7b4xgndYAb1uAEff/FG/Q1EFF1A3zm7P5Q3rER7qhPFsll0/+KiMauDrQ7n2YEcmwbs4xDdZkF5Ib9UjJrH61f39n25jeMQ= X-Forefront-PRVS: 0287BBA78D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0701MB2128; 23:5t/OHFhhEemCvk1zqrttE/viAEAWsfH/k24q5i3?= Sd5GSU45mdEYrc8EsS8fEoTZhSQge49V3QqKr49HQ64IfW99yMzYBBN2NhozLOHXv1jErtnBl1HT3+drpEgmSjltNF0Dx2x+AKTFVKVx+gWUHUNbukLI4y0nPftveH0ahFUIVNMwLgId3JExoAEcVDS2ZF4MXi8BzJNI6QvW9SefLxDX1CWZ6Xpzti0W/cxsVQkFa59ZVPQDWp1PC7ybVJv2PRX1qRcbf7f6GmTx5s4z04W2c+yU+CPkgKZNdtLnpoQC5xX3ox730OjM1DJcZsPS1DF3Cx3jV64e8JutwvkDU9SPvUNS7LRbzqOCNaP3d8S3Mw3gWlNy/emxh9pLL3DOSYH9CW5rOwOCxosqjFonQGA459zRsIGmD4a+m/cflmuixTjSTk2x7a/rV4DKQTw5ZEy9fq1Hmrh69ZaTgGGNMf/07mrmP2EjFj2OCiCzexgX4HYvhfbvB/dIl+za0gdEjIy0GDj0zvc/UXbNwVbsjRNp7+rk08CBze+/K1GNOxqwIFC9j1VuXcn+g8i0BhTpBMe+dg0FWVEgoSXUMcYLZOe0uVvnjJ0F+CGR50WggoppOqKLgntU1bvQGuGSocVtw/gFrOyF5dyv70JYs4FNN4BDoZPncWwQKCobMirq9wKGG4SFAjT5tZexxP0a0NsDO9Q0Eh/8rpdmyYrZ9npyco0t+urkBRRvgo6hGZdKQN1q2niBzUuw/qwAsqCsi80HRVJer1bKulHqr6ui8hyqZafgtH+lduFiNXby5K/MY8LbNhoZk73mD9Xeeja98HNSRNbtH3D5KI2mjBvZ3/Y5uVyJRKb9cb0pN/DzpSL1/wg/tindhiNASwES5PQBrTbAx86oKTjGeV6zkDKM6nVOp9/czOIqpkWRW9zdwzbjcUPfjPaJmwFI6on79JUxoZucb29sDXQ8YYrc69AUn09s42hWh2cxbQza2TjhkuKJ0kJ+H5tI5JL1lioxnH4yRNmzwopW1NOOJNZJUMBTYwukvzl88i7TlI9eaMAmzmz8OwNceIz+3JlGJBp4cUcTj6Myk X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 6:c2aQbGamtu7SCN3vT+QJuIXPNvD0MXwtrX3pR7M72hcUhMnFngmMmlcCIVfDo8uQ4R0HkvQwALU1SX0jYFx5Mk9qBz4e50OCqp+oFVUg7d5sfqhagvCs/x+o3kxzuMW4P9Ag7+iV01Erstz1iP0xWs1sQSdOsXQu9NnGv8QFC2MdsEDcqTUdYiGOK1meGDbDYjbTapLAfDVgVv23b/1Brkssnj3W3QHrdNGywyrNb4cp0/jfvjq5CD3Y5QIuFhazI/nPPssKjHEfF0sFV9E8POs3lJ8kBCEi4C2lhsNaerhing7iU0L7wpsMBSdmQtKCKMNKycCjI30zd1qAa0mdxmSBjxH3KXyMnqLZd5S/KmMv2qnxiE1BY7Dhecv60HOE4s2BEj9cuXpFLXRYRnY/Hdlj8P1XrAFGXc8aKNY9SFiENhDq5M6QRG1sjR9SryB3Suc4wEiBHq5MezzdyJUuV9uFVs+qJcPhYFb+hFtC40nww9iZnQpExDurr8wfafzkuukYYGdF/9sCM/HIbk0AkIUhwOZGjYGcAv1PBic8U0v6UQmto8NAJs/vBN3BzVY7qDm0I9ZL+EkrZYv75aLX4A==; 5:Ox0hjnpuwdnXbiSCYY2gKFUkUhw3Q2p0gj9BgwxaAkARW5Zys/4gSa8h+a1d2f1M8ZM48NLdZoBMBc8BuiFseeZ2HzvgGieXCRvnSujFy1xydByyXfudyOjZIh1e6/pK+JCCRuKroS2MEsbujdy6+w==; 24:a1yy9C1dNj5nmaQIv4HbEQjeYq9daRBqgNG0JTWywz+LfxMiRnrarwzFOKeyRMeU3BZut39e4HSAERc2b1zYIsAPeWBCM2hAvygT9b0iBgs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2128; 7:xUF1XPiY1jsUiDHyjfNOtRFqMnCLhtHRxXVVJMpxX7Ct/sByqrszS9KrpFDFUWP+A9UDHDcWm2peJF0XOkY0blOMrc9ou9J1sPyKW8VETVLqOFnoXaAIsmDOrKHNPVef6rxTJ9Y+xo0NSXPV35nUtZHjLiVD/lMS9pZL1arElDNLrj5s+RVExLis1HqroJljBzIsvutjQHMD7RoXZyO0u3ndpa0SpXJVC0EA110b3Qe7QOvG6omjb5Seon1/3LBtaEYu1Ko4KxtIzuG+0yDhoVaC38zt8n3N4fvlO5wG/oF3x/lrQ186xewoHduOj6cU2fMy8pnLl1bqgi8iO2YU6g== X-OriginatorOrg: nokia.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 10:50:08.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: VI1PR0701MB2128 Subject: [lng-odp] [API-NEXT PATCH v2 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 | 16 ++ platform/linux-generic/arch/default/odp_cpu_arch.c | 16 ++ platform/linux-generic/arch/mips64/odp_cpu_arch.c | 16 ++ platform/linux-generic/arch/powerpc/odp_cpu_arch.c | 16 ++ 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 | 300 ++++++++++++++++----- 10 files changed, 415 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..c31f9084 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,18 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +int cpu_has_global_time(void) +{ + return 0; +} + +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..c31f9084 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,18 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +int cpu_has_global_time(void) +{ + return 0; +} + +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..f7eafa0f 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,18 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +int cpu_has_global_time(void) +{ + return 0; +} + +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..c31f9084 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,18 @@ uint64_t odp_cpu_cycles_resolution(void) { return 1; } + +int cpu_has_global_time(void) +{ + return 0; +} + +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 954dac27..a492a35b 100644 --- a/platform/linux-generic/arch/x86/cpu_flags.c +++ b/platform/linux-generic/arch/x86/cpu_flags.c @@ -39,6 +39,7 @@ #include #include +#include #include #include @@ -357,3 +358,11 @@ void cpu_flags_print_all(void) str[len] = '\0'; ODP_PRINT("%s", str); } + +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..1cafb1f7 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 reserved; + } 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..0362b003 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,234 @@ 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.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.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.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.reserved = 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 +294,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 +314,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 +353,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;