Re: [PATCH v2 3/3] thermal: cpu_cooling: Migrate to using the EM framework

From: Quentin Perret
Date: Tue Apr 23 2019 - 04:07:46 EST


On Monday 22 Apr 2019 at 13:55:18 (+0530), Viresh Kumar wrote:
> On 18-04-19, 09:04, Quentin Perret wrote:
> > On Thursday 18 Apr 2019 at 09:23:23 (+0530), Viresh Kumar wrote:
> > > On 17-04-19, 10:43, Quentin Perret wrote:
> > > > static struct thermal_cooling_device *
> > > > __cpufreq_cooling_register(struct device_node *np,
> > > > - struct cpufreq_policy *policy, u32 capacitance)
> > > > + struct cpufreq_policy *policy,
> > > > + struct em_perf_domain *em)
> > > > {
> > >
> > > > + if (em_is_sane(cpufreq_cdev, em)) {
> > > > + cpufreq_cdev->em = em;
> > > > cooling_ops = &cpufreq_power_cooling_ops;
> > > > - } else {
> > > > + } else if (policy->freq_table_sorted != CPUFREQ_TABLE_UNSORTED) {
> > > > cooling_ops = &cpufreq_cooling_ops;
> > > > + } else {
> > > > + WARN(1, "cpu_cooling: no valid frequency table found\n");
> > >
> > > Well the frequency table is valid, isn't it ?
> >
> > True ...
> >
> > > Maybe something like: "cpu_cooling doesn't support unsorted frequency tables" ?
> >
> > Right, otherwise I guess that could be confused with the check on
> > cpu_table_count_valid_entries() above. And while I'm thinking about it
> > perhaps WARN is a bit too much here ? We can handle the error safely so
> > pr_err() should be enough ?
>
> Hmm, I would keep the WARN as it is hard to miss it compared to a
> simple pr_err.

Right, I don't really mind either way TBH. But is this worse than having
a NULL policy for example ? We have a standard pr_err() in this case.
And same thing if the cooling device registration failed actually. Do
you see a good reason to deal with EM stuff differently ?

Thanks,
Quentin