Received: by 10.223.164.202 with SMTP id h10csp956365wrb; Tue, 7 Nov 2017 18:25:42 -0800 (PST) X-Google-Smtp-Source: ABhQp+Q125uz6czwHQzt+hZaC0oHLQ4ZUHRC8dywoZ0tKuUAiiPgWcYsFBmRcgDKuYZlE8x1T/vv X-Received: by 10.84.246.9 with SMTP id k9mr725454pll.234.1510107942833; Tue, 07 Nov 2017 18:25:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510107942; cv=none; d=google.com; s=arc-20160816; b=p2mOrkcGrU2u6I4rY7jR1kAyZ2Q4+5iUKmHS7WEmCLQOUbyNqOot5RoFjnySIFFAwO kvderE2NendnPPvftfcH2bGd4Syt/j/Cgw7PLz/dXFi5BB5yDzy9efmc6iYoRzkOw4zp MPyOXRXQp6kPs53P0/jqfL7/j1j3WHDoXktAspL/T320fGMFFCRV0uBsSKqJ+fh2UNK3 7BbwUwE79BjTJqlpBuH0UnRm/nV6NUoJ9SbW03P2I3SO0f6vSoh1c0cb+EWHdFSmhcnB 9iKqo4sR+YrbARqTa9S/JCfp4Zd3C6Jrp0Z8UK3SyWG1qjWACMCRAnviySIkzopfGlwl 0ubg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=lPJ5TynkklnKCgrIKohHuUUbV53tVOJMlub0GRfBKKw=; b=g8KORMktbZGf/7wL1AqKL8Hyni7ieiB/CmEH7KtqaotN2KqWu6mLdHvU9TYZcjWnXw RciJi60o45cYT524WUPa+FFEPd6j/GWaIiGBhtuvPS59fahEmljD385PBZxlRn8UHKF2 7QH+vs2qkiyBEFQgGuoBgMjICdBBPvXUeCcR/B764ji7n5OdiLOumb4oUHlrvtUnZul0 wCpnCBBFXIsNZ102RH3mb9vP+V8eOPdzIlLiAV1S5vZmYuD2FB5jKEfHcPbMk/bXELCZ FfP7Xmc4QS0OIgvoBOH/eIUvWcj8F8CJcOHjKKPQA2CXLxiZur8HQpxktx3oSaE7dYD3 +9WQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h185si2427231pgc.164.2017.11.07.18.25.29; Tue, 07 Nov 2017 18:25:42 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755556AbdKGSUj (ORCPT + 91 others); Tue, 7 Nov 2017 13:20:39 -0500 Received: from osg.samsung.com ([64.30.133.232]:41553 "EHLO osg.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751787AbdKGSUh (ORCPT ); Tue, 7 Nov 2017 13:20:37 -0500 Received: from localhost (localhost [127.0.0.1]) by osg.samsung.com (Postfix) with ESMTP id ECE2628C33; Tue, 7 Nov 2017 10:20:36 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at dev.s-opensource.com Received: from osg.samsung.com ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0CTecvfdSeAc; Tue, 7 Nov 2017 10:20:35 -0800 (PST) Received: from [192.168.1.87] (c-24-9-64-241.hsd1.co.comcast.net [24.9.64.241]) by osg.samsung.com (Postfix) with ESMTPSA id 0976828C29; Tue, 7 Nov 2017 10:20:35 -0800 (PST) Subject: Re: [PATCH v2] cpupower : Fix cpupower working when cpu0 is offline To: Abhishek , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Shuah Khan , Thomas Renninger References: <20171107072005.48034-1-huntbag@linux.vnet.ibm.com> From: Shuah Khan Message-ID: <63bf8c5d-2a7e-484b-8d13-81bb6bef175d@osg.samsung.com> Date: Tue, 7 Nov 2017 11:20:33 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/07/2017 01:58 AM, Abhishek wrote: > Hi, > > Can you have a look at it? > > Thanks and Regards, > > Abhishek Goel > > System Engineer > > IBM India Pvt. Ltd. > Please refrain from top posting on kernel email thread. In-lining comments and bottom posting is the norm. > > On 11/07/2017 12:50 PM, Abhishek Goel wrote: >> cpuidle_monitor used to assume that cpu0 is always online which is not >> a valid assumption on POWER machines. This patch fixes this by searching >> for the first online cpu and uses it, instead of always using cpu0 for >> monitoring which may not be online. >> >> Signed-off-by: Abhishek Goel >> --- >> v2: Commit message updated. >> --- >>   tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c | 14 +++++++++++--- >>   1 file changed, 11 insertions(+), 3 deletions(-) >> >> diff --git a/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c b/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c >> index 1b5da00..adacf99 100644 >> --- a/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c >> +++ b/tools/power/cpupower/utils/idle_monitor/cpuidle_sysfs.c >> @@ -130,15 +130,23 @@ static struct cpuidle_monitor *cpuidle_register(void) >>   { >>       int num; >>       char *tmp; >> +    int first_online_cpu; >> + >> +    for (num = 0; num < cpu_count; num++) { >> +        if (cpupower_is_cpu_online(num)) >> +            break; >> +    }; >> +    first_online_cpu = num; Isn't it simpler to use sched_getcpu()n instead and use that instead of walking the sysfs nodes since assumption is made that the idle state count is the same for all CPUs >> >>       /* Assume idle state count is the same for all CPUs */ >> -    cpuidle_sysfs_monitor.hw_states_num = cpuidle_state_count(0); This simply be: cpuidle_sysfs_monitor.hw_states_num = cpuidle_state_count(sched_getcpu); >> +    cpuidle_sysfs_monitor.hw_states_num = >> +        cpuidle_state_count(first_online_cpu); >> >>       if (cpuidle_sysfs_monitor.hw_states_num <= 0) >>           return NULL; >> >>       for (num = 0; num < cpuidle_sysfs_monitor.hw_states_num; num++) { >> -        tmp = cpuidle_state_name(0, num); >> +        tmp = cpuidle_state_name(first_online_cpu, num); >>           if (tmp == NULL) >>               continue; >> >> @@ -146,7 +154,7 @@ static struct cpuidle_monitor *cpuidle_register(void) >>           strncpy(cpuidle_cstates[num].name, tmp, CSTATE_NAME_LEN - 1); >>           free(tmp); >> >> -        tmp = cpuidle_state_desc(0, num); >> +        tmp = cpuidle_state_desc(first_online_cpu, num); >>           if (tmp == NULL) >>               continue; >>           strncpy(cpuidle_cstates[num].desc, tmp,    CSTATE_DESC_LEN - 1); > thanks, -- Shuah From 1583432358807942595@xxx Tue Nov 07 18:19:32 +0000 2017 X-GM-THRID: 1583404291010222796 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread