lkml.org 
[lkml]   [2023]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH V8 3/7] cpufreq: amd-pstate: Enable amd-pstate preferred core supporting.
Date
[AMD Official Use Only - General]

Hi Peter:

> -----Original Message-----
> From: Peter Zijlstra <peterz@infradead.org>
> Sent: Tuesday, October 10, 2023 6:36 PM
> To: Meng, Li (Jassmine) <Li.Meng@amd.com>
> Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com>; Huang, Ray
> <Ray.Huang@amd.com>; 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;
> Fontenot, Nathan <Nathan.Fontenot@amd.com>; Sharma, Deepak
> <Deepak.Sharma@amd.com>; Deucher, Alexander
> <Alexander.Deucher@amd.com>; Limonciello, Mario
> <Mario.Limonciello@amd.com>; Huang, Shimmer
> <Shimmer.Huang@amd.com>; Yuan, Perry <Perry.Yuan@amd.com>; Du,
> Xiaojian <Xiaojian.Du@amd.com>; Viresh Kumar <viresh.kumar@linaro.org>;
> Borislav Petkov <bp@alien8.de>
> Subject: Re: [PATCH V8 3/7] cpufreq: amd-pstate: Enable amd-pstate
> preferred core supporting.
>
> Caution: This message originated from an External Source. Use proper
> caution when opening attachments, clicking links, or responding.
>
>
> On Mon, Oct 09, 2023 at 10:49:28AM +0800, Meng Li wrote:
>
> > +static void amd_pstate_init_prefcore(struct amd_cpudata *cpudata) {
> > + int ret;
> > + u32 highest_perf;
> > + static u32 max_highest_perf = 0, min_highest_perf = U32_MAX;
> > +
> > + ret = amd_pstate_get_highest_perf(cpudata->cpu, &highest_perf);
> > + if (ret)
> > + return;
> > +
> > + cpudata->hw_prefcore = true;
> > + /* check if CPPC preferred core feature is enabled*/
> > + if (highest_perf == AMD_PSTATE_MAX_CPPC_PERF) {
> > + pr_debug("AMD CPPC preferred core is unsupported!\n");
> > + cpudata->hw_prefcore = false;
> > + return;
> > + }
> > +
> > + if (!amd_pstate_prefcore)
> > + return;
> > +
> > + /*
> > + * The priorities can be set regardless of whether or not
> > + * sched_set_itmt_support(true) has been called and it is valid to
> > + * update them at any time after it has been called.
> > + */
> > + sched_set_itmt_core_prio(highest_perf, cpudata->cpu);
>
> You still got the whole u32 vs int thing confused, I've only pointed that out
> *TWICE* before.
>
> Boris, can you pull out the clue hammer please?
>
[Meng, Li (Jassmine)]
I feel very sorry, I will immediately double check and correct all modified data type.
Thanks a lot.

> > +
> > + if (max_highest_perf <= min_highest_perf) {
> > + if (highest_perf > max_highest_perf)
> > + max_highest_perf = highest_perf;
> > +
> > + if (highest_perf < min_highest_perf)
> > + min_highest_perf = highest_perf;
> > +
> > + if (max_highest_perf > min_highest_perf) {
> > + /*
> > + * This code can be run during CPU online under the
> > + * CPU hotplug locks, so sched_set_itmt_support()
> > + * cannot be called from here. Queue up a work item
> > + * to invoke it.
> > + */
> > + schedule_work(&sched_prefcore_work);
> > + }
> > + }
> > +}

\
 
 \ /
  Last update: 2023-10-11 03:04    [W:0.252 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site