From: Borislav Petkov <bp@amd64.org>
To: Matthew Garrett <mjg@redhat.com>
Cc: "cpufreq@vger.kernel.org" <cpufreq@vger.kernel.org>,
"davej@redhat.com" <davej@redhat.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Langsdorf, Mark" <mark.langsdorf@amd.com>,
"Herrmann3, Andreas" <Andreas.Herrmann3@amd.com>
Subject: Re: [PATCH v4 3/7] acpi-cpufreq: Add support for disabling dynamic overclocking
Date: Fri, 22 Jul 2011 16:41:43 +0200 [thread overview]
Message-ID: <20110722144143.GA26010@aftab> (raw)
In-Reply-To: <1311007062-2050-4-git-send-email-mjg@redhat.com>
On Mon, Jul 18, 2011 at 12:37:38PM -0400, Matthew Garrett wrote:
> One feature present in powernow-k8 that isn't present in acpi-cpufreq is
> support for enabling or disabling AMD's core performance boost technology.
> This patch adds that support to acpi-cpufreq, but also extends it to allow
> Intel's dynamic acceleration to be disabled via the same interface. The
> sysfs entry retains the cpb name for compatibility purposes.
>
> Signed-off-by: Matthew Garrett <mjg@redhat.com>
> ---
> drivers/cpufreq/acpi-cpufreq.c | 191 ++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 191 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
> index 298d451..0a92277 100644
> --- a/drivers/cpufreq/acpi-cpufreq.c
> +++ b/drivers/cpufreq/acpi-cpufreq.c
> @@ -76,6 +76,107 @@ static struct acpi_processor_performance __percpu *acpi_perf_data;
> static struct cpufreq_driver acpi_cpufreq_driver;
>
> static unsigned int acpi_pstate_strict;
> +static bool cpb_enabled, cpb_supported;
> +static struct msr __percpu *msrs;
> +
> +static bool cpb_state(unsigned int cpu)
> +{
> + struct acpi_cpufreq_data *data = per_cpu(acfreq_data, cpu);
> + u32 lo, hi;
> + u64 msr;
> +
> + switch (data->cpu_feature) {
> + case SYSTEM_INTEL_MSR_CAPABLE:
> + rdmsr_on_cpu(cpu, MSR_IA32_MISC_ENABLE, &lo, &hi);
> + msr = lo | ((u64)hi << 32);
> + return !(msr & MSR_IA32_MISC_ENABLE_TURBO_DISABLE);
> + case SYSTEM_AMD_MSR_CAPABLE:
> + rdmsr_on_cpu(cpu, MSR_K7_HWCR, &lo, &hi);
> + msr = lo | ((u64)hi << 32);
> + return !(msr & BIT(25));
> + }
> + return false;
> +}
You need to handle the case where boosting is not even supported by the
CPU. For example, a Barcelona CPU does not boost but I get
$ cat /sys/devices/system/cpu/cpu0/cpufreq/boost
1
This is because this bit in the register is simply reserved and it
countains some random value (0 in this case).
What you need to do is look at the cpu_enabled variable which is caching
the current boost state. Besides, you don't want to do a MSR read
everytime you 'cat' the sysfs entry. See how powernow-k8 does it. I'm
guessing with Intel it should be similar.
Thanks.
--
Regards/Gruss,
Boris.
Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
GM: Alberto Bozzo
Reg: Dornach, Landkreis Muenchen
HRB Nr. 43632 WEEE Registernr: 129 19551
next prev parent reply other threads:[~2011-07-22 14:41 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-18 16:37 [PATCH v4] Move modern AMD cpufreq support to acpi-cpufreq Matthew Garrett
2011-07-18 16:37 ` [PATCH v4 1/7] x86: Add AMD HW_PSTATE cpu feature bit and MSRs Matthew Garrett
2011-07-18 16:37 ` [PATCH v4 2/7] acpi-cpufreq: Add support for modern AMD CPUs Matthew Garrett
2011-07-18 16:37 ` [PATCH v4 3/7] acpi-cpufreq: Add support for disabling dynamic overclocking Matthew Garrett
2011-07-22 14:41 ` Borislav Petkov [this message]
2011-07-22 14:49 ` Matthew Garrett
2011-07-24 3:06 ` Andy Lutomirski
2011-07-24 3:28 ` Matthew Garrett
2011-07-24 3:15 ` Andy Lutomirski
2011-07-24 3:33 ` Matthew Garrett
2011-07-24 3:42 ` Andrew Lutomirski
2011-07-24 3:49 ` Matthew Garrett
2011-07-24 9:36 ` Borislav Petkov
2011-07-18 16:37 ` [PATCH v4 4/7] ACPI: Add fixups for AMD P-state figures Matthew Garrett
2011-07-18 16:37 ` [PATCH v4 5/7] cpufreq: Add compatibility hack to powernow-k8 Matthew Garrett
2011-07-18 16:37 ` [PATCH v4 6/7] cpufreq: Remove support for hardware P-state chips from powernow-k8 Matthew Garrett
2011-07-22 14:43 ` Borislav Petkov
2011-07-18 16:37 ` [PATCH v4 7/7] cpufreq: Add boost alias to cpb Matthew Garrett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110722144143.GA26010@aftab \
--to=bp@amd64.org \
--cc=Andreas.Herrmann3@amd.com \
--cc=cpufreq@vger.kernel.org \
--cc=davej@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.langsdorf@amd.com \
--cc=mjg@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox