From: Ionela Voinescu <ionela.voinescu@arm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Ben Segall <bsegall@google.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ingo Molnar <mingo@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>, Mel Gorman <mgorman@suse.de>,
Peter Zijlstra <peterz@infradead.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Steven Rostedt <rostedt@goodmis.org>,
Sudeep Holla <sudeep.holla@arm.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Will Deacon <will@kernel.org>,
Peter Puhov <peter.puhov@linaro.org>,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org
Subject: Re: [RFC 0/3] cpufreq: cppc: Add support for frequency invariance
Date: Thu, 9 Jul 2020 13:43:49 +0100 [thread overview]
Message-ID: <20200709124349.GA15342@arm.com> (raw)
In-Reply-To: <cover.1594289009.git.viresh.kumar@linaro.org>
Hi Viresh,
I'll put all my comments here for now, as they refer more to the design
of the solution.
I hope it won't be too repetitive compared to what we previously discussed
offline. I understand you want to get additional points of view.
On Thursday 09 Jul 2020 at 15:43:32 (+0530), Viresh Kumar wrote:
> Hello,
>
> CPPC cpufreq driver is used for ARM servers and this patch series tries
> to provide frequency invariance support for them. The same is also
> provided using a specific hardware extension, known as AMU (Activity
> Monitors Unit), but that is optional for platforms and at least few of
> them don't have it.
>
> This patchset allows multiple parts of the kernel to provide the same
> functionality, by registering with the topology core.
>
> This is tested with some hacks, as I didn't have access to the right
> hardware, on the ARM64 hikey board to check the overall functionality
> and that works fine.
>
> Ionela/Peter Puhov, it would be nice if you guys can give this a shot.
>
I believe the code is unnecessarily invasive for the functionality it
tries to introduce and it does break existing functionality.
- (1) From code readability and design point of view, this switching
between an architectural method and a driver method complicates
an already complicated situation. We already have code that
chooses between a cpufreq-based method and a counter based method
for frequency invariance. This would basically introduce a choice
between a cpufreq-based method through arch_set_freq_scale(), an
architectural counter-based method through arch_set_freq_tick(),
and another cpufreq-based method that piggy-backs on the
architectural arch_set_freq_tick().
As discussed offline, before I even try to begin accepting the
possibility of this complicated mix, I would like to know why
methods of obtaining the same thing by using the cpufreq
arch_set_freq_scale() or even the more invasive wrapping of the
counter read functions is not working. I believe those solutions
would brings only a fraction of the complexity added through this
set.
- (2) For 1/3, the presence of AMU counters does not guarantee their
usability for frequency invariance. I know you wanted to avoid
the complications of AMUs being marked as supporting invariance
after the cpufreq driver init function, but this breaks the
scenario in which the maximum frequency is invalid.
- (3) For 2/3, currently we support platforms that have partial support
for AMUs, while this would not be supported here. The suggestions
at (1) would give us this for free.
While I'm keen on having invariance support for CPPC when lacking part
or full support for AMUs, I think we should explore alternative designs.
I can try to come up with some code suggestions, but it will take a few
days as I have many other things in the air :).
I'm happy to test this when the design is agreed on.
Hope it helps,
Ionela.
next prev parent reply other threads:[~2020-07-09 12:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-09 10:13 [RFC 0/3] cpufreq: cppc: Add support for frequency invariance Viresh Kumar
2020-07-09 10:13 ` [RFC 3/3] " Viresh Kumar
2020-07-09 12:43 ` Ionela Voinescu [this message]
2020-07-10 3:00 ` [RFC 0/3] " Viresh Kumar
2020-07-24 9:38 ` Vincent Guittot
2020-08-24 10:49 ` Viresh Kumar
2020-08-25 9:56 ` Ionela Voinescu
2020-08-27 7:51 ` Viresh Kumar
2020-08-27 11:27 ` Ionela Voinescu
2020-08-31 11:26 ` Viresh Kumar
2020-10-05 7:58 ` Viresh Kumar
2020-10-05 23:16 ` Ionela Voinescu
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=20200709124349.GA15342@arm.com \
--to=ionela.voinescu@arm.com \
--cc=bsegall@google.com \
--cc=catalin.marinas@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=gregkh@linuxfoundation.org \
--cc=juri.lelli@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peter.puhov@linaro.org \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
--cc=rostedt@goodmis.org \
--cc=sudeep.holla@arm.com \
--cc=vincent.guittot@linaro.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).