From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5462DC433E0 for ; Thu, 28 Jan 2021 17:13:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 068E464E2C for ; Thu, 28 Jan 2021 17:13:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232797AbhA1RNW (ORCPT ); Thu, 28 Jan 2021 12:13:22 -0500 Received: from mx2.suse.de ([195.135.220.15]:45180 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231630AbhA1RLS (ORCPT ); Thu, 28 Jan 2021 12:11:18 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 66168AD2B; Thu, 28 Jan 2021 17:10:37 +0000 (UTC) Date: Thu, 28 Jan 2021 18:10:33 +0100 From: Borislav Petkov To: 'Artem Bityutskiy' Cc: Doug Smythies , "'Rafael J. Wysocki'" , 'Len Brown' , 'Linux PM Mailing List' Subject: Re: [PATCH] tools/power/turbostat: fix compatibility with older kernels Message-ID: <20210128171033.GC5685@zn.tnic> References: <20210127132444.981120-1-dedekind1@gmail.com> <20210127185957.GD8115@zn.tnic> <002201d6f4e9$1e9f6c10$5bde4430$@net> <20210127203346.GE8115@zn.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210127203346.GE8115@zn.tnic> Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On Wed, Jan 27, 2021 at 09:33:46PM +0100, Borislav Petkov wrote: > Yeah, lemme do a proper patch tomorrow. Artem, how's that? --- diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c index 389ea5209a83..a7c4f0772e53 100644 --- a/tools/power/x86/turbostat/turbostat.c +++ b/tools/power/x86/turbostat/turbostat.c @@ -1834,12 +1834,15 @@ int get_mp(int cpu, struct msr_counter *mp, unsigned long long *counterp) int get_epb(int cpu) { char path[128 + PATH_BYTES]; + unsigned long long msr; int ret, epb = -1; FILE *fp; sprintf(path, "/sys/devices/system/cpu/cpu%d/power/energy_perf_bias", cpu); - fp = fopen_or_die(path, "r"); + fp = fopen(path, "r"); + if (!fp) + goto msr_fallback; ret = fscanf(fp, "%d", &epb); if (ret != 1) @@ -1848,6 +1851,11 @@ int get_epb(int cpu) fclose(fp); return epb; + +msr_fallback: + get_msr(cpu, MSR_IA32_ENERGY_PERF_BIAS, &msr); + + return msr & 0xf; } void get_apic_id(struct thread_data *t) --- Thx. -- Regards/Gruss, Boris. SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg