Re: [PATCH v4 3/4] scmi-cpufreq: get opp_shared_cpus from opp-v2 for EM

From: Sudeep Holla
Date: Tue Dec 08 2020 - 06:22:27 EST


On Tue, Dec 08, 2020 at 04:31:48PM +0530, Viresh Kumar wrote:
> On 08-12-20, 10:58, Nicola Mazzucato wrote:
> >
> >
> > On 12/8/20 7:26 AM, Viresh Kumar wrote:
> > > On 08-12-20, 07:22, Nicola Mazzucato wrote:
> > >> On 12/8/20 5:50 AM, Viresh Kumar wrote:
> > >>> On 02-12-20, 17:23, Nicola Mazzucato wrote:
> > >>>> nr_opp = dev_pm_opp_get_opp_count(cpu_dev);
> > >>>> if (nr_opp <= 0) {
> > >>>> - dev_dbg(cpu_dev, "OPP table is not ready, deferring probe\n");
> > >>>> - ret = -EPROBE_DEFER;
> > >>>> - goto out_free_opp;
> > >>>> + ret = handle->perf_ops->device_opps_add(handle, cpu_dev);
> > >>>> + if (ret) {
> > >>>> + dev_warn(cpu_dev, "failed to add opps to the device\n");
> > >>>> + goto out_free_cpumask;
> > >>>> + }
> > >>>> +
> > >>>> + ret = dev_pm_opp_set_sharing_cpus(cpu_dev, opp_shared_cpus);
> > >>>> + if (ret) {
> > >>>> + dev_err(cpu_dev, "%s: failed to mark OPPs as shared: %d\n",
> > >>>> + __func__, ret);
> > >>>> + goto out_free_cpumask;
> > >>>> + }
> > >>>> +
> > >>>
> > >>> Why do we need to call above two after calling
> > >>> dev_pm_opp_get_opp_count() ?
> > >>
> > >> Sorry, I am not sure to understand your question here. If there are no opps for
> > >> a device we want to add them to it
> > >
> > > Earlier we used to call handle->perf_ops->device_opps_add() and
> > > dev_pm_opp_set_sharing_cpus() before calling dev_pm_opp_get_opp_count(), why is
> > > the order changed now ?
> >
> > True. The order has changed to take into account the fact that when we have
> > per-cpu + opp-shared, we don't need to add opps for devices which already have them.
>
> The opp-shared thing is mostly a dummy thing to get you some information here.
> What else has changed here ? I still don't understand why the OPPs would get
> added and so the duplicate OPPs messages. Does this already happen ?
>

Yes, details in my earlier response.

--
Regards,
Sudeep