From: Huang Rui <ray.huang@amd.com>
To: "Yuan, Perry" <Perry.Yuan@amd.com>
Cc: "rafael.j.wysocki@intel.com" <rafael.j.wysocki@intel.com>,
"Limonciello, Mario" <Mario.Limonciello@amd.com>,
"viresh.kumar@linaro.org" <viresh.kumar@linaro.org>,
"Sharma, Deepak" <Deepak.Sharma@amd.com>,
"Fontenot, Nathan" <Nathan.Fontenot@amd.com>,
"Deucher, Alexander" <Alexander.Deucher@amd.com>,
"Huang, Shimmer" <Shimmer.Huang@amd.com>,
"Du, Xiaojian" <Xiaojian.Du@amd.com>,
"Meng, Li (Jassmine)" <Li.Meng@amd.com>,
"Karny, Wyes" <Wyes.Karny@amd.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 03/11] cpufreq: intel_pstate: use common macro definition for Energy Preference Performance(EPP)
Date: Mon, 5 Dec 2022 19:48:59 +0800 [thread overview]
Message-ID: <Y43aq2gMKnFRIhxh@amd.com> (raw)
In-Reply-To: <20221202074719.623673-4-perry.yuan@amd.com>
On Fri, Dec 02, 2022 at 03:47:11PM +0800, Yuan, Perry wrote:
> make the energy preference performance strings and profiles using one
> common header for intel_pstate driver, then the amd_pstate epp driver can
> use the common header as well. This will simpify the intel_pstate and
> amd_pstate driver.
>
> Signed-off-by: Perry Yuan <perry.yuan@amd.com>
> ---
> arch/x86/include/asm/msr-index.h | 4 ---
> drivers/cpufreq/intel_pstate.c | 37 +--------------------
> include/linux/cpufreq_common.h | 56 ++++++++++++++++++++++++++++++++
I don't find any specific reason why you have to use another common
cpufreq_common header instead of include/linux/cpufreq.h.
Thanks,
Ray
> 3 files changed, 57 insertions(+), 40 deletions(-)
> create mode 100644 include/linux/cpufreq_common.h
>
> diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
> index 4a2af82553e4..3983378cff5b 100644
> --- a/arch/x86/include/asm/msr-index.h
> +++ b/arch/x86/include/asm/msr-index.h
> @@ -472,10 +472,6 @@
> #define HWP_MAX_PERF(x) ((x & 0xff) << 8)
> #define HWP_DESIRED_PERF(x) ((x & 0xff) << 16)
> #define HWP_ENERGY_PERF_PREFERENCE(x) (((unsigned long long) x & 0xff) << 24)
> -#define HWP_EPP_PERFORMANCE 0x00
> -#define HWP_EPP_BALANCE_PERFORMANCE 0x80
> -#define HWP_EPP_BALANCE_POWERSAVE 0xC0
> -#define HWP_EPP_POWERSAVE 0xFF
> #define HWP_ACTIVITY_WINDOW(x) ((unsigned long long)(x & 0xff3) << 32)
> #define HWP_PACKAGE_CONTROL(x) ((unsigned long long)(x & 0x1) << 42)
>
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index ad9be31753b6..65036ca21719 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -25,6 +25,7 @@
> #include <linux/acpi.h>
> #include <linux/vmalloc.h>
> #include <linux/pm_qos.h>
> +#include <linux/cpufreq_common.h>
> #include <trace/events/power.h>
>
> #include <asm/cpu.h>
> @@ -628,42 +629,6 @@ static int intel_pstate_set_epb(int cpu, s16 pref)
> return 0;
> }
>
> -/*
> - * EPP/EPB display strings corresponding to EPP index in the
> - * energy_perf_strings[]
> - * index String
> - *-------------------------------------
> - * 0 default
> - * 1 performance
> - * 2 balance_performance
> - * 3 balance_power
> - * 4 power
> - */
> -
> -enum energy_perf_value_index {
> - EPP_INDEX_DEFAULT = 0,
> - EPP_INDEX_PERFORMANCE,
> - EPP_INDEX_BALANCE_PERFORMANCE,
> - EPP_INDEX_BALANCE_POWERSAVE,
> - EPP_INDEX_POWERSAVE,
> -};
> -
> -static const char * const energy_perf_strings[] = {
> - [EPP_INDEX_DEFAULT] = "default",
> - [EPP_INDEX_PERFORMANCE] = "performance",
> - [EPP_INDEX_BALANCE_PERFORMANCE] = "balance_performance",
> - [EPP_INDEX_BALANCE_POWERSAVE] = "balance_power",
> - [EPP_INDEX_POWERSAVE] = "power",
> - NULL
> -};
> -static unsigned int epp_values[] = {
> - [EPP_INDEX_DEFAULT] = 0, /* Unused index */
> - [EPP_INDEX_PERFORMANCE] = HWP_EPP_PERFORMANCE,
> - [EPP_INDEX_BALANCE_PERFORMANCE] = HWP_EPP_BALANCE_PERFORMANCE,
> - [EPP_INDEX_BALANCE_POWERSAVE] = HWP_EPP_BALANCE_POWERSAVE,
> - [EPP_INDEX_POWERSAVE] = HWP_EPP_POWERSAVE,
> -};
> -
> static int intel_pstate_get_energy_pref_index(struct cpudata *cpu_data, int *raw_epp)
> {
> s16 epp;
> diff --git a/include/linux/cpufreq_common.h b/include/linux/cpufreq_common.h
> new file mode 100644
> index 000000000000..2d14b0b0f55c
> --- /dev/null
> +++ b/include/linux/cpufreq_common.h
> @@ -0,0 +1,56 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * linux/include/linux/cpufreq_common.h
> + *
> + * Copyright (C) 2022 Advanced Micro Devices, Inc.
> + *
> + * Author: Perry Yuan <Perry.Yuan@amd.com>
> + */
> +
> +#ifndef _LINUX_CPUFREQ_COMMON_H
> +#define _LINUX_CPUFREQ_COMMON_H
> +
> +#include <asm/msr.h>
> +/*
> + * EPP/EPB display strings corresponding to EPP index in the
> + * energy_perf_strings[]
> + * index String
> + *-------------------------------------
> + * 0 default
> + * 1 performance
> + * 2 balance_performance
> + * 3 balance_power
> + * 4 power
> + */
> +
> +#define HWP_EPP_PERFORMANCE 0x00
> +#define HWP_EPP_BALANCE_PERFORMANCE 0x80
> +#define HWP_EPP_BALANCE_POWERSAVE 0xC0
> +#define HWP_EPP_POWERSAVE 0xFF
> +
> +enum energy_perf_value_index {
> + EPP_INDEX_DEFAULT = 0,
> + EPP_INDEX_PERFORMANCE,
> + EPP_INDEX_BALANCE_PERFORMANCE,
> + EPP_INDEX_BALANCE_POWERSAVE,
> + EPP_INDEX_POWERSAVE,
> +};
> +
> +static const char * const energy_perf_strings[] = {
> + [EPP_INDEX_DEFAULT] = "default",
> + [EPP_INDEX_PERFORMANCE] = "performance",
> + [EPP_INDEX_BALANCE_PERFORMANCE] = "balance_performance",
> + [EPP_INDEX_BALANCE_POWERSAVE] = "balance_power",
> + [EPP_INDEX_POWERSAVE] = "power",
> + NULL
> +};
> +
> +static unsigned int epp_values[] = {
> + [EPP_INDEX_DEFAULT] = 0, /* Unused index */
> + [EPP_INDEX_PERFORMANCE] = HWP_EPP_PERFORMANCE,
> + [EPP_INDEX_BALANCE_PERFORMANCE] = HWP_EPP_BALANCE_PERFORMANCE,
> + [EPP_INDEX_BALANCE_POWERSAVE] = HWP_EPP_BALANCE_POWERSAVE,
> + [EPP_INDEX_POWERSAVE] = HWP_EPP_POWERSAVE,
> +};
> +
> +#endif /* _LINUX_CPUFREQ_COMMON_H */
> \ No newline at end of file
> --
> 2.34.1
>
next prev parent reply other threads:[~2022-12-05 11:49 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-02 7:47 [PATCH v6 00/11] Implement AMD Pstate EPP Driver Perry Yuan
2022-12-02 7:47 ` [PATCH v6 01/11] ACPI: CPPC: Add AMD pstate energy performance preference cppc control Perry Yuan
2022-12-02 16:58 ` Limonciello, Mario
2022-12-05 15:17 ` Yuan, Perry
2022-12-02 7:47 ` [PATCH v6 02/11] Documentation: amd-pstate: add EPP profiles introduction Perry Yuan
2022-12-02 7:47 ` [PATCH v6 03/11] cpufreq: intel_pstate: use common macro definition for Energy Preference Performance(EPP) Perry Yuan
2022-12-05 11:48 ` Huang Rui [this message]
2022-12-05 14:40 ` Yuan, Perry
2022-12-05 16:44 ` Limonciello, Mario
2022-12-08 14:40 ` Yuan, Perry
2022-12-08 16:46 ` Limonciello, Mario
2022-12-02 7:47 ` [PATCH v6 04/11] cpufreq: amd_pstate: implement Pstate EPP support for the AMD processors Perry Yuan
2022-12-02 17:36 ` Limonciello, Mario
2022-12-08 15:51 ` Yuan, Perry
2022-12-03 19:52 ` kernel test robot
2022-12-05 12:22 ` Huang Rui
2022-12-08 15:43 ` Yuan, Perry
2022-12-02 7:47 ` [PATCH v6 05/11] cpufreq: amd_pstate: implement amd pstate cpu online and offline callback Perry Yuan
2022-12-02 7:47 ` [PATCH v6 06/11] cpufreq: amd-pstate: implement suspend and resume callbacks Perry Yuan
2022-12-02 7:47 ` [PATCH v6 07/11] cpufreq: amd-pstate: add frequency dynamic boost sysfs control Perry Yuan
2022-12-02 15:59 ` Limonciello, Mario
2022-12-05 15:19 ` Yuan, Perry
2022-12-02 7:47 ` [PATCH v6 08/11] cpufreq: amd_pstate: add driver working mode status sysfs entry Perry Yuan
2022-12-02 15:57 ` Limonciello, Mario
2022-12-08 15:55 ` Yuan, Perry
2022-12-02 7:47 ` [PATCH v6 09/11] Documentation: amd-pstate: add amd pstate driver mode introduction Perry Yuan
2022-12-02 7:47 ` [PATCH v6 10/11] Documentation: introduce amd pstate active mode kernel command line options Perry Yuan
2022-12-02 7:47 ` [PATCH v6 11/11] cpufreq: amd_pstate: convert sprintf with sysfs_emit() Perry Yuan
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=Y43aq2gMKnFRIhxh@amd.com \
--to=ray.huang@amd.com \
--cc=Alexander.Deucher@amd.com \
--cc=Deepak.Sharma@amd.com \
--cc=Li.Meng@amd.com \
--cc=Mario.Limonciello@amd.com \
--cc=Nathan.Fontenot@amd.com \
--cc=Perry.Yuan@amd.com \
--cc=Shimmer.Huang@amd.com \
--cc=Wyes.Karny@amd.com \
--cc=Xiaojian.Du@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=viresh.kumar@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.