lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 14 Jun 2024 02:28:19 +0000
From: "Yuan, Perry" <Perry.Yuan@....com>
To: "Limonciello, Mario" <Mario.Limonciello@....com>
CC: "rafael.j.wysocki@...el.com" <rafael.j.wysocki@...el.com>,
	"viresh.kumar@...aro.org" <viresh.kumar@...aro.org>, "Petkov, Borislav"
	<Borislav.Petkov@....com>, "Deucher, Alexander" <Alexander.Deucher@....com>,
	"Huang, Shimmer" <Shimmer.Huang@....com>, "Du, Xiaojian"
	<Xiaojian.Du@....com>, "Meng, Li (Jassmine)" <Li.Meng@....com>,
	"linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "Shenoy,
 Gautham Ranjal" <gautham.shenoy@....com>
Subject: RE: [PATCH v11 6/9] cpufreq: amd-pstate: Add set_boost callback for
 active mode

[AMD Official Use Only - AMD Internal Distribution Only]

> -----Original Message-----
> From: Limonciello, Mario <Mario.Limonciello@....com>
> Sent: Friday, June 14, 2024 1:53 AM
> To: Yuan, Perry <Perry.Yuan@....com>; Shenoy, Gautham Ranjal
> <gautham.shenoy@....com>; Petkov, Borislav <Borislav.Petkov@....com>
> Cc: rafael.j.wysocki@...el.com; viresh.kumar@...aro.org; Deucher, Alexander
> <Alexander.Deucher@....com>; Huang, Shimmer
> <Shimmer.Huang@....com>; Du, Xiaojian <Xiaojian.Du@....com>; Meng,
> Li (Jassmine) <Li.Meng@....com>; linux-pm@...r.kernel.org; linux-
> kernel@...r.kernel.org
> Subject: Re: [PATCH v11 6/9] cpufreq: amd-pstate: Add set_boost callback for
> active mode
>
> On 6/13/2024 02:25, Perry Yuan wrote:
> > Add support for the set_boost callback in the active mode driver to
> > enable boost control via the cpufreq core. This ensures a consistent
> > boost control interface across all pstate modes, including passive
> > mode, guided mode, and active mode.
> >
> > With this addition, all three pstate modes can support the same boost
> > control interface with unique interface and global CPB control. Each
> > CPU also supports individual boost control, allowing global CPB to
> > change all cores' boost states simultaneously. Specific CPUs can
> > update their boost states separately, ensuring all cores' boost states
> > are synchronized.
> >
> > Signed-off-by: Perry Yuan <perry.yuan@....com>
> > ---
> >   drivers/cpufreq/amd-pstate.c | 18 +++++-------------
> >   1 file changed, 5 insertions(+), 13 deletions(-)
> >
> > diff --git a/drivers/cpufreq/amd-pstate.c
> > b/drivers/cpufreq/amd-pstate.c index fe7c9d3562c5..d07f09dd7eab
> 100644
> > --- a/drivers/cpufreq/amd-pstate.c
> > +++ b/drivers/cpufreq/amd-pstate.c
> > @@ -701,20 +701,11 @@ static int amd_pstate_set_boost(struct
> cpufreq_policy *policy, int state)
> >             pr_err("Boost mode is not supported by this processor or
> SBIOS\n");
> >             return -ENOTSUPP;
> >     }
> > +   mutex_lock(&amd_pstate_driver_lock);
> > +   ret = amd_pstate_cpu_boost(policy->cpu, state);
> > +   mutex_unlock(&amd_pstate_driver_lock);
> >
> > -   if (state)
> > -           policy->cpuinfo.max_freq = cpudata->max_freq;
> > -   else
> > -           policy->cpuinfo.max_freq = cpudata->nominal_freq * 1000;
> > -
> > -   policy->max = policy->cpuinfo.max_freq;
> > -
> > -   ret = freq_qos_update_request(&cpudata->req[1],
> > -                                 policy->cpuinfo.max_freq);
> > -   if (ret < 0)
> > -           return ret;
> > -
> > -   return 0;
> > +   return ret < 0 ? ret : 0;
>
> What's wrong with just doing this instead:
>
> return ret;

/**
 * freq_qos_update_request - Modify existing frequency QoS request.
 * @req: Request to modify.
 * @new_value: New request value.
 *
 * Update an existing frequency QoS request along with the effective constraint
 * value for the list of requests it belongs to.
 *
 * Return 1 if the effective constraint value has changed, 0 if the effective
 * constraint value has not changed, or a negative error code on failures.
 */
int freq_qos_update_request(struct freq_qos_request *req, s32 new_value)


The effective return value from freq_qos_update_request will be "1",   we expect the return value to be -1 or 0 in the code path,
0 is the successful return value passed to caller.

Perry.

>
> >   }
> >
> >   static int amd_pstate_boost_set(struct amd_cpudata *cpudata) @@
> > -1875,6 +1866,7 @@ static struct cpufreq_driver amd_pstate_epp_driver =
> {
> >     .resume         = amd_pstate_epp_resume,
> >     .update_limits  = amd_pstate_update_limits,
> >     .init_boost     = amd_pstate_init_boost,
> > +   .set_boost      = amd_pstate_set_boost,
> >     .name           = "amd-pstate-epp",
> >     .attr           = amd_pstate_epp_attr,
> >   };

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ