From patchwork Tue Oct 13 11:13:10 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: 54837 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f197.google.com (mail-lb0-f197.google.com [209.85.217.197]) by patches.linaro.org (Postfix) with ESMTPS id 236AF20490 for ; Tue, 13 Oct 2015 11:36:55 +0000 (UTC) Received: by lbwr8 with SMTP id r8sf7879558lbw.0 for ; Tue, 13 Oct 2015 04:36:54 -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=+KnmAdXo9H2LnMrFwlcIcOtHf/lN6p5Ivi1fKrMjauo=; b=BZELgfI2xOOLbCmfRQPffPOr7N6u41eGwzi4WuVBhGJduAS87Syw9U07AFB1kV0RrL F+DBK6Yaad2CDrvF9RRg/8LFsfImhY1GHlZ4z+7dwFFOpCsgkbmHxu0eJv3AO8oRrR0v B6Xk2QkPzR/mOYRIA2SxnnySf0P8e8+iAYguT24i6mn6TCjnImX75aUuleZV1m4Rn3aB xUfrT6gAXCYivvDkVSPjvLTUJcEhgkIlJ2JNki1l/ZnHAJh9qwhuu1Q/sb+ZUAlHaHEz 9vSIrZ9c6kTsoNO83yRfzyF9uxqm9eN4+yRD1f5btDRcJ0N0ly8JQDj/fUKmaAt5ewPi WsDA== X-Gm-Message-State: ALoCoQklks/r4tetZFT14MBwEwo6aPA6fssL70CQ3D+0+0hV1xapEUhPK4TAi3unX/eBre6lIZqR X-Received: by 10.112.209.73 with SMTP id mk9mr6819673lbc.14.1444736214064; Tue, 13 Oct 2015 04:36:54 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.25.27.206 with SMTP id b197ls409094lfb.26.gmail; Tue, 13 Oct 2015 04:36:53 -0700 (PDT) X-Received: by 10.112.168.228 with SMTP id zz4mr15059019lbb.73.1444736213953; Tue, 13 Oct 2015 04:36:53 -0700 (PDT) Received: from mail-lb0-f173.google.com (mail-lb0-f173.google.com. [209.85.217.173]) by mx.google.com with ESMTPS id r8si1897353lbp.30.2015.10.13.04.36.53 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Oct 2015 04:36:53 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.173 as permitted sender) client-ip=209.85.217.173; Received: by lbwr8 with SMTP id r8so16205822lbw.2 for ; Tue, 13 Oct 2015 04:36:53 -0700 (PDT) X-Received: by 10.112.163.131 with SMTP id yi3mr14731692lbb.36.1444736213822; Tue, 13 Oct 2015 04:36:53 -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 w3csp2075604lbq; Tue, 13 Oct 2015 04:36:52 -0700 (PDT) X-Received: by 10.55.217.206 with SMTP id q75mr39111663qkl.109.1444736212715; Tue, 13 Oct 2015 04:36:52 -0700 (PDT) Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id p76si2417610qgd.13.2015.10.13.04.36.52; Tue, 13 Oct 2015 04:36:52 -0700 (PDT) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Received: by lists.linaro.org (Postfix, from userid 109) id 5952A61A1E; Tue, 13 Oct 2015 11:36:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_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 D81B961B33; Tue, 13 Oct 2015 11:32:53 +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 C283361A33; Tue, 13 Oct 2015 11:32:45 +0000 (UTC) Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0122.outbound.protection.outlook.com [65.55.169.122]) by lists.linaro.org (Postfix) with ESMTPS id B7F9C61A33 for ; Tue, 13 Oct 2015 11:31:46 +0000 (UTC) Received: from BLUPR0301CA0025.namprd03.prod.outlook.com (10.162.113.163) by CY1PR0301MB1276.namprd03.prod.outlook.com (10.161.214.24) with Microsoft SMTP Server (TLS) id 15.1.293.16; Tue, 13 Oct 2015 11:31:45 +0000 Received: from BY2FFO11FD005.protection.gbl (2a01:111:f400:7c0c::126) by BLUPR0301CA0025.outlook.office365.com (2a01:111:e400:5259::35) with Microsoft SMTP Server (TLS) id 15.1.293.16 via Frontend Transport; Tue, 13 Oct 2015 11:31:44 +0000 Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD005.mail.protection.outlook.com (10.1.14.126) with Microsoft SMTP Server (TLS) id 15.1.293.9 via Frontend Transport; Tue, 13 Oct 2015 11:31:44 +0000 Received: from hongbo.ap.freescale.net (hongbo.ap.freescale.net [10.193.20.96]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id t9DBVOFo009638; Tue, 13 Oct 2015 04:31:41 -0700 From: To: Date: Tue, 13 Oct 2015 19:13:10 +0800 Message-ID: <1444734798-29063-7-git-send-email-hongbo.zhang@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1444734798-29063-1-git-send-email-hongbo.zhang@freescale.com> References: <1444734798-29063-1-git-send-email-hongbo.zhang@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD005; 1:NinaQpU5/DoVd1skAcUR9YBp++MPKiZi4oAwllLsKPbpWRFuuz+ukiKcWdO4qctRHnu+Uu8xupsmz4ztsEPz/WLrJCOumq6eDUCv4mw0nV8BVXRTBKY1TAMVb25GB/Ko/ALeZ09SKDMwYjWNZi/xLHFyLgEFTE1L02K4Yed6kOCDp99Ay84N1cgxECi20UlHYfE9obwyI/2HXX7Q091thN8r0e+8hBgB48kgM7q9s3npMWPKWc8CdNJyU3Ff6PeCGNLa5QU9/kYJCQB4DFiXW/CcvFAlajsISjAsD7cJHeqoo4lDTWxgiKXCVlaPC1muYh7NDuuGMvT1B5Ho5mddRNX4IOfC4RlaZxUDqdwfEQJCr//R/LeQwPrECbMepqEnyQ/4G+PlBZ+oKe4z5Lt6zQ== X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(48376002)(5007970100001)(189998001)(81156007)(86362001)(50986999)(2950100001)(19580395003)(87936001)(2351001)(6806005)(33646002)(77096005)(36756003)(19580405001)(47776003)(104016004)(50226001)(105606002)(229853001)(86152002)(11100500001)(92566002)(5003940100001)(50466002)(97736004)(46102003)(5001960100002)(85426001)(110136002)(64706001)(76176999)(5008740100001)(106466001)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR0301MB1276; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1276; 2:WEs/9Wzd0cBDH+uQmPu4EwfaMPFgrsrr5l9K4CSrFAl5UTG+IynNgEBLFaQBJCTOHhimmu89bL9z0jg21WABH1hkvLKC5vr6YkQ5b8ZRq4b8LylFQ8gXVDtKylau1jMY5WihG/LIpqGVVUE5v5CxBaCK6GcMVz9WjuxbvKiBOho=; 3:I01gWhiWkULZyS6C1+6G0GKI4xRmadBAUtnoaWE6yJ630LbdxJSiYHxftCHQoPqdUiNoEq+gXYUETJWCYKypvigojhKz8BNoQSzJrAI1gKnmrn3MHbuKUdIRbPscP1ijqzTAbQoKqklc79ofdFU2wJY5ajplXkvAnrOWCKwvQo7iCkeN5R8W8tVMeUJCFwjV9QQtpMDm26jMuoWsesZH4yNli6zoWBTKt+ZpE8/i5AQ=; 25:4cyD00IKqTKPrC/RbDGHYpD2mN4pfm2a3LpmoLCg2ys+cO04IKy+/frZcZ4I1TUvDyUpX3MRE29JWolIptagFjJ2Go/o6jU9p1jujo2Dn4UeCajzRcXgBR5KzULB1rZvlwGjGCNHl8/Y1COvlNPe0whuCX+W1bwnrUvAHFm2TsjYazh7YPCTTc0lKmc8etQj8UjJ3ts6xSPU6lMTCz1+QfZJgJISAzXSk8a/Pw88m+xuOfe2ahM7D+1rSXw+kXP8Hbsi575/h1J1XXk+jyj9jA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1276; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1276; 20:6Q0wfX4qXy91ZmTBB+QlUiolXsM/Mz8ipcJGo7lb4hSZmYpuJCIz2FV4VA9gqN5u08olLwebfaNq4gsVzNNJrulpZDwmfkNBAhbsVnIAclGYLbEzz7GZjwFOdwiUb/wmPNqYTY8Au7LdwmPO/pcMq5Lbl/mxjZyLcbOhZ5OeY0dst2Qo9GWv3oliQkCivtKYvWhS9aP9mIAUyNboCt5FcqBSw8Ck3Pj702j3ikbP3p9qCxL5VEJoW6bS2DFKHGGUBulwiFdB/UOTYII29KxqayAlJk1kTlIrwWy5/AQV0LN53rh8OXSDGo+u/lI1ZjH2fwrqGshJNMZIsqhDMSFrMFGwZc5IgrS7mih0eQzGwu0=; 4:gYIcaiGaVPja8Gj96OwCCpHQNuQwwxfRK/X9zXZ6MJV+lH+eworFI0qGjXM6Fych43WfHXMWjqNR7OkpenOR3b2kbxDjH/K5ldkTdCTRo4NWzKNq5Hq27lf9PGaCGUa6NQdw+oE9ftqEAI29QZJo3056Y7YuUuUh0Gr0qX0EB7sIwMvRabT/w/tJZQ+Vm76OOou2q9JOJ/DBg6jUoWoNLCPLMFRPxpUgrOHEfVGZ+mfGTCAw/UoNMO6H5KSVwLYIXF7jzAVmSeGOtBAcggh2qbbZvqCp1dl2J/XXOeU6uUNb6Xzv4lfwnHIPmfUf1Xk7dY4wEFxyib2y2E1Ard5QKs5hCA190C0ouvHCAY1XUBM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001); SRVR:CY1PR0301MB1276; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0301MB1276; X-Forefront-PRVS: 07283408BE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB1276; 23:KwO0a79nNP3OIlMSVid70oUmyi9xAdBZJN5Evdp?= =?us-ascii?Q?mCWH8blBmtbfydG5wkj3N24tz4UnYuKEhDpe49eOr0ylh6D35zKoCUXPuu8m?= =?us-ascii?Q?F1auUqyPNucMIDHS0DxUhhbrlkUb0HEc6UWhB9LS8j70/t27wAtJLCHaYSlw?= =?us-ascii?Q?exMwWdOoHpb5IiDOT1sB/qVU3HmgIBEcctkE37tjRPX2mTRYvr3x7tpKH2lq?= =?us-ascii?Q?PSBeITo9omAEkYOSQkpS2vLnNGcAvvC1v8wwDfz4JFGFToVtc5vefT4fnl6b?= =?us-ascii?Q?c0J3MlesrrNOHV0+Iyua03A7n3XTy8VzR1PNZnUxV1GeKTUDbV5LXjgdPg5w?= =?us-ascii?Q?N3KApqhQV+GiQ+s/hylbxzij0CHEQpywstBVvhaHCPs9gb3ojzUOjeExg5T6?= =?us-ascii?Q?fRmI0phAFudBtIvYtbfZYAUaYDcnYHpkQmk5JW7AEZTTArdh+dm2/1yNY62K?= =?us-ascii?Q?gqt3vxqofLFYgc1Ia1m958z5JPy/CSbciHZcI4wAMxACA5N4uS/jBXqpMenG?= =?us-ascii?Q?DjkSW5hf6ZFCMTxp/Icr1rnEooydmbkoQEv7w1Z/GuIBwSKQ0bsywvyxxSEo?= =?us-ascii?Q?OtxEKdP6Qrg5DrLGKo3shubvzPnQz1+qWUn4Lc5f7X0smUcVBzFGJ9iAZE/t?= =?us-ascii?Q?xVRb1k5gREOqPHA8/719hKdIrFWISudgXg0ffKEYfSiuFGC+y3WbJgAmzPxX?= =?us-ascii?Q?y8pTim2kY2ykKFSiNIWtBGXoYYUTgFAuMT5X8uw4nCYkCGxYGtzWmv17T4Sz?= =?us-ascii?Q?M4amoKYYuRvOwLq+mtg6zUN8+6qLdHYc950yq5n4agJmLUKpeItIShHMlFtu?= =?us-ascii?Q?1D4KTBylPzeyXaMSXFyQxjzBHDbzSd0zdeLdu+3BcUHK9sPER59IhUT+3gkE?= =?us-ascii?Q?9xbFnrR2hYwBGRTZYHHTrI0yC/yZnn4mqavdVbk0uF1XFi4eWj36f/2yk9RY?= =?us-ascii?Q?BFY7YwbGib9NpZ7im/jtgx4aPCubEFjnuu9h2vFwPvaN9Fu7JlLtSPYXrlB9?= =?us-ascii?Q?jf7yM2ozIcgIv7cL4qFy9I4S63crzICLURqvJJSDahC5Swem/aA8k1mpXJP0?= =?us-ascii?Q?MfWsts3iCVVgggV8g7eB434hKsU8y0eG9HTh9SmxjiExHlTK47MiBFnOvaZ3?= =?us-ascii?Q?uo94+K1VRHr0=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1276; 5:3ERt7akn46+v/bN/dzXZm6Cm6dlfYDSbi0fTY0VHKlz/1J7DyUf1NLHdXMWM4zEC5tNl5q28o+/iG1weqFTHA+dF86gpLMUyqQjdgwF+KKCLUfJ4dLXGxsEDsJNRdIZky1d+fAnxMC1mQE77QjLU0Q==; 24:QpsC4QFlhg3Hfbidubjm0Bo9x7dUiseu5pYtLPD1KREVlX+y0ItnnEW8hexPn7zqViE7vhmQm6K5pvFxfk+oSuFNSe2q3YrSrYAY3ZGzuwQ=; 20:suQ/KOAipaOFnBbjpWuunkbBVZYeE4aXD9PpaGuG8IP1+F6Vea2n3WDE02UWCZwjQtjIE0p+uylkC/R6bk3rhg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2015 11:31:44.4950 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB1276 X-Topics: patch Cc: petri.savolainen@nokia.com, stuart.haslam@arm.com Subject: [lng-odp] [API NEXT PATCH v7 06/14] api: cpu: add new API to get CPU max 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.173 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 This patch adds a new API odp_cpu_hz_max() to get the max frequency of the CPU on which the progeress is running. The previous odp_cpu_hz() should return the current frequency and will be adapted later. Signed-off-by: Hongbo Zhang --- include/odp/api/cpu.h | 9 ++++++ platform/linux-generic/odp_system_info.c | 48 ++++++++++++++------------------ 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/include/odp/api/cpu.h b/include/odp/api/cpu.h index f8873dd..96f7d77 100644 --- a/include/odp/api/cpu.h +++ b/include/odp/api/cpu.h @@ -75,6 +75,15 @@ const char *odp_cpu_model_str_id(int id); uint64_t odp_cpu_hz(void); /** + * Maximum CPU frequency in Hz + * + * Returns maximum frequency of this CPU + * + * @return CPU frequency in Hz + */ +uint64_t odp_cpu_hz_max(void); + +/** * Current CPU cycle count * * Return current CPU cycle count. Cycle count may not be reset at ODP init diff --git a/platform/linux-generic/odp_system_info.c b/platform/linux-generic/odp_system_info.c index ea1f337..55f5753 100644 --- a/platform/linux-generic/odp_system_info.c +++ b/platform/linux-generic/odp_system_info.c @@ -121,36 +121,25 @@ static int cpuinfo_x86(FILE *file, odp_system_info_t *sysinfo) { char str[1024]; char *pos; - double mhz = 0.0; - int model = 0; - int count = 2; - - while (fgets(str, sizeof(str), file) != NULL && count > 0) { - if (!mhz) { - pos = strstr(str, "cpu MHz"); - if (pos) { - sscanf(pos, "cpu MHz : %lf", &mhz); - count--; - } - } - - if (!model) { - pos = strstr(str, "model name"); - if (pos) { - int len; - pos = strchr(str, ':'); - strncpy(sysinfo->model_str[0], pos + 2, - sizeof(sysinfo->model_str[0])); - len = strlen(sysinfo->model_str[0]); - sysinfo->model_str[0][len - 1] = 0; - model = 1; - count--; - } + double ghz = 0.0; + int id = 0; + + while (fgets(str, sizeof(str), file) != NULL && id < MAX_CPU_NUMBER) { + pos = strstr(str, "model name"); + if (pos) { + pos = strchr(str, ':'); + strncpy(sysinfo->model_str[id], pos + 2, + sizeof(sysinfo->model_str[id])); + + pos = strchr(sysinfo->model_str[id], '@'); + *(pos - 1) = '\0'; + if (sscanf(pos, "@ %lfGHz", &ghz) == 1) + sysinfo->cpu_hz[id] = (uint64_t)(ghz * 1000000000.0); + + id++; } } - sysinfo->cpu_hz[0] = (uint64_t)(mhz * 1000000.0); - return 0; } @@ -379,6 +368,11 @@ uint64_t odp_cpu_hz(void) return odp_global_data.system_info.cpu_hz[0]; } +uint64_t odp_cpu_hz_max(void) +{ + return odp_global_data.system_info.cpu_hz[0]; +} + uint64_t odp_sys_huge_page_size(void) { return odp_global_data.system_info.huge_page_size;