Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp54418pxa; Thu, 13 Aug 2020 19:18:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwSex0D6kk+wVP79b4tUMiaRtcBlgFMqpUQdLAFtOaPlA8JF+kTQZAbdcbFxuCcdx7NCInv X-Received: by 2002:a17:906:b59:: with SMTP id v25mr367199ejg.436.1597371492753; Thu, 13 Aug 2020 19:18:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597371492; cv=none; d=google.com; s=arc-20160816; b=kKVkFeIclQQQGQZJ+O5tLWfKUa0LZOmrOs2U7UWbH5r86qG/QHw7hgGQ1FiysbvQF4 JEhfzWQ9vf+IxzdE9j7eUN0ZR0ILpKXE8Ma8nNBa3sx82eQu0THTYBuWdoY5XWIM10wx bEasrnlNIN8QA/oUILdt5Wm5rwqXacjABHnw2eWBOCvC140vNH1n0MebMVFkudmvYrsc iS4W0/TJ+N96iABkYUGcJ3TA0WxBsA7TaBZLLiy/3X+xK+kmMMU7kKT7Xf2FNETPlJ2f E144TvYfjdWuoiStH2S7ypBs9OKjrwksIsgplDHUGBoFpCpd67/UoU4csQK3SmA0R5Vp jSFQ== 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; bh=QGj+ohbefiA1t42Ai4h16QcQbgvKrHefOYxqvkFAapM=; b=nuPdQjwH6NtFmlnSHkVWMtagIvsayBdUJSAuB/jHLEfnMwOUTrw1rgfFZSwgWl2K8N 8sIXgOtbJAlcKG+DBPduIHGQrS96nPp1BVxOAFx+qWfAGKYI6PfYa5p/s7LirAzkc1BE bfy0xz1zUfxvlMTyOMLDFRSqrDLIrouLkDhHDx3LSfwLzZ1WR2DOZq84kPvE4v+MUAaJ S2AuHbxfOR0oNjSuiQbb8ujBQ18bmqJP22NTSiQNa8JJd8yvxBKiNt82joQY8X7k5THH y4ONrXYGzTzyg1Uj5Ozy02oaH7MWrQFKr3hTPFCr86n3zIAnrq+0qi5nGmPJRMEn4qWE LYwg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rh7si4560519ejb.101.2020.08.13.19.17.47; Thu, 13 Aug 2020 19:18:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726576AbgHNCRN (ORCPT + 99 others); Thu, 13 Aug 2020 22:17:13 -0400 Received: from mail1.windriver.com ([147.11.146.13]:65530 "EHLO mail1.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726522AbgHNCRN (ORCPT ); Thu, 13 Aug 2020 22:17:13 -0400 Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail1.windriver.com (8.15.2/8.15.2) with ESMTPS id 07E2H8i0010343 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Thu, 13 Aug 2020 19:17:09 -0700 (PDT) Received: from [128.224.162.157] (128.224.162.157) by ALA-HCA.corp.ad.wrs.com (147.11.189.50) with Microsoft SMTP Server id 14.3.487.0; Thu, 13 Aug 2020 19:17:08 -0700 Subject: Re: [PATCH] tools/power turbostat: call pread64 in kernel directly To: Len Brown CC: Linux PM list , Linux Kernel Mailing List References: <20200717060849.12469-1-liwei.song@windriver.com> From: Liwei Song Message-ID: <52f16995-6d2d-fa7d-ed5e-682db3461d03@windriver.com> Date: Fri, 14 Aug 2020 10:17:06 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org with multilib lib32 support, the rootfs will be 32-bit, the kernel is still 64-bit, in this case run turbostat will failed with "out of range" error. Thanks, Liwei. On 8/14/20 05:43, Len Brown wrote: > Huh? > > On Fri, Jul 17, 2020 at 2:09 AM Liwei Song wrote: >> >> with 32-bit rootfs, the offset may out of range when set it >> to 0xc0010299, define it as "unsigned long long" type and >> call pread64 directly in kernel. >> >> Signed-off-by: Liwei Song >> --- >> tools/power/x86/turbostat/turbostat.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c >> index 33b370865d16..4c5cdfcb5721 100644 >> --- a/tools/power/x86/turbostat/turbostat.c >> +++ b/tools/power/x86/turbostat/turbostat.c >> @@ -33,6 +33,7 @@ >> #include >> #include >> #include >> +#include >> >> char *proc_stat = "/proc/stat"; >> FILE *outf; >> @@ -381,11 +382,11 @@ int get_msr_fd(int cpu) >> return fd; >> } >> >> -int get_msr(int cpu, off_t offset, unsigned long long *msr) >> +int get_msr(int cpu, unsigned long long offset, unsigned long long *msr) >> { >> ssize_t retval; >> >> - retval = pread(get_msr_fd(cpu), msr, sizeof(*msr), offset); >> + retval = syscall(SYS_pread64, get_msr_fd(cpu), msr, sizeof(*msr), offset); >> >> if (retval != sizeof *msr) >> err(-1, "cpu%d: msr offset 0x%llx read failed", cpu, (unsigned long long)offset); >> -- >> 2.17.1 >> > >