All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gautham R.Shenoy <gautham.shenoy@amd.com>
To: Mario Limonciello <mario.limonciello@amd.com>,
	Perry Yuan <perry.yuan@amd.com>, <rafael.j.wysocki@intel.com>,
	<viresh.kumar@linaro.org>
Cc: <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 v12 9/9] Documentation: cpufreq: amd-pstate: update doc for Per CPU boost control method
Date: Fri, 21 Jun 2024 12:12:56 +0530	[thread overview]
Message-ID: <87a5jevlsf.fsf@BLR-5CG11610CF.amd.com> (raw)
In-Reply-To: <19cbf20f-cf06-4776-8d14-973b090f7242@amd.com>

Mario Limonciello <mario.limonciello@amd.com> writes:

> On 6/19/2024 04:16, Perry Yuan wrote:
>> Updates the documentation in `amd-pstate.rst` to include information about the
>> per CPU boost control feature. Users can now enable or disable the Core Performance
>> Boost (CPB) feature on individual CPUs using the `boost` sysfs attribute.
>> 
>> Signed-off-by: Perry Yuan <perry.yuan@amd.com>
>> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
>> ---
>>   Documentation/admin-guide/pm/amd-pstate.rst | 20 ++++++++++++++++++++
>>   1 file changed, 20 insertions(+)
>> 
>> diff --git a/Documentation/admin-guide/pm/amd-pstate.rst b/Documentation/admin-guide/pm/amd-pstate.rst
>> index bcc0d9404c18..98e43c53c387 100644
>> --- a/Documentation/admin-guide/pm/amd-pstate.rst
>> +++ b/Documentation/admin-guide/pm/amd-pstate.rst
>> @@ -281,6 +281,26 @@ integer values defined between 0 to 255 when EPP feature is enabled by platform
>>   firmware, if EPP feature is disabled, driver will ignore the written value
>>   This attribute is read-write.
>>   
>> +``boost``
>> +The `boost` sysfs attribute provides control over the CPU core
>> +performance boost, allowing users to manage the maximum frequency limitation
>> +of the CPU. This attribute can be used to enable or disable the boost feature
>> +on individual CPUs.
>> +
>> +When the boost feature is enabled, the CPU can dynamically increase its frequency
>> +beyond the base frequency, providing enhanced performance for demanding workloads.
>> +On the other hand, disabling the boost feature restricts the CPU to operate at the
>> +base frequency, which may be desirable in certain scenarios to prioritize power
>> +efficiency or manage temperature.
>> +
>> +To manipulate the `boost` attribute, users can write a value of `0` to disable the
>> +boost or `1` to enable it, for the respective CPU using the sysfs path
>> +`/sys/devices/system/cpu/cpuX/cpufreq/boost`, where `X` represents the CPU number.
>> +
>> +It is important to note that modifying the global variable
>> +`amd_pstate_global_params.cpb_boost` will override the individual CPU settings.
>
> The whole point of the global cpb_boost is an easy way for software to 
> turn on/off for the whole package.
>
> This makes me wonder if we want a "custom" string for the global param 
> if one of the CPUs has been individually modified separately from the 
> global flag.  Then software can very easily tell when it's been toggled 
> for a given CPU or via the global flag.

Yeah, this is one usecase which may justify the need for a separate
amd_pstate/cpb_boost interface. i.e., if there are users who do want to
reset the boost state on all the CPUs if individual CPUs have
independently toggled the boost states. 

>
> * Basically if userspace wrote to a single CPU store a bit in the global 
> structure to say cpb_custom = true if it's not already set.
> * If writing to cpb_boost from sysfs then "cpb_custom = false"
> * If reading cpb_boost from sysfs and "cpb_custom = true" then double 
> check all CPUs.

Actually, we can maintain a counter which is set to nr_online_cpus when
the global cpb_boost is enabled and set to 0 when global cpb_boost is
disabled. When each individual CPU disables cpb , we decrement the value
of the counter. We increment the counter value when some individual CPU
enables cpb.

So global counter returns "enabled" if counter == nr_policies, returns
"disabled" if counter == 0 and "custom" for all other values of the
counter.


>    - If they don't have the same value return "custom".
>    - If they all have the same values this means software has updated 
> them all, set "cpb_custom = false" and then return enabled/disabled.
>
> What do you think?

Could be done. But again, are there users who want to see the "custom"
value ?

--
Thanks and Regards
gautham.

      reply	other threads:[~2024-06-21  6:43 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-19  9:16 [PATCH v12 0/9] AMD Pstate Driver Core Performance Boost Perry Yuan
2024-06-19  9:16 ` [PATCH v12 1/9] cpufreq: acpi: move MSR_K7_HWCR_CPB_DIS_BIT into msr-index.h Perry Yuan
2024-06-19  9:16 ` [PATCH v12 2/9] cpufreq: simplify boolean parsing with kstrtobool in store function Perry Yuan
2024-06-21  4:30   ` Gautham R.Shenoy
2024-06-19  9:16 ` [PATCH v12 3/9] cpufreq: introduce init_boost callback to initialize boost state for pstate drivers Perry Yuan
2024-06-19 17:37   ` Mario Limonciello
2024-06-19  9:16 ` [PATCH v12 4/9] cpufreq: amd-pstate: initialize new core precision boost state Perry Yuan
2024-06-19 19:32   ` Mario Limonciello
2024-06-21  5:23   ` Gautham R.Shenoy
2024-06-19  9:16 ` [PATCH v12 5/9] cpufreq: amd-pstate: implement cpb_boost sysfs entry for boost control Perry Yuan
2024-06-19 19:39   ` Mario Limonciello
2024-06-21  5:36     ` Gautham R.Shenoy
2024-06-19  9:16 ` [PATCH v12 6/9] cpufreq: amd-pstate: Add set_boost callback for active mode Perry Yuan
2024-06-19 19:40   ` Mario Limonciello
2024-06-21  5:39   ` Gautham R.Shenoy
2024-06-21  5:54     ` Yuan, Perry
2024-06-19  9:16 ` [PATCH v12 7/9] cpufreq: amd-pstate: fix the MSR highest perf will be reset issue while cpb boost off Perry Yuan
2024-06-21  5:46   ` Gautham R.Shenoy
2024-06-21  5:56     ` Yuan, Perry
2024-06-19  9:16 ` [PATCH v12 8/9] Documentation: cpufreq: amd-pstate: introduce the new cpu boost control method Perry Yuan
2024-06-19 19:40   ` Mario Limonciello
2024-06-19  9:16 ` [PATCH v12 9/9] Documentation: cpufreq: amd-pstate: update doc for Per CPU " Perry Yuan
2024-06-19 19:45   ` Mario Limonciello
2024-06-21  6:42     ` Gautham R.Shenoy [this message]

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=87a5jevlsf.fsf@BLR-5CG11610CF.amd.com \
    --to=gautham.shenoy@amd.com \
    --cc=Li.Meng@amd.com \
    --cc=Xiaojian.Du@amd.com \
    --cc=Xinmei.Huang@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.