From: Marc Zyngier <maz@kernel.org>
To: Pierre Gondois <Pierre.Gondois@arm.com>
Cc: linux-kernel@vger.kernel.org, Ionela.Voinescu@arm.com,
Lukasz.Luba@arm.com, Morten.Rasmussen@arm.com,
Dietmar.Eggemann@arm.com, mka@chromium.org,
daniel.lezcano@linaro.org,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
Ard Biesheuvel <ardb@kernel.org>, Fuad Tabba <tabba@google.com>,
Valentin Schneider <valentin.schneider@arm.com>,
Rob Herring <robh@kernel.org>,
linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org
Subject: Re: [PATCH v1 1/3] cpufreq: CPPC: Add cppc_cpufreq_search_cpu_data
Date: Thu, 17 Mar 2022 14:20:42 +0000 [thread overview]
Message-ID: <746641141c630dc1d02943d6133a6c8d@kernel.org> (raw)
In-Reply-To: <20220317133419.3901736-2-Pierre.Gondois@arm.com>
On 2022-03-17 13:34, Pierre Gondois wrote:
> 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@arm.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..8f950fe72765 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 inline struct cppc_cpudata *
Why the inline? This is hardly performance critical, and if
it is, you want something better than iterating over a list.
> +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;
> +}
> +
> static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
> {
> unsigned int cpu = policy->cpu;
Thanks,
M.
--
Jazz is not dead. It just smells funny...
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Pierre Gondois <Pierre.Gondois@arm.com>
Cc: linux-kernel@vger.kernel.org, Ionela.Voinescu@arm.com,
Lukasz.Luba@arm.com, Morten.Rasmussen@arm.com,
Dietmar.Eggemann@arm.com, mka@chromium.org,
daniel.lezcano@linaro.org,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Viresh Kumar <viresh.kumar@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
Ard Biesheuvel <ardb@kernel.org>, Fuad Tabba <tabba@google.com>,
Valentin Schneider <valentin.schneider@arm.com>,
Rob Herring <robh@kernel.org>,
linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org
Subject: Re: [PATCH v1 1/3] cpufreq: CPPC: Add cppc_cpufreq_search_cpu_data
Date: Thu, 17 Mar 2022 14:20:42 +0000 [thread overview]
Message-ID: <746641141c630dc1d02943d6133a6c8d@kernel.org> (raw)
In-Reply-To: <20220317133419.3901736-2-Pierre.Gondois@arm.com>
On 2022-03-17 13:34, Pierre Gondois wrote:
> 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@arm.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..8f950fe72765 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 inline struct cppc_cpudata *
Why the inline? This is hardly performance critical, and if
it is, you want something better than iterating over a list.
> +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;
> +}
> +
> static int cppc_cpufreq_cpu_init(struct cpufreq_policy *policy)
> {
> unsigned int cpu = policy->cpu;
Thanks,
M.
--
Jazz is not dead. It just smells funny...
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-03-17 14:20 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-17 13:34 [PATCH v1 0/3] Enable EAS for CPPC/ACPI based systems Pierre Gondois
2022-03-17 13:34 ` Pierre Gondois
2022-03-17 13:34 ` [PATCH v1 1/3] cpufreq: CPPC: Add cppc_cpufreq_search_cpu_data Pierre Gondois
2022-03-17 13:34 ` Pierre Gondois
2022-03-17 14:20 ` Marc Zyngier [this message]
2022-03-17 14:20 ` Marc Zyngier
2022-03-17 14:44 ` Pierre Gondois
2022-03-17 14:44 ` Pierre Gondois
2022-03-17 15:17 ` Marc Zyngier
2022-03-17 15:17 ` Marc Zyngier
2022-03-17 13:34 ` [PATCH v1 2/3] cpufreq: CPPC: Add per_cpu efficiency_class Pierre Gondois
2022-03-17 13:34 ` Pierre Gondois
2022-03-17 15:13 ` Marc Zyngier
2022-03-17 15:13 ` Marc Zyngier
2022-03-17 16:07 ` Pierre Gondois
2022-03-17 16:07 ` Pierre Gondois
2022-03-17 16:31 ` Marc Zyngier
2022-03-17 16:31 ` Marc Zyngier
2022-03-17 13:34 ` [PATCH v1 3/3] cpufreq: CPPC: Register EM based on efficiency class information Pierre Gondois
2022-03-17 13:34 ` Pierre Gondois
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=746641141c630dc1d02943d6133a6c8d@kernel.org \
--to=maz@kernel.org \
--cc=Dietmar.Eggemann@arm.com \
--cc=Ionela.Voinescu@arm.com \
--cc=Lukasz.Luba@arm.com \
--cc=Morten.Rasmussen@arm.com \
--cc=Pierre.Gondois@arm.com \
--cc=ardb@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mka@chromium.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=tabba@google.com \
--cc=valentin.schneider@arm.com \
--cc=viresh.kumar@linaro.org \
--cc=will@kernel.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.