From: Oleksandr Natalenko <oleksandr@natalenko.name>
To: Perry Yuan <perry.yuan@amd.com>,
rafael.j.wysocki@intel.com, viresh.kumar@linaro.org,
Ray.Huang@amd.com, gautham.shenoy@amd.com,
Borislav.Petkov@amd.com,
Mario Limonciello <mario.limonciello@amd.com>
Cc: Alexander.Deucher@amd.com, Xinmei.Huang@amd.com,
Xiaojian.Du@amd.com, Li.Meng@amd.com, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 11/11] cpufreq: amd-pstate: automatically load pstate driver by default
Date: Wed, 08 May 2024 17:20:39 +0200 [thread overview]
Message-ID: <2728771.mvXUDI8C0e@natalenko.name> (raw)
In-Reply-To: <3cd5fe9d-514c-4a09-a895-47d97a5c6b94@amd.com>
[-- Attachment #1: Type: text/plain, Size: 4791 bytes --]
Hello.
On úterý 7. května 2024 16:41:29, SELČ Mario Limonciello wrote:
> On 5/7/2024 02:15, Perry Yuan wrote:
> > If the `amd-pstate` driver is not loaded automatically by default,
> > it is because the kernel command line parameter has not been added.
> > To resolve this issue, it is necessary to call the `amd_pstate_set_driver()`
> > function to enable the desired mode (passive/active/guided) before registering
> > the driver instance.
> > This ensures that the driver is loaded correctly without relying on the kernel
> > command line parameter.
> >
> > [ 0.917789] usb usb6: Manufacturer: Linux 6.9.0-rc6-amd-pstate-new-fix-v1 xhci-hcd
> > [ 0.982579] amd_pstate: failed to register with return -22
> >
> > Reported-by: Andrei Amuraritei <andamu@posteo.net>
> > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218705
> > Signed-off-by: Perry Yuan <perry.yuan@amd.com>
> > ---
> > drivers/cpufreq/amd-pstate.c | 39 +++++++++++++++++++-----------------
> > 1 file changed, 21 insertions(+), 18 deletions(-)
> >
> > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> > index 3ff381c4edf7..f5368497ee79 100644
> > --- a/drivers/cpufreq/amd-pstate.c
> > +++ b/drivers/cpufreq/amd-pstate.c
> > @@ -66,7 +66,7 @@
> > static struct cpufreq_driver *current_pstate_driver;
> > static struct cpufreq_driver amd_pstate_driver;
> > static struct cpufreq_driver amd_pstate_epp_driver;
> > -static int cppc_state = AMD_PSTATE_UNDEFINED;
> > +static int cppc_state;
> > static bool cppc_enabled;
> > static bool amd_pstate_prefcore = true;
> > static struct quirk_entry *quirks;
> > @@ -1762,6 +1762,16 @@ static int __init amd_pstate_init(void)
> > if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
> > return -ENODEV;
> >
> > + /* Disable on the following configs by default:
> > + * 1. Undefined platforms
> > + * 2. Server platforms
> > + */
> > + if (amd_pstate_acpi_pm_profile_undefined() ||
> > + amd_pstate_acpi_pm_profile_server()) {
> > + pr_info("driver load is disabled for server or undefined platform\n");
> > + return -ENODEV;
> > + }
> > +
> > /* show debug message only if CPPC is not supported */
> > if (!amd_cppc_supported())
> > return -EOPNOTSUPP;
> > @@ -1781,28 +1791,21 @@ static int __init amd_pstate_init(void)
> > /* check if this machine need CPPC quirks */
> > dmi_check_system(amd_pstate_quirks_table);
> >
> > + /* get default driver mode for loading*/
> > + cppc_state = CONFIG_X86_AMD_PSTATE_DEFAULT_MODE;
>
> Rather than setting it here within amd_pstate_init() I think you can
> just set it at line 67 to CONFIG_X86_AMD_PSTATE_DEFAULT_MODE.
To me it seems like setting it here kills a possibility to set the mode via the kernel cmdline. Regardless of what will be set in `amd_pstate=`, `CONFIG_X86_AMD_PSTATE_DEFAULT_MODE` will be used instead.
>
> > + pr_debug("cppc working state set to mode:%d\n", cppc_state);
>
> I think this debug line is going to be unnecessary when it's already
> hardcoded to kernel config.
>
> > +
> > switch (cppc_state) {
> > - case AMD_PSTATE_UNDEFINED:
> > - /* Disable on the following configs by default:
> > - * 1. Undefined platforms
> > - * 2. Server platforms
> > - * 3. Shared memory designs
> > - */
> > - if (amd_pstate_acpi_pm_profile_undefined() ||
> > - amd_pstate_acpi_pm_profile_server() ||
> > - !cpu_feature_enabled(X86_FEATURE_CPPC)) {
> > - pr_info("driver load is disabled, boot with specific mode to enable this\n");
> > - return -ENODEV;
> > - }
> > - ret = amd_pstate_set_driver(CONFIG_X86_AMD_PSTATE_DEFAULT_MODE);
> > - if (ret)
> > - return ret;
> > - break;
> > case AMD_PSTATE_DISABLE:
> > + pr_info("driver load is disabled, boot with specific mode to enable this\n");
> > return -ENODEV;
> > + case AMD_PSTATE_UNDEFINED:
>
> With the intent of this patch I no longer see a need for
> AMD_PSTATE_UNDEFINED in the rest of the driver (or in this case
> statement even).
>
> I feel you can drop it from amd-pstate.h.
>
> > case AMD_PSTATE_PASSIVE:
> > case AMD_PSTATE_ACTIVE:
> > case AMD_PSTATE_GUIDED:
> > + ret = amd_pstate_set_driver(cppc_state);
> > + if (ret)
> > + return ret;
> > break;
> > default:
> > return -EINVAL;
> > @@ -1823,7 +1826,7 @@ static int __init amd_pstate_init(void)
> > /* enable amd pstate feature */
> > ret = amd_pstate_enable(true);
> > if (ret) {
> > - pr_err("failed to enable with return %d\n", ret);
> > + pr_err("failed to enable driver mode(%d) with return %d\n", cppc_state, ret);
> > return ret;
> > }
> >
>
>
>
--
Oleksandr Natalenko (post-factum)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-05-08 15:20 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-07 7:15 [PATCH 00/11] AMD Pstate Driver Fixes and Improvements Perry Yuan
2024-05-07 7:15 ` [PATCH 01/11] cpufreq: amd-pstate: optimiza the initial frequency values verification Perry Yuan
2024-05-07 14:44 ` Mario Limonciello
2024-05-07 21:02 ` kernel test robot
2024-05-07 7:15 ` [PATCH 02/11] cpufreq: amd-pstate: show CPPC debug message if CPPC is not supported Perry Yuan
2024-05-07 14:45 ` Mario Limonciello
2024-05-07 7:15 ` [PATCH 03/11] cpufreq: amd-pstate: add debug message while CPPC is supported and disabled by SBIOS Perry Yuan
2024-05-07 14:55 ` Mario Limonciello
2024-05-07 7:15 ` [PATCH 04/11] Documentation: PM: amd-pstate: introducing recommended reboot requirement during driver switch Perry Yuan
2024-05-07 7:15 ` [PATCH 05/11] Documentation: PM: amd-pstate: add debugging section for driver loading failure Perry Yuan
2024-05-07 15:01 ` Mario Limonciello
2024-05-07 7:15 ` [PATCH 06/11] Documentation: PM: amd-pstate: add guide mode to the Operation mode Perry Yuan
2024-05-07 15:02 ` Mario Limonciello
2024-05-07 7:15 ` [PATCH 07/11] cpufreq: amd-pstate: switch boot_cpu_has() to cpu_feature_enabled() Perry Yuan
2024-05-07 15:03 ` Mario Limonciello
2024-05-07 7:15 ` [PATCH 08/11] x86/cpufeatures: Add feature bits for AMD heterogeneous processor Perry Yuan
2024-05-07 7:15 ` [PATCH 09/11] cpufreq: amd-pstate: implement heterogeneous core topology for highest performance initialization Perry Yuan
2024-05-07 15:19 ` Mario Limonciello
2024-05-09 16:36 ` Yuan, Perry
2024-05-07 18:14 ` kernel test robot
2024-05-07 19:40 ` kernel test robot
2024-05-07 7:15 ` [PATCH 10/11] cpufreq: amd-pstate: fix the highest frequency issue which limit performance Perry Yuan
2024-05-07 15:23 ` Mario Limonciello
2024-05-07 7:15 ` [PATCH 11/11] cpufreq: amd-pstate: automatically load pstate driver by default Perry Yuan
2024-05-07 14:41 ` Mario Limonciello
2024-05-08 15:20 ` Oleksandr Natalenko [this message]
2024-05-08 15:24 ` 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=2728771.mvXUDI8C0e@natalenko.name \
--to=oleksandr@natalenko.name \
--cc=Alexander.Deucher@amd.com \
--cc=Borislav.Petkov@amd.com \
--cc=Li.Meng@amd.com \
--cc=Ray.Huang@amd.com \
--cc=Xiaojian.Du@amd.com \
--cc=Xinmei.Huang@amd.com \
--cc=gautham.shenoy@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=perry.yuan@amd.com \
--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.