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 v7 03/13] cpufreq: intel_pstate: use common macro definition for Energy Preference Performance(EPP)
Date: Fri, 9 Dec 2022 16:01:25 +0800 [thread overview]
Message-ID: <Y5LrVdS9oFKIvC70@amd.com> (raw)
In-Reply-To: <20221208111852.386731-4-perry.yuan@amd.com>
On Thu, Dec 08, 2022 at 07:18:42PM +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>
Please address the comment in V6:
https://lore.kernel.org/linux-pm/Y43aq2gMKnFRIhxh@amd.com/T/#md503ee2fa32858e6cc9ab4da9ec1b89a6bae6058
Thanks,
Ray
> ---
> arch/x86/include/asm/msr-index.h | 4 ---
> drivers/cpufreq/intel_pstate.c | 37 +---------------------
> include/linux/cpufreq_common.h | 53 ++++++++++++++++++++++++++++++++
> 3 files changed, 54 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..1b842ed874ab 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -26,6 +26,7 @@
> #include <linux/vmalloc.h>
> #include <linux/pm_qos.h>
> #include <trace/events/power.h>
> +#include <linux/cpufreq_common.h>
>
> #include <asm/cpu.h>
> #include <asm/div64.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..c1224e3bc68b
> --- /dev/null
> +++ b/include/linux/cpufreq_common.h
> @@ -0,0 +1,53 @@
> +/* 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
> +/*
> + * 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 */
> --
> 2.34.1
>
next prev parent reply other threads:[~2022-12-09 8:02 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-08 11:18 [PATCH v7 00/13] Implement AMD Pstate EPP Driver Perry Yuan
2022-12-08 11:18 ` [PATCH v7 01/13] ACPI: CPPC: Add AMD pstate energy performance preference cppc control Perry Yuan
2022-12-09 7:55 ` Huang Rui
2022-12-12 3:29 ` Huang Rui
2022-12-12 9:17 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 02/13] Documentation: amd-pstate: add EPP profiles introduction Perry Yuan
2022-12-08 11:18 ` [PATCH v7 03/13] cpufreq: intel_pstate: use common macro definition for Energy Preference Performance(EPP) Perry Yuan
2022-12-09 8:01 ` Huang Rui [this message]
2022-12-09 8:54 ` Yuan, Perry
2022-12-12 1:28 ` Huang Rui
2022-12-19 8:51 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 04/13] cpufreq: amd-pstate: fix kernel hang issue while amd-pstate unregistering Perry Yuan
2022-12-09 8:56 ` Huang Rui
2022-12-08 11:18 ` [PATCH v7 05/13] cpufreq: amd-pstate: implement Pstate EPP support for the AMD processors Perry Yuan
2022-12-12 8:46 ` Huang Rui
2022-12-19 10:21 ` Yuan, Perry
2022-12-23 7:15 ` Huang Rui
2022-12-25 16:50 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 06/13] cpufreq: amd-pstate: implement amd pstate cpu online and offline callback Perry Yuan
2022-12-12 9:02 ` Huang Rui
2022-12-19 10:27 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 07/13] cpufreq: amd-pstate: implement suspend and resume callbacks Perry Yuan
2022-12-12 9:04 ` Huang Rui
2022-12-12 15:14 ` Limonciello, Mario
2022-12-19 10:33 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 08/13] cpufreq: amd-pstate: add frequency dynamic boost sysfs control Perry Yuan
2022-12-12 10:14 ` Huang Rui
2022-12-18 12:17 ` Thomas Koch
2022-12-19 6:56 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 09/13] cpufreq: amd-pstate: add driver working mode status sysfs entry Perry Yuan
2022-12-12 10:24 ` Huang Rui
2022-12-19 10:29 ` Yuan, Perry
2022-12-08 11:18 ` [PATCH v7 10/13] Documentation: amd-pstate: add amd pstate driver mode introduction Perry Yuan
2022-12-08 11:18 ` [PATCH v7 11/13] Documentation: introduce amd pstate active mode kernel command line options Perry Yuan
2022-12-08 11:18 ` [PATCH v7 12/13] cpufreq: amd-pstate: convert sprintf with sysfs_emit() Perry Yuan
2022-12-08 11:18 ` [PATCH v7 13/13] Documentation: amd-pstate: introduce new global sysfs attributes Perry Yuan
2022-12-08 11:36 ` [PATCH v7 00/13] Implement AMD Pstate EPP Driver Rafael J. Wysocki
2022-12-12 2:59 ` Yuan, Perry
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=Y5LrVdS9oFKIvC70@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.