From: Lukasz Luba <lukasz.luba@arm.com>
To: rjw@rjwysocki.net
Cc: Viresh Kumar <viresh.kumar@linaro.org>,
Vincent Donnefort <vincent.donnefort@arm.com>,
peterz@infradead.org, vincent.guittot@linaro.org,
qperret@google.com, linux-pm@vger.kernel.org,
ionela.voinescu@arm.com, dietmar.eggemann@arm.com
Subject: Re: [PATCH v3 3/6] cpufreq: Add an interface to mark inefficient frequencies
Date: Fri, 2 Jul 2021 15:21:45 +0100 [thread overview]
Message-ID: <0a930559-a648-c20d-f3f6-09e4974a031d@arm.com> (raw)
In-Reply-To: <4d975236-943c-ea82-547b-04f2bead9f48@arm.com>
Hi Rafael,
This is a gentle ping.
You have probably not seen this discussion thread.
On 6/16/21 1:45 PM, Lukasz Luba wrote:
>
>
> On 6/16/21 11:53 AM, Viresh Kumar wrote:
>> On 16-06-21, 11:33, Lukasz Luba wrote:
>>> On 6/16/21 10:31 AM, Viresh Kumar wrote:
>>>> On 16-06-21, 10:03, Lukasz Luba wrote:
>>>> Clean is not lesser number of lines for me, but rather having the
>>>> right ownership of such things.
>>>
>>> Some developers do like patches which removes more lines then adds ;)
>>
>> :)
>>
>
> [snip]
>
>>>
>>> What could be the modified v1 [2]:
>>> - LUT which holds two IDs: efficient, inefficient, take one
>>> according to the clamp f_max
>>> - add new argument 'policy->max' to em_pd_get_efficient_freq()
>>>
>>> freq = em_pd_get_efficient_freq(em_cpu_get(policy->cpu), freq,
>>> policy->max);
>>>
>>> The problem was that EAS couldn't know the clamp freq_max,
>>> which shouldn't be the blocker now.
>>
>> If you can do that without adding any EM specific stuff in the cpufreq
>> core, I will mostly be fine.
>>
>> But honestly speaking, creating more data structures to keep related
>> information doesn't scale well.
>>
>> We already have so many tables for keeping freq/voltage pairs, OPP,
>> cpufreq, EM. You tried to add one more in EM I think V1, not sure.
>>
>> It is always better to consolidate and we almost reached to a point
>> where that could have been done very easily. I understand that you
>> didn't want to touch so many different parts, but anyway..
>
> Yes, I don't want to touch some many generic parts because they
> are intended to be generic. This heuristic is only for EM platforms,
> which are arm, arm64 battery powered (not servers or other).
> Thus, I wanted to keep it locally. The cost of EM extra structures
> (the LUT) will only be for platforms for which EM discovers that
> they have inefficient performance levels.
> The code would even not be compiled in for x86, ppc, etc, in hot path.
>
>>>>> this v3 and your proposal.
>>>>
>>>> IMHO, adding such callbacks to the EM core, like .mark_efficient(),
>>>> will only make this easier to handle for all different frameworks, and
>>>> not otherwise. The code will look much cleaner everywhere..
>>>>
>>>
>>> What about coming back to the slightly modified v1 idea?
>>> That was really self-contained modification for this
>>> inefficient opps heuristic.
>>
>> I am not sure if I really understand what that would be, but again
>> adding another table is going to create more problems then it should.
>
> IMHO your proposals are more invasive for the generic code, while
> not always being even used. Plenty of architectures don't even set EM,
> even arm64 for servers doesn't use it. You and Rafael would have to
> maintain these modifications in generic code. It might be hard to remove
> it. While I recommend to keep this heuristic feature inside the EM and
> we will maintain it. If we decide after a few years that new arm64
> platforms use some smarter FW for performance level, we might just
> disable this heuristic.
>
>>
>> Anyway, that's my view, which can be wrong as well.
>>
>> Rafael: You have any suggestions here ?
>>
>
> I would also like to hear Rafael's opinion :)
It would be great if you could have a look.
I will be grateful for your time spend on it and opinion.
Regards,
Lukasz
next prev parent reply other threads:[~2021-07-02 14:21 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-04 11:05 [PATCH v3 0/6] EM / PM: Inefficient OPPs Vincent Donnefort
2021-06-04 11:05 ` [PATCH v3 1/6] PM / EM: Fix inefficient states detection Vincent Donnefort
2021-06-04 18:09 ` Matthias Kaehlcke
2021-06-04 11:05 ` [PATCH v3 2/6] PM / EM: Mark inefficient states Vincent Donnefort
2021-06-04 18:12 ` Matthias Kaehlcke
2021-06-04 11:05 ` [PATCH v3 3/6] cpufreq: Add an interface to mark inefficient frequencies Vincent Donnefort
2021-06-04 18:19 ` Matthias Kaehlcke
2021-06-14 13:40 ` Vincent Donnefort
2021-06-07 5:02 ` Viresh Kumar
2021-06-07 10:14 ` Lukasz Luba
2021-06-14 7:28 ` Viresh Kumar
2021-06-14 13:35 ` Vincent Donnefort
2021-06-15 5:02 ` Viresh Kumar
2021-06-15 8:44 ` Vincent Donnefort
2021-06-15 10:17 ` Viresh Kumar
2021-06-15 17:15 ` Vincent Donnefort
2021-06-16 7:35 ` Viresh Kumar
2021-06-16 9:03 ` Lukasz Luba
2021-06-16 9:31 ` Viresh Kumar
2021-06-16 10:33 ` Lukasz Luba
2021-06-16 10:53 ` Viresh Kumar
2021-06-16 12:45 ` Lukasz Luba
2021-07-02 14:21 ` Lukasz Luba [this message]
2021-07-02 15:46 ` Rafael J. Wysocki
2021-07-02 16:04 ` Rafael J. Wysocki
2021-07-02 16:08 ` Lukasz Luba
2021-07-02 17:53 ` Rafael J. Wysocki
2021-07-02 19:04 ` Lukasz Luba
2021-07-02 19:17 ` Vincent Donnefort
2021-07-05 14:09 ` Rafael J. Wysocki
2021-07-06 8:12 ` Vincent Donnefort
2021-07-06 8:37 ` Viresh Kumar
2021-07-06 8:43 ` Vincent Donnefort
2021-07-06 8:50 ` Viresh Kumar
2021-07-06 12:11 ` Rafael J. Wysocki
2021-07-02 16:13 ` Vincent Donnefort
2021-07-02 17:38 ` Rafael J. Wysocki
2021-06-22 9:01 ` Quentin Perret
2021-06-22 9:25 ` Viresh Kumar
2021-06-04 11:05 ` [PATCH v3 4/6] cpufreq: Skip inefficient frequencies in cpufreq_driver_resolve_freq() Vincent Donnefort
2021-06-04 18:25 ` Matthias Kaehlcke
2021-06-04 11:06 ` [PATCH v3 5/6] cpufreq: Mark inefficient frequencies using the Energy Model Vincent Donnefort
2021-06-04 18:35 ` Matthias Kaehlcke
2021-06-04 11:06 ` [PATCH v3 6/6] PM / EM: Skip inefficient states Vincent Donnefort
2021-06-04 18:49 ` Matthias Kaehlcke
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=0a930559-a648-c20d-f3f6-09e4974a031d@arm.com \
--to=lukasz.luba@arm.com \
--cc=dietmar.eggemann@arm.com \
--cc=ionela.voinescu@arm.com \
--cc=linux-pm@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=qperret@google.com \
--cc=rjw@rjwysocki.net \
--cc=vincent.donnefort@arm.com \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.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).