Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3115295pxj; Mon, 17 May 2021 18:09:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxodWE6Ej/AWmjR/8jqu8A1AMv293BpCNJqdJY43fnnmLrX2uHb7ZZymYoyNL6cyrQ7a00g X-Received: by 2002:a17:907:7848:: with SMTP id lb8mr3161054ejc.494.1621300194235; Mon, 17 May 2021 18:09:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621300194; cv=none; d=google.com; s=arc-20160816; b=ghoMimdVFWbAre877baEKE0Sgb0ErvSG0t32vGAAxGmmX/qLQCB7Rn3IJV4y9SA05Z KDXRcsX0DCb3aXfK3vfLDllPXpath2135GLWJV1o7P2fnH2X1UOFEMbuSKySINTL9Wmf xcaxYCa0YMek1NFaMUhYcWJyBZQfwf/mM/l01C/uMsFlllFcEBIeGn4fSEntk+xX2S5l F4MDJHBNuFdWND4fs0Nq2tdwALrO+dkhIg6TLlV91zSYmHmbh+kkQ4JHM0rbFOKcevxh JBlvSUpZiAaEaxRdp88ICl6QwPMdY6Z9GR/GJov5SfFVgw2p9mHdpYrM0Ya79MbFBDge VxRA== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZDG3q2mgv6qEdeVdogj8t62vTfMsBhOg1pGd/if1RH0=; b=Be1clowtAZnsTth29WxeE+32AYOhMoRv0PPjfnzzvAyX6e01caL09HmiC/Pmh26hsj 8U8DFO2Vqnlh8l9sXEb+O6rSbBqDTMdea3mgfY6au7ZdCyBfHiu/6igXTzKjEEBWwTr9 Fd+WAh4n+SK25ydxtzGMHD39Qryw0wfDt+xggi5tagCHMJPY1K2wXnSmlXhAaFr897qZ 2AUdaZXG2lhDuWH1FZY5gbpx20I1Xz7nkGS2hOsx4mMsgBj1uHcNk67Y0YIY212cYtex qC33EoncNCQ7yTAPkajkMNvMiFaMr7LZcN7RiQoJn2Dy2f6wwp1pxNbfD0NdStibb95B AI+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZziaBHx2; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m1si10116896eji.731.2021.05.17.18.09.30; Mon, 17 May 2021 18:09:54 -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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZziaBHx2; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239237AbhEQObF (ORCPT + 99 others); Mon, 17 May 2021 10:31:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:53770 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239426AbhEQO0R (ORCPT ); Mon, 17 May 2021 10:26:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7C0156128A; Mon, 17 May 2021 14:13:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1621260812; bh=HXBZL71tidJvpD5CLLWpiTgA238TwpQKleyRhzYVTMI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZziaBHx2o2RsEx95QptuZBkDBSvaVRWdl+MJKr0y9sk/iJnWZnL6Jku4pcEX73UdJ h1p/5ik/1BEgKVgyLuhY752ouDD+1WhG0NOCPdWyuiLzJvSr2lbQKQwVVS98Rv+dMh rxdZpSwR/075UDQbvZgeIjP8vwsqmjKRTysMAKYI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Srinivas Pandruvada , "Rafael J. Wysocki" Subject: [PATCH 5.11 010/329] cpufreq: intel_pstate: Use HWP if enabled by platform firmware Date: Mon, 17 May 2021 15:58:41 +0200 Message-Id: <20210517140302.398765394@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210517140302.043055203@linuxfoundation.org> References: <20210517140302.043055203@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rafael J. Wysocki commit e5af36b2adb858e982d78d41d7363d05d951a19a upstream. It turns out that there are systems where HWP is enabled during initialization by the platform firmware (BIOS), but HWP EPP support is not advertised. After commit 7aa1031223bc ("cpufreq: intel_pstate: Avoid enabling HWP if EPP is not supported") intel_pstate refuses to use HWP on those systems, but the fallback PERF_CTL interface does not work on them either because of enabled HWP, and once enabled, HWP cannot be disabled. Consequently, the users of those systems cannot control CPU performance scaling. Address this issue by making intel_pstate use HWP unconditionally if it is enabled already when the driver starts. Fixes: 7aa1031223bc ("cpufreq: intel_pstate: Avoid enabling HWP if EPP is not supported") Reported-by: Srinivas Pandruvada Tested-by: Srinivas Pandruvada Signed-off-by: Rafael J. Wysocki Cc: 5.9+ # 5.9+ Signed-off-by: Greg Kroah-Hartman --- drivers/cpufreq/intel_pstate.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c @@ -3053,6 +3053,14 @@ static const struct x86_cpu_id hwp_suppo {} }; +static bool intel_pstate_hwp_is_enabled(void) +{ + u64 value; + + rdmsrl(MSR_PM_ENABLE, value); + return !!(value & 0x1); +} + static int __init intel_pstate_init(void) { const struct x86_cpu_id *id; @@ -3071,8 +3079,12 @@ static int __init intel_pstate_init(void * Avoid enabling HWP for processors without EPP support, * because that means incomplete HWP implementation which is a * corner case and supporting it is generally problematic. + * + * If HWP is enabled already, though, there is no choice but to + * deal with it. */ - if (!no_hwp && boot_cpu_has(X86_FEATURE_HWP_EPP)) { + if ((!no_hwp && boot_cpu_has(X86_FEATURE_HWP_EPP)) || + intel_pstate_hwp_is_enabled()) { hwp_active++; hwp_mode_bdw = id->driver_data; intel_pstate.attr = hwp_cpufreq_attrs;