From: Oleksandr Natalenko <oleksandr@natalenko.name>
To: "Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Huang Rui <ray.huang@amd.com>, Meng Li <li.meng@amd.com>
Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, linux-acpi@vger.kernel.org,
Shuah Khan <skhan@linuxfoundation.org>,
linux-kselftest@vger.kernel.org,
Nathan Fontenot <nathan.fontenot@amd.com>,
Deepak Sharma <deepak.sharma@amd.com>,
Alex Deucher <alexander.deucher@amd.com>,
Mario Limonciello <mario.limonciello@amd.com>,
Shimmer Huang <shimmer.huang@amd.com>,
Perry Yuan <Perry.Yuan@amd.com>,
Xiaojian Du <Xiaojian.Du@amd.com>,
Viresh Kumar <viresh.kumar@linaro.org>,
Borislav Petkov <bp@alien8.de>, Meng Li <li.meng@amd.com>
Subject: Re: [PATCH V7 0/7] amd-pstate preferred core
Date: Tue, 19 Sep 2023 21:01:20 +0200 [thread overview]
Message-ID: <5973628.lOV4Wx5bFT@natalenko.name> (raw)
In-Reply-To: <20230918081407.756858-1-li.meng@amd.com>
[-- Attachment #1: Type: text/plain, Size: 5772 bytes --]
Hello.
On pondělí 18. září 2023 10:14:00 CEST Meng Li wrote:
> Hi all:
>
> The core frequency is subjected to the process variation in semiconductors.
> Not all cores are able to reach the maximum frequency respecting the
> infrastructure limits. Consequently, AMD has redefined the concept of
> maximum frequency of a part. This means that a fraction of cores can reach
> maximum frequency. To find the best process scheduling policy for a given
> scenario, OS needs to know the core ordering informed by the platform through
> highest performance capability register of the CPPC interface.
>
> Earlier implementations of amd-pstate preferred core only support a static
> core ranking and targeted performance. Now it has the ability to dynamically
> change the preferred core based on the workload and platform conditions and
> accounting for thermals and aging.
>
> Amd-pstate driver utilizes the functions and data structures provided by
> the ITMT architecture to enable the scheduler to favor scheduling on cores
> which can be get a higher frequency with lower voltage.
> We call it amd-pstate preferred core.
>
> Here sched_set_itmt_core_prio() is called to set priorities and
> sched_set_itmt_support() is called to enable ITMT feature.
> Amd-pstate driver uses the highest performance value to indicate
> the priority of CPU. The higher value has a higher priority.
>
> Amd-pstate driver will provide an initial core ordering at boot time.
> It relies on the CPPC interface to communicate the core ranking to the
> operating system and scheduler to make sure that OS is choosing the cores
> with highest performance firstly for scheduling the process. When amd-pstate
> driver receives a message with the highest performance change, it will
> update the core ranking.
>
> Changes form V6->V7:
> - x86:
> - - Modify kconfig about X86_AMD_PSTATE.
> - cpufreq: amd-pstate:
> - - modify incorrect comments about scheduler_work().
> - - convert highest_perf data type.
> - - modify preferred core init when cpu init and online.
> - acpi: cppc:
> - - modify link of CPPC highest performance.
> - cpufreq:
> - - modify link of CPPC highest performance changed.
>
> Changes form V5->V6:
> - cpufreq: amd-pstate:
> - - modify the wrong tag order.
> - - modify warning about hw_prefcore sysfs attribute.
> - - delete duplicate comments.
> - - modify the variable name cppc_highest_perf to prefcore_ranking.
> - - modify judgment conditions for setting highest_perf.
> - - modify sysfs attribute for CPPC highest perf to pr_debug message.
> - Documentation: amd-pstate:
> - - modify warning: title underline too short.
>
> Changes form V4->V5:
> - cpufreq: amd-pstate:
> - - modify sysfs attribute for CPPC highest perf.
> - - modify warning about comments
> - - rebase linux-next
> - cpufreq:
> - - Moidfy warning about function declarations.
> - Documentation: amd-pstate:
> - - align with ``amd-pstat``
>
> Changes form V3->V4:
> - Documentation: amd-pstate:
> - - Modify inappropriate descriptions.
>
> Changes form V2->V3:
> - x86:
> - - Modify kconfig and description.
> - cpufreq: amd-pstate:
> - - Add Co-developed-by tag in commit message.
> - cpufreq:
> - - Modify commit message.
> - Documentation: amd-pstate:
> - - Modify inappropriate descriptions.
>
> Changes form V1->V2:
> - acpi: cppc:
> - - Add reference link.
> - cpufreq:
> - - Moidfy link error.
> - cpufreq: amd-pstate:
> - - Init the priorities of all online CPUs
> - - Use a single variable to represent the status of preferred core.
> - Documentation:
> - - Default enabled preferred core.
> - Documentation: amd-pstate:
> - - Modify inappropriate descriptions.
> - - Default enabled preferred core.
> - - Use a single variable to represent the status of preferred core.
>
> Meng Li (7):
> x86: Drop CPU_SUP_INTEL from SCHED_MC_PRIO for the expansion.
> acpi: cppc: Add get the highest performance cppc control
> cpufreq: amd-pstate: Enable amd-pstate preferred core supporting.
> cpufreq: Add a notification message that the highest perf has changed
> cpufreq: amd-pstate: Update amd-pstate preferred core ranking
> dynamically
> Documentation: amd-pstate: introduce amd-pstate preferred core
> Documentation: introduce amd-pstate preferrd core mode kernel command
> line options
>
> .../admin-guide/kernel-parameters.txt | 5 +
> Documentation/admin-guide/pm/amd-pstate.rst | 58 +++++-
> arch/x86/Kconfig | 5 +-
> drivers/acpi/cppc_acpi.c | 13 ++
> drivers/acpi/processor_driver.c | 6 +
> drivers/cpufreq/amd-pstate.c | 197 ++++++++++++++++--
> drivers/cpufreq/cpufreq.c | 13 ++
> include/acpi/cppc_acpi.h | 5 +
> include/linux/amd-pstate.h | 6 +
> include/linux/cpufreq.h | 5 +
> 10 files changed, 291 insertions(+), 22 deletions(-)
When applied on top of v6.5.3 this breaks turbo on my 5950X after suspend/resume cycle. Please see the scenario description below.
If I boot v6.5.3 + this patchset, then `turbostat` reports ~4.9 GHz on core 0 where `taskset -c 0 dd if=/dev/zero of=/dev/null` is being run.
After I suspend the machine and then resume it, and run `dd` again, `turbostat` reports the core to be capped to a stock frequency of ~3.4 GHz. Rebooting the machine fixes this, and the CPU can boost again.
If this patchset is reverted, then the CPU can turbo after suspend/resume cycle just fine.
I'm using `amd_pstate=guided`.
Is this behaviour expected?
Thanks.
--
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:[~2023-09-19 19:09 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-18 8:14 [PATCH V7 0/7] amd-pstate preferred core Meng Li
2023-09-18 8:14 ` [PATCH V7 1/7] x86: Drop CPU_SUP_INTEL from SCHED_MC_PRIO for the expansion Meng Li
2023-09-18 8:14 ` [PATCH V7 2/7] acpi: cppc: Add get the highest performance cppc control Meng Li
2023-09-18 8:14 ` [PATCH V7 3/7] cpufreq: amd-pstate: Enable amd-pstate preferred core supporting Meng Li
2023-09-20 2:43 ` Huang Rui
2023-09-18 8:14 ` [PATCH V7 4/7] cpufreq: Add a notification message that the highest perf has changed Meng Li
2023-09-18 8:14 ` [PATCH V7 5/7] cpufreq: amd-pstate: Update amd-pstate preferred core ranking dynamically Meng Li
2023-09-18 8:14 ` [PATCH V7 6/7] Documentation: amd-pstate: introduce amd-pstate preferred core Meng Li
2023-09-18 8:14 ` [PATCH V7 7/7] Documentation: introduce amd-pstate preferrd core mode kernel command line options Meng Li
2023-09-18 17:40 ` [PATCH V7 0/7] amd-pstate preferred core Mario Limonciello
2023-09-19 0:50 ` Meng, Li (Jassmine)
2023-09-18 17:44 ` Shuah Khan
2023-09-18 18:23 ` Shuah
2023-09-19 19:01 ` Oleksandr Natalenko [this message]
2023-09-20 16:56 ` Mario Limonciello
2023-09-20 19:34 ` Oleksandr Natalenko
2023-09-20 20:11 ` Mario Limonciello
2023-09-21 5:51 ` Meng, Li (Jassmine)
2023-09-20 2:50 ` Huang Rui
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=5973628.lOV4Wx5bFT@natalenko.name \
--to=oleksandr@natalenko.name \
--cc=Perry.Yuan@amd.com \
--cc=Xiaojian.Du@amd.com \
--cc=alexander.deucher@amd.com \
--cc=bp@alien8.de \
--cc=deepak.sharma@amd.com \
--cc=li.meng@amd.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=nathan.fontenot@amd.com \
--cc=rafael.j.wysocki@intel.com \
--cc=ray.huang@amd.com \
--cc=shimmer.huang@amd.com \
--cc=skhan@linuxfoundation.org \
--cc=viresh.kumar@linaro.org \
--cc=x86@kernel.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.