From patchwork Tue Sep 15 13:55:33 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hongbo.zhang@freescale.com X-Patchwork-Id: 53661 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f198.google.com (mail-lb0-f198.google.com [209.85.217.198]) by patches.linaro.org (Postfix) with ESMTPS id 7C1FE22A0D for ; Tue, 15 Sep 2015 14:02:51 +0000 (UTC) Received: by lbot4 with SMTP id t4sf8779990lbo.0 for ; Tue, 15 Sep 2015 07:02:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:delivered-to:from:to:date :message-id:in-reply-to:references:mime-version:spamdiagnosticoutput :spamdiagnosticmetadata:cc:subject:precedence:list-id :list-unsubscribe:list-archive:list-post:list-help:list-subscribe :content-type:content-transfer-encoding:errors-to:sender :x-original-sender:x-original-authentication-results:mailing-list; bh=ywvX+v316A2WJaa9zHTijUmL8o7xLFhapwuvhlqiUms=; b=V21Bp/F0Qo9LvqMRkHPXS2rUHBTe2nNtdOnoCoJps05+4C8NFzQ9zivg9g0+r4fO5a 8Rq7LI3hIpAwNh0YfhOvAh/B2kgk2Tp7nCnDi55ZNtzsHJtwVc8xkKRvcE0tK/aFS32h ex8JTNqizio8vX79aOiI8yMQIDtzZNvsiIW9sGOTSP+0ulwQSTfCLoMtwNI84LhIBoA2 v8JE4zMpR63ighN7QHgHXJ+gu4z4rjvDltKwu1VjhqNfbmNqbqzrygOfzWNwsaxeTdWZ 8BrqYzS2xyHmFnYdGSbJkpR2N5Vv7DpZXoABLvvop2kUUiKNCsJBXcOqbTj9Hvxu5HKx 1gww== X-Gm-Message-State: ALoCoQlF3tlZm84LOSsb0y+aUPuKRklvZ/9cjx3AOWO6k3azohbZz2SilEULOcYPDtA3/K2kHzci X-Received: by 10.180.106.197 with SMTP id gw5mr819893wib.7.1442325770416; Tue, 15 Sep 2015 07:02:50 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.8.130 with SMTP id r2ls149303laa.87.gmail; Tue, 15 Sep 2015 07:02:50 -0700 (PDT) X-Received: by 10.112.129.202 with SMTP id ny10mr21285853lbb.112.1442325770106; Tue, 15 Sep 2015 07:02:50 -0700 (PDT) Received: from mail-lb0-f180.google.com (mail-lb0-f180.google.com. [209.85.217.180]) by mx.google.com with ESMTPS id m6si13824637lah.100.2015.09.15.07.02.50 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 15 Sep 2015 07:02:50 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.180 as permitted sender) client-ip=209.85.217.180; Received: by lbbvu2 with SMTP id vu2so13504297lbb.0 for ; Tue, 15 Sep 2015 07:02:50 -0700 (PDT) X-Received: by 10.152.18.130 with SMTP id w2mr11973582lad.88.1442325766510; Tue, 15 Sep 2015 07:02:46 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.59.35 with SMTP id w3csp1823841lbq; Tue, 15 Sep 2015 07:02:45 -0700 (PDT) X-Received: by 10.50.79.167 with SMTP id k7mr6190415igx.28.1442325764762; Tue, 15 Sep 2015 07:02:44 -0700 (PDT) Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id e36si13397740ioj.101.2015.09.15.07.02.42; Tue, 15 Sep 2015 07:02: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; Received: by lists.linaro.org (Postfix, from userid 109) id 7B45C61D8A; Tue, 15 Sep 2015 14:02:42 +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_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 AA741619B3; Tue, 15 Sep 2015 13:57:37 +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 5E06061200; Tue, 15 Sep 2015 13:57:33 +0000 (UTC) Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0146.outbound.protection.outlook.com [65.55.169.146]) by lists.linaro.org (Postfix) with ESMTPS id C185261D14 for ; Tue, 15 Sep 2015 13:56:11 +0000 (UTC) Received: from BN3PR0301CA0041.namprd03.prod.outlook.com (10.160.180.179) by BN3PR0301MB1267.namprd03.prod.outlook.com (10.161.209.147) with Microsoft SMTP Server (TLS) id 15.1.268.17; Tue, 15 Sep 2015 13:56:10 +0000 Received: from BN1AFFO11FD011.protection.gbl (2a01:111:f400:7c10::143) by BN3PR0301CA0041.outlook.office365.com (2a01:111:e400:4000::51) with Microsoft SMTP Server (TLS) id 15.1.268.17 via Frontend Transport; Tue, 15 Sep 2015 13:56:11 +0000 Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD011.mail.protection.outlook.com (10.58.52.71) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Tue, 15 Sep 2015 13:56:08 +0000 Received: from hongbo.ap.freescale.net (hongbo.ap.freescale.net [10.193.20.3]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t8FDtiXX031670; Tue, 15 Sep 2015 06:56:06 -0700 From: To: Date: Tue, 15 Sep 2015 21:55:33 +0800 Message-ID: <1442325342-13806-9-git-send-email-hongbo.zhang@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1442325342-13806-1-git-send-email-hongbo.zhang@freescale.com> References: <1442325342-13806-1-git-send-email-hongbo.zhang@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD011; 1:o+gPx7J3Nqbh9H7KTOQfC+vbYkAA6QcAORTZuZb1K5RtWvQ+7znsbUXw5GaxM9d23JFUm0Yx8qRKD/sv/vo88VXxfFKN0K89i6v8qspLXGdGHOki7XuMmpX1z3pK3Mxz0eYpEoo6710/JaCNqgj9filvp6y309vsVe5O7xz3YL/qqE4wdGQifsQjg1d3kgwFL0fdvJ9fUfS1Y/m1o4zkJEvcnE8E175fNUvrOuON6INKLQLlLtiUePUV9d+BJARlZbDVacKdf5g4Wvlsqkk6acRGGJKXREx9UMa9wBYO3R+jiJE1V7YEzmiJfpfeNnh3hChR/cRv+xloTkDmmrtjdgfHrxAeo5JofO1WWeN67xZDBiJmcEQLi81PyrdBqi+Qa0BfxycMbsEm9YheVyQNgA== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(86152002)(105606002)(77156002)(189998001)(19580405001)(64706001)(69596002)(62966003)(87936001)(19580395003)(47776003)(5001860100001)(85426001)(68736005)(104016003)(77096005)(5001960100002)(5007970100001)(110136002)(5003940100001)(5001830100001)(106466001)(4001540100001)(2351001)(48376002)(97736004)(229853001)(50226001)(81156007)(6806004)(50986999)(46102003)(76176999)(92566002)(2950100001)(50466002)(86362001)(33646002)(36756003)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0301MB1267; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1267; 2:6Kr1KAHaC/YnqtXXkacwEqHBcvXNr/u7S8H8LrfgQi2vPWw3EIAk35Sz4+6fCkdY5lpxTWVyAktZmHQqHY0J13ZZg8CevBwAQEAhr6Ni+dtdmFF/3COdPiDGsjGR4vX4Zq12ZyXS1XByDDgMnAHH/r3e2wCGzKqlnujkqh4ZuB4=; 3:z0IcWn+HcnZpUOgNZ3c/t0tXcT2kATJdoeeEd6mfxhcszYP4IklpCq+SfFZV32UL39wwMX2ubHOJLRWWCSLku1diNKgydfQQdjPH//Smdm2a6jP0ZGi1hAlHLW4EBpzdSGdIjE2Bmb9J1gYmofaOoZ8fxFc7hcrZmPjyuC8db7M0FSG+1HJjuuLZFwiS/5ohOV4p5nFHXPcxeQiKWWxbpqxcJQ1aj3a3tMk84O0vvyU=; 25:tjBghXpbwgVC4rW0fItHSV1twKsPNfBOYRXrg+K8IZuHMmBx27PtQKAHo22dbs2UaC2EC1F5FX1sgJGOvCHKez9s7Aj59P9pQ7kGNcVoNDLCHTEaa6TE4qy+bKWWKSWvXwBgGimOWTSDrLLGAFwMGXnttHu0kwe9sdIN/kY/gdsapftDi8JSjQH4e6RAVH+Ea4YQBl9Mb2yrLN5lgLjsgczEN3QnAUvS1GHA1u8roPI6pDOxaj05n3vyVvKRVhNRnFIB0lAOIaLictQFaXGeEg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1267; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1267; 20:dlLrW6QE4I+nxq1FfUPHkkDxwCz46AN0CjtSI7xhyBg8GXKo4N5x0y5HrKrAznrkVACZg+r4cpTXoHUmrMKZmyZf/0lStXvUf6/p7AQntnfdU33WlE7TOEx31IRQURb4ObcTaZ414J1qVV3RvIYSyFOMGVsAIg1totZMLV6lQ1Dyrl4kj7kyH7VTQ28zyFDF7f+AuNeu4qkjGZ1k4lmZrZxBSNYjGFQ22bVf5cEzMZWUaZEpmupVRPp0x5iUaauFuwGZHoarAvsmWSoQCumCefzBov2lPkUNaCXQnDpFBGDe17DFu5yOko7XMcqY6FhT5SRQtnvALcZNw2gCsSS8QpdoPYdyIE1iTP8u5DGln5U=; 4:VpEyCK5Tyj3SS6p+UHGlumDYjez8AHCi5lwK1WeLvPlediwtBPHrEvDpSv7K1On1Z5KILMoGUTSE6Y0Fo7CzNqAFAa290ryp8no2pGoni4eYjPkTjrEwmMXS04zoQOtzvo4T5YZV0tLqV6SIF7JerZKiXZBKiwcUFR7aCBXJTNuzoXLiLT+NBNns+9ufBJz3pSE1F7OH4TOvrNpT4Ecmjnl3KA6nAqlVqrrSXQt8rXJS7qvD0wmfiUwWH8fLuNgBUS78VZs5HnMUHGD2h7EYwKF/1Wt5bh4gud69VRK795NOTm0IlGIUBikNQtVRTxjN5ONAflaX/VOrk3/uVdBUxLXVrcCigtI3bnOgzxsGw3w= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(520075)(5005006)(520078)(3002001); SRVR:BN3PR0301MB1267; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0301MB1267; X-Forefront-PRVS: 070092A9D3 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0301MB1267; 23:e13HipuZL0atYu61RHMfkkvCW+H1Y32P5SenjNx?= =?us-ascii?Q?Keg/18uzU1Ab9QcU7Z7YUzAtCufxk8mU4bXYtAN51rUxbfeGsp9xotVPrdKU?= =?us-ascii?Q?N7U0sbsnv9k5SW2R9JHXaqDWNKLszO75xPZFG0JVIHxGZFip9bb4qoOnnSz/?= =?us-ascii?Q?ZbKMrU2DNWGYoIB2t+knQ1eHq7u0s9lwtMuC8RowrzrgAQKlgBKPinve0b0c?= =?us-ascii?Q?ejlHioGjNHpQ+nzjI1173Lgi9iBHgPEwkvHxjRnOC4MEIqlbGpd4wbrhiApO?= =?us-ascii?Q?0U/zOqHg6Jea3B9VoQb/qCv8SVZAvgj/0jd10vs3WeHNeNcE2gSi2DRzkQBJ?= =?us-ascii?Q?2sSw3ky9uMgFiokUBI4WLrDrHoxNvRJmtswFeV+zcw5oFSuji+mOdiBjJvJG?= =?us-ascii?Q?CTBE+bAeH/yjQdWABa5EtBQy9EqboyA5TU/EFiQ/gOg45F15rjvn9aYnjLer?= =?us-ascii?Q?nOLXyOQSKbiNS0Ld1x6PH1OHFTQv+JjjTfQ5Tyr2ubqBU27i+1Vd0mjs+3E0?= =?us-ascii?Q?8A8W+Xv7AlJqSeEjn8MBOcg8ija1Lx3iMW7+aF/eVo5hh0ZR3BWEYK6+jQf/?= =?us-ascii?Q?4yEOpA7iaWVDrIuSYYqm6AfH5Xb/lGlP3sgRbj80EJ57M3w1y9ENXILNef1V?= =?us-ascii?Q?3lH2Mpoj74//8memq4kKR2PnMfMoC1FSLGHvVWq7IgjENi4ejD7eAu8G0B5N?= =?us-ascii?Q?IKdZ8xBtLiovDkaOGr+r6oKUQONVYbUe/LwpGziHnGjwsepT+Pg6tK4AIweG?= =?us-ascii?Q?3DwYP4W1Fdx6VU/uYjfqI8S3sfKm9AXICudbOlWz8TTWh8dVqyxZR56oUdPX?= =?us-ascii?Q?zb6Pnqh4ZAOQudqlxQ+sulIMmxGXfaInzjPtS+SL7dwSXff3Az+mDrJU0tXa?= =?us-ascii?Q?e/FrjQooNLPlaSDb7abRV4KicE/s3v+suSbfftW+exYVeDZOJ5pbZY/oDC7T?= =?us-ascii?Q?Gb8AMmxpQFPveJLcHx+gyIk+G6/Aea9kPlG5cSlTwTQiC/lvd05qtsUOiURN?= =?us-ascii?Q?t6S1hqJ7He43wR91wNSpYPqw118ajxgTsSkpnG66hJ88XdLg3xT+NppI3eyJ?= =?us-ascii?Q?V39jmDNJzV9/dlw6haiC4HLqK29W4PdnNUGmD7CeSKD/apWr1jSH59rn/7hK?= =?us-ascii?Q?e0UhRWTo9u4QuFwzMww4Ed/dgF955J8auKaA8IVgDEk7F1yCbF1m3NqIT1u8?= =?us-ascii?Q?hQGlOmfB4yaWJI88u+Oqr7iTeBd0+sZv3DwvNLyEaD2KYCc/gK63idmSsvCo?= =?us-ascii?Q?VlmKtmNQqAHBfH/GwsA0=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0301MB1267; 5:ksBhbKU93dfr+j78fYx+2mA3wBfvhpC6oRNdXQd3xED7jwUS684RkeiE8yTpmckofGJ1+xyMBaN9HluH2EUBXZrnRv4MWb0XmI7lUMTk1LljnkoO3vwkfyLWoGmk0fWOIxwgcmMUYLoaSOwTlZ72FA==; 24:OS7KTOASeNXGs0MP5jezcT+yVbgp2JK3Q8WPXQ7BZNmrGZn2pcdDMRg688VbClLSeVBByYd+TL+dQWf9oeY7l29t6GQ3Dug0kZLh2GRTIk4=; 20:+F0b88YIxP63fuQk9Z4AaXaQW6psHVs5krS/5ljWHoQSxVU+PBSWKqvX3EM/1aGUdjylLhS+5vrHxwJfSlRQzA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2015 13:56:08.7377 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1267 X-Topics: patch Cc: petri.savolainen@nokia.com, stuart.haslam@arm.com Subject: [lng-odp] [API NEXT PATCH v5 08/17] api: sysinfo: revise odp_cpu_hz() to return current frequency X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: , List-Help: , List-Subscribe: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: patch@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.180 as permitted sender) smtp.mailfrom=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 From: Hongbo Zhang The odp_cpu_hz_max() is added to returm maximum frequency of CPU, while the odp_cpu_hz(), as shown by its name, should return current frequency of CPU, this patch revise odp_cpu_hz() for this purpose. Signed-off-by: Hongbo Zhang --- platform/linux-generic/odp_system_info.c | 56 +++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/platform/linux-generic/odp_system_info.c b/platform/linux-generic/odp_system_info.c index 8532fa0..ed61d36 100644 --- a/platform/linux-generic/odp_system_info.c +++ b/platform/linux-generic/odp_system_info.c @@ -146,6 +146,42 @@ static int cpuinfo_x86(FILE *file, odp_system_info_t *sysinfo) return 0; } +static uint64_t arch_cpu_hz_current(int id) +{ + char str[1024]; + FILE *file; + int cpu; + char *pos; + double mhz = 0.0; + + file = fopen("/proc/cpuinfo", "rt"); + + /* find the correct processor instance */ + while (fgets(str, sizeof(str), file) != NULL) { + pos = strstr(str, "processor"); + if (pos) { + sscanf(pos, "processor : %d", &cpu); + if (cpu == id) + break; + } + } + + /* extract the cpu current speed */ + while (fgets(str, sizeof(str), file) != NULL) { + pos = strstr(str, "cpu MHz"); + if (pos) { + sscanf(pos, "cpu MHz : %lf", &mhz); + break; + } + } + + fclose(file); + if (mhz) + return (uint64_t)(mhz * 1000000.0); + + return -1; +} + #elif defined __arm__ || defined __aarch64__ static int cpuinfo_arm(FILE *file ODP_UNUSED, @@ -154,6 +190,11 @@ odp_system_info_t *sysinfo ODP_UNUSED) return 0; } +static uint64_t arch_cpu_hz_current(int id) +{ + return -1; +} + #elif defined __OCTEON__ static int cpuinfo_octeon(FILE *file, odp_system_info_t *sysinfo) @@ -195,6 +236,12 @@ static int cpuinfo_octeon(FILE *file, odp_system_info_t *sysinfo) return 0; } + +static uint64_t arch_cpu_hz_current(int id) +{ + return -1; +} + #elif defined __powerpc__ static int cpuinfo_powerpc(FILE *file, odp_system_info_t *sysinfo) { @@ -236,6 +283,11 @@ static int cpuinfo_powerpc(FILE *file, odp_system_info_t *sysinfo) return 0; } +static uint64_t arch_cpu_hz_current(int id) +{ + return -1; +} + #else #error GCC target not found #endif @@ -368,7 +420,9 @@ int odp_system_info_init(void) */ uint64_t odp_cpu_hz(void) { - return odp_global_data.system_info.cpu_hz[0]; + int id = sched_getcpu(); + + return arch_cpu_hz_current(id); } uint64_t odp_cpu_hz_max(void)