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
| ||
|
Date: Mon, 11 Apr 2022 08:40:15 +0530 From: Viresh Kumar <viresh.kumar@...aro.org> To: Pierre Gondois <pierre.gondois@....com> Cc: linux-kernel@...r.kernel.org, Ionela.Voinescu@....com, Lukasz.Luba@....com, Morten.Rasmussen@....com, Dietmar.Eggemann@....com, maz@...nel.org, Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>, "Rafael J. Wysocki" <rafael@...nel.org>, Mark Rutland <mark.rutland@....com>, Ard Biesheuvel <ardb@...nel.org>, Fuad Tabba <tabba@...gle.com>, Valentin Schneider <valentin.schneider@....com>, Rob Herring <robh@...nel.org>, linux-arm-kernel@...ts.infradead.org, linux-pm@...r.kernel.org Subject: Re: [PATCH v2 1/3] cpufreq: CPPC: Add cppc_cpufreq_search_cpu_data On 07-04-22, 10:16, Pierre Gondois wrote: > From: Pierre Gondois <Pierre.Gondois@....com> > > cppc_cpufreq_get_cpu_data() allocates a new struct cppc_cpudata > for the input CPU at each call. > > To search the struct associated with a cpu without allocating > a new one, add cppc_cpufreq_search_cpu_data(). > Also add an early prototype. > > This will be used in a later patch, when generating artificial > performance states to register an artificial Energy Model in the > cppc_cpufreq driver and enable the Energy Aware Scheduler for ACPI > based systems. > > Signed-off-by: Pierre Gondois <Pierre.Gondois@....com> > --- > drivers/cpufreq/cppc_cpufreq.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c > index 82d370ae6a4a..ffcd9704add2 100644 > --- a/drivers/cpufreq/cppc_cpufreq.c > +++ b/drivers/cpufreq/cppc_cpufreq.c > @@ -41,6 +41,8 @@ > */ > static LIST_HEAD(cpu_data_list); > > +static struct cppc_cpudata *cppc_cpufreq_search_cpu_data(unsigned int cpu); > + > static bool boost_supported; > > struct cppc_workaround_oem_info { > @@ -479,6 +481,19 @@ static void cppc_cpufreq_put_cpu_data(struct cpufreq_policy *policy) > policy->driver_data = NULL; > } > > +static struct cppc_cpudata * > +cppc_cpufreq_search_cpu_data(unsigned int cpu) > +{ > + struct cppc_cpudata *iter, *tmp; > + > + list_for_each_entry_safe(iter, tmp, &cpu_data_list, node) { > + if (cpumask_test_cpu(cpu, iter->shared_cpu_map)) > + return iter; > + } > + > + return NULL; > +} Did you miss this in cppc_cpufreq_cpu_init() ? policy->driver_data = cpu_data; The data is saved inside the policy and it shouldn't be difficult to fetch it from there, instead of going through the list. -- viresh
Powered by blists - more mailing lists