All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <mario.limonciello@amd.com>
To: Perry Yuan <perry.yuan@amd.com>,
	gautham.shenoy@amd.com, Borislav.Petkov@amd.com
Cc: rafael.j.wysocki@intel.com, viresh.kumar@linaro.org,
	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 v11 3/9] cpufreq: introduce init_boost callback to initialize boost state for pstate drivers
Date: Thu, 13 Jun 2024 12:55:20 -0500	[thread overview]
Message-ID: <cc26e5fd-ee67-4720-bc58-322fa1ed0329@amd.com> (raw)
In-Reply-To: <688d8e1ce875655c344ac3b29876da5dc0456739.1718262992.git.perry.yuan@amd.com>

On 6/13/2024 02:25, Perry Yuan wrote:
> Introduce a new init_boost callback in cpufreq to initialize the boost
> state for specific pstate drivers. This initialization is required before
> calling the set_boost interface for each CPU.
> 
> The init_boost callback will set up and synchronize each CPU's current
> boost state before invoking the set_boost function. Without this step,
> the boost state may be inconsistent across CPUs.
> 
> Signed-off-by: Perry Yuan <perry.yuan@amd.com>
> ---
>   drivers/cpufreq/cpufreq.c | 12 ++++++++++--
>   include/linux/cpufreq.h   |  2 ++
>   2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 1fdabb660231..e1a4730f4f8c 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -1429,8 +1429,16 @@ static int cpufreq_online(unsigned int cpu)
>   			goto out_free_policy;
>   		}
>   
> -		/* Let the per-policy boost flag mirror the cpufreq_driver boost during init */
> -		policy->boost_enabled = cpufreq_boost_enabled() && policy_has_boost_freq(policy);
> +		/* init boost state to prepare set_boost callback for each CPU */
> +		if (cpufreq_driver->init_boost) {
> +			ret = cpufreq_driver->init_boost(policy);
> +			if (ret)
> +				pr_debug("%s: %d: initialization boost failed\n", __func__,
> +					__LINE__);

The message should have the subject at the beginning.  IE:

"boost initialization failed\n"

Also, isn't this fatal if init failed?  IE shouldn't failing have a:

	goto out_free_policy;

> +		} else {
> +			/* Let the per-policy boost flag mirror the cpufreq_driver boost during init */
> +			policy->boost_enabled = cpufreq_boost_enabled() && policy_has_boost_freq(policy);
> +		}
>   
>   		/*
>   		 * The initialization has succeeded and the policy is online.
> diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
> index 20f7e98ee8af..0698c0292d8f 100644
> --- a/include/linux/cpufreq.h
> +++ b/include/linux/cpufreq.h
> @@ -409,6 +409,8 @@ struct cpufreq_driver {
>   	bool		boost_enabled;
>   	int		(*set_boost)(struct cpufreq_policy *policy, int state);
>   
> +	/* initialize boost state to be consistent before calling set_boost */
> +	int		(*init_boost)(struct cpufreq_policy *policy);
>   	/*
>   	 * Set by drivers that want to register with the energy model after the
>   	 * policy is properly initialized, but before the governor is started.


  reply	other threads:[~2024-06-13 17:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-13  7:25 [PATCH v11 0/9] AMD Pstate Driver Core Performance Boost Perry Yuan
2024-06-13  7:25 ` [PATCH v11 1/9] cpufreq: acpi: move MSR_K7_HWCR_CPB_DIS_BIT into msr-index.h Perry Yuan
2024-06-13  7:25 ` [PATCH v11 2/9] cpufreq: simplify boolean parsing with kstrtobool in store function Perry Yuan
2024-06-13 17:55   ` Mario Limonciello
2024-06-13  7:25 ` [PATCH v11 3/9] cpufreq: introduce init_boost callback to initialize boost state for pstate drivers Perry Yuan
2024-06-13 17:55   ` Mario Limonciello [this message]
2024-06-14  2:43     ` Yuan, Perry
2024-06-19  3:46       ` Yuan, Perry
2024-06-13  7:25 ` [PATCH v11 4/9] cpufreq: amd-pstate: initialize new core precision boost state Perry Yuan
2024-06-13 17:55   ` Mario Limonciello
2024-06-14  3:32     ` Yuan, Perry
2024-06-13  7:25 ` [PATCH v11 5/9] cpufreq: amd-pstate: implement cpb_boost sysfs entry for boost control Perry Yuan
2024-06-13 17:55   ` Mario Limonciello
2024-06-14  2:32     ` Yuan, Perry
2024-06-13  7:25 ` [PATCH v11 6/9] cpufreq: amd-pstate: Add set_boost callback for active mode Perry Yuan
2024-06-13 17:52   ` Mario Limonciello
2024-06-14  2:28     ` Yuan, Perry
2024-06-13  7:25 ` [PATCH v11 7/9] cpufreq: amd-pstate: fix the MSR highest perf will be reset issue while cpb boost off Perry Yuan
2024-06-13  7:25 ` [PATCH v11 8/9] Documentation: cpufreq: amd-pstate: introduce the new cpu boost control method Perry Yuan
2024-06-13 17:53   ` Mario Limonciello
2024-06-13  7:25 ` [PATCH v11 9/9] Documentation: cpufreq: amd-pstate: update doc for Per CPU " Perry Yuan
2024-06-13 17:53   ` Mario Limonciello
2024-06-13 17:54 ` [PATCH v11 0/9] AMD Pstate Driver Core Performance Boost Mario Limonciello
2024-06-14  3:18   ` 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=cc26e5fd-ee67-4720-bc58-322fa1ed0329@amd.com \
    --to=mario.limonciello@amd.com \
    --cc=Alexander.Deucher@amd.com \
    --cc=Borislav.Petkov@amd.com \
    --cc=Li.Meng@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=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.