Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp16638036rwd; Mon, 26 Jun 2023 12:54:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ49hEsypr/aMonQ9ZUoCVXlvuLz3HknCgxlXWdYxpPvWlrxLbxXWxh/e193ySVuYZgoTLhu X-Received: by 2002:a17:907:6e06:b0:98f:8481:24b3 with SMTP id sd6-20020a1709076e0600b0098f848124b3mr4380598ejc.37.1687809244444; Mon, 26 Jun 2023 12:54:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687809244; cv=none; d=google.com; s=arc-20160816; b=DKdagS8L31AwAG+2ddyObjJnEPc4XsFrDdSpPD8th0bjSbSXDBQDRYqOASx4ckFNlX EFlSIo0IbxbVIYeSYO6UMkr9+5uAuUCuZozasPRxlN9I5NSJ1eorDBI240Q84SkBuoLL MPZIh69necguvgCv65MSoxWm8mtcbRztPrJA3EAOm9m5pKWQLamV7OTP+IjS5KCmK/up fVWqRxDhq+Sh3OVeAdhc6yGHUD4Q970B8bnNh8limXJZlPJlxt2bZ8ct/TvzshMwfd8L qp+7sqmaG4xgq7ts5IINu0gL/kVxxt6hd9Tg6spub70tafIpf7E8hfLEAux02vPqBqJh P5Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=fgwO9FveuTRtw6Vzxh5ooYrK950GIBP+MWCeX47Jb2Q=; fh=DiIElMtqHEKwZkZadZ++nuFYRe08Bjp5hmheEHZFpZ4=; b=TZoOrS9GleHMG1zcdLFkI4aDByWHo2PWNBHolKwIzcoq+qSvsfHreJG1fFZvfYaYr0 Hed0X/EnbIjNMa4LIuXFf67BHDZZ0S1KaPgEdox77OCWVa8x8PYIZa8/lGvh1+BArNTW PSpgYM5F99vW8Wbah54CPBOostl+Fg/SB68PQM3OiuQwGDmn8xuIpvkTxBJBGZhJRGsN 2sHs5EqTsI4Uj/P7tBpi7/3tBr94YWHZ0VUQXYqLHwtpgJivU5CB+KlfzCyHOAPah8nM UPZGYjMVhVY1pXqal1J3ToZR1aIcHuA2F18PvhwURTG6CXsXoMqV2DLlkGZxq/SSZuaG YmyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="N/cYv1Jl"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n10-20020a170906688a00b0098f99532db8si1569952ejr.667.2023.06.26.12.53.38; Mon, 26 Jun 2023 12:54:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="N/cYv1Jl"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229788AbjFZTg0 (ORCPT + 99 others); Mon, 26 Jun 2023 15:36:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45266 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229456AbjFZTgZ (ORCPT ); Mon, 26 Jun 2023 15:36:25 -0400 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0CEDD10DA for ; Mon, 26 Jun 2023 12:36:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687808185; x=1719344185; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=s2bBVzbs0mPzNnuPaqyoVSnWQrfPRKFxiCSlmw6qCH0=; b=N/cYv1Jl4LGlsxVLQs/5dL3FnWSVpJ/nTTO44q5xCQ9c1vwbLtxAr5V1 jOJd3r092ap9Ej9Qx61rPfbxDXBmgvKrPUfxPerzYIBLCTrEBOQUW7z1a hwj86Usw89n/PEqa9czVy9nYmpaqeRG31ybIAPNKdzmk2ru+NhCkPvptO /nETlooSWsYfjjdHgo7Ui0Xz+4GDHQKRNqnPRTWiQdcxY/0+A+9OO4w7z nxZFEoXZFr0euj1ugqRKWQH2w+1hcKh9g5cxX/b+7HnTGuCMW4R94Kr0I BP/foYvASDX05YfbCU+4jrp5r5ci+q7ePOdz1JVBf9H1LEoItE7obYTeQ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="351148343" X-IronPort-AV: E=Sophos;i="6.01,160,1684825200"; d="scan'208,223";a="351148343" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2023 12:36:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10753"; a="716270794" X-IronPort-AV: E=Sophos;i="6.01,160,1684825200"; d="scan'208,223";a="716270794" Received: from yjie-desk1.jf.intel.com ([10.24.96.120]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2023 12:36:23 -0700 From: Keyon Jie To: Thomas Gleixner , x86@kernel.org, linux-kernel@vger.kernel.org Cc: Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , Peter Zijlstra , Yair Podemsky , Keyon Jie Subject: [PATCH] x86/aperfmperf: Fix the fallback condition in arch_freq_get_on_cpu() Date: Mon, 26 Jun 2023 12:36:01 -0700 Message-Id: <20230626193601.9169-1-yang.jie@linux.intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From the commit f3eca381bd49 on, the fallback condition about the 'the last update was too long' have been comparing ticks and milliseconds by mistake, which leads to that the condition is met and the fallback method is used frequently. The change to compare ticks here corrects that and fixes related issues have been seen on x86 platforms since 5.18 kernel. Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217597 Fixes: f3eca381bd49 ("x86/aperfmperf: Replace arch_freq_get_on_cpu()") CC: Thomas Gleixner Signed-off-by: Keyon Jie --- arch/x86/kernel/cpu/aperfmperf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/aperfmperf.c b/arch/x86/kernel/cpu/aperfmperf.c index fdbb5f07448f..24e24e137226 100644 --- a/arch/x86/kernel/cpu/aperfmperf.c +++ b/arch/x86/kernel/cpu/aperfmperf.c @@ -432,7 +432,7 @@ unsigned int arch_freq_get_on_cpu(int cpu) * Bail on invalid count and when the last update was too long ago, * which covers idle and NOHZ full CPUs. */ - if (!mcnt || (jiffies - last) > MAX_SAMPLE_AGE) + if (!mcnt || (jiffies - last) > MAX_SAMPLE_AGE * cpu_khz) goto fallback; return div64_u64((cpu_khz * acnt), mcnt); -- 2.34.1