Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1746387ybh; Thu, 16 Jul 2020 23:10:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxqFZCxp9vZgRQ8HQHGQ9/5Ac/pDaEf652UejCXcBGApVkYsM5mfsqmPeEwJ4wc3jRlOKu+ X-Received: by 2002:a17:906:8595:: with SMTP id v21mr7334375ejx.333.1594966224635; Thu, 16 Jul 2020 23:10:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594966224; cv=none; d=google.com; s=arc-20160816; b=VKP1TJuYm4EPu0XSWLf4x7K0hTO+QjMao/d2womOJ3lJc5q0e/A0xXrOGLJB8lE/jb 2dsQxLgLf+Y7+xQ9rV2khkV+0iMfpjBKKDH92cP2dQg+19S1TImcZ0HDGZGXebypp6yy sHAvDXYE/mEO/EdTbQFJscDJfgkfvYOvmJd2W4igLmT+vrkD1S3qVUTGvvS1h0QBdbBl +AEiOEenh8hEW81n+7sfYQbYXSNwJz5ofh2RoUg02Z7wmirTz12xuMF/0Gb38XxXloaC h/a8TcVb72Qvh74WCJHrRrNZ2VPLhAmeHiGrw3Sn2RPqxcNOmmMnwM8nm+p7ptxjZfR3 v/+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=Q66/jJwJ7V3dk9KH/JslDbyeticK8e90Ad0BG8Qa0GA=; b=AKVnYE8BG7Ch0OwQSyfXrzTwC5bzptAEuel8QQvnWAg4pC5bQuw3hoBFquwOP02fAD kTEBAVQ73avdKEJpyJSQmdu9XnC9uK9O/asPQf0Au3o5+vlW/LiMR05marIxeL0nf6Cr NYUh65KavyPRq8HXpauwzTFFjk89HVcqxjWacWYRE/rikm6TXNSpzQ/+KoF5c/ZagUvF +tWcEvg9cKg9QBRU1gd603UilRP3OARRr2sqvXZSo+wMu6LmGZkUc885Z+dhcNi2JGoF b6g/Eme76XcZ++AGVct5lZ69U6385B9NJev3a+Wju8jF53p/ux0O9w1Bh9WyNM3Wvc40 vPJQ== 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 c9si76074ejx.552.2020.07.16.23.10.01; Thu, 16 Jul 2020 23:10:24 -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 S1726359AbgGQGJh (ORCPT + 99 others); Fri, 17 Jul 2020 02:09:37 -0400 Received: from mail5.windriver.com ([192.103.53.11]:60090 "EHLO mail5.wrs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725904AbgGQGJh (ORCPT ); Fri, 17 Jul 2020 02:09:37 -0400 Received: from ALA-HCA.corp.ad.wrs.com (ala-hca.corp.ad.wrs.com [147.11.189.40]) by mail5.wrs.com (8.15.2/8.15.2) with ESMTPS id 06H68dvf000744 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Thu, 16 Jul 2020 23:09:10 -0700 Received: from pek-lpggp3.wrs.com (128.224.153.76) by ALA-HCA.corp.ad.wrs.com (147.11.189.40) with Microsoft SMTP Server id 14.3.487.0; Thu, 16 Jul 2020 23:08:53 -0700 From: Liwei Song To: Len Brown , CC: , Subject: [PATCH] tools/power turbostat: call pread64 in kernel directly Date: Fri, 17 Jul 2020 14:08:49 +0800 Message-ID: <20200717060849.12469-1-liwei.song@windriver.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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