Re: [PATCH 0/4] Add sustainable OPP concept

Lukasz Luba
2020-10-30T10:56:37Z

On 10/30/20 9:52 AM, Viresh Kumar wrote:
> On 30-10-20, 09:19, Lukasz Luba wrote:
>> How about dropping the DT binding, but just adding this new field into
>> dev_pm_opp? There will be no DT parsing code, just the get/set
>> functions, which will be used in SCMI patch 4/4 and in IPA?
>> That would not require to change any DT bindings.
>
>> I see. Just for your information SCMI supports 'Sustained Performance'
>> expressed in kHz.
>
> Even that doesn't sound great (but then I don't have any background of
> why that was added there). The problem is not about how do we get this
> data into the kernel (from DT or firmware), but why is it even
> required. I really feel that software can find the sustainable OPP by
> itself (which can keep changing).

IPA tries to do that, even dynamically when e.g. GPU is supper busy
in 3D games (~2000W) or almost idle showing 2D home screen.
It tries to find highest 'sustainable' frequencies for the devices,
at that various workloads and temp. But it needs some coefficients to
start, which have big impact on the algorithm. It could slow down IPA a
lot, when those coefficients are calculated based on lowest OPPs.

>
> About moving it into the OPP core, I am open to getting something
> added there if it is really useful and if the OPP core is the best
> suited place to keep such data. Though I am not sure of that for this
> field right now.
>
> Is it ever going to be used by anyone else apart from IPA ? If not,
> what about adding a helper in IPA to set sustainable-freq for a device
> ?

My backup plan was to add a flag into EM em_perf_state, extend SCMI perf
exposing the 'sustained_freq_khz' to scmi-cpufreq, which would set that
field after registering EM. IPA depends on EM, so should be OK.

>
> So only SCMI based platforms will be able to use this stuff ? That's

I don't know who would also use it in future. I just presented you
current user of this, as you asked.

> very limited, isn't it ? I think we should still try to make it better
> for everyone by making the software smarter. It has so much data, the
> OPPs, the power it will consume (based on microvolt property?), the
> heat we produce from that (from thermal framework), etc. Perhaps
> building this information continuously at runtime based on when and
> how we hit the trip points ? So we know which is the right frequency
> where we can refrain from hitting the trip points.

IPA works in this way.

>
> But may be I am asking too much :(
>

When you asked for user of this, I gave you instantly. This is one is
more difficult. I am still not there with IPA tests in LISA. I have some
out-of-tree kernel driver for testing, which also need polishing before
can be used with LISA. Then proper workloads with results processing.
EM for devfreq cooling devices. Then decent 'hot' board running
preferably mainline kernel.
What you requested is on my list, but it needs more work, which
won't be ready over night.

Regards,
Lukasz