From: "Javi Merino" <javi.merino@arm.com>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Linux PM list <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Punit Agrawal <Punit.Agrawal@arm.com>,
Mark Brown <broonie@kernel.org>, Zhang Rui <rui.zhang@intel.com>,
Eduardo Valentin <edubezval@gmail.com>
Subject: Re: [RFC PATCH v6 6/9] thermal: cpu_cooling: implement the power cooling device API
Date: Tue, 9 Dec 2014 10:32:49 +0000 [thread overview]
Message-ID: <20141209103249.GB2891@e104805> (raw)
In-Reply-To: <CAKohpomy7=v_qE3B_+hhwdUE8MCJkV7gzmPpUOb==t1BuZAnAA@mail.gmail.com>
Hi Viresh,
On Tue, Dec 09, 2014 at 01:59:39AM +0000, Viresh Kumar wrote:
> On 8 December 2014 at 19:52, Javi Merino <javi.merino@arm.com> wrote:
> > Ok, changed it into:
> >
> > cpu = cpumask_any(&cpufreq_device->allowed_cpus);
> > dev = get_cpu_device(cpu);
> > if (!dev) {
> > dev_warn(&cpufreq_device->cool_dev->device,
> > "No cpu device for cpu %d\n", cpu);
> > ret = -EINVAL;
> > goto unlock;
> > }
> >
> > num_opps = dev_pm_opp_get_opp_count(dev);
> > if (num_opps <= 0) {
> > ret = (num_opps < 0)? num_opps : -EINVAL;
> > goto unlock;
> > }
>
> And this might not work. This is what I said in the first reply.
>
> So, a bit lengthy reply now :)
>
> Every cpu has a device struct associated with it. When cpufreq
> core initializes drivers, they ask for mapping (initializing) the opps.
> At that point we pass policy->cpu to opp core. OPP core doesn't
> know which cores share clock line (I am trying to solve that [1]) and
> so it just initializes the OPPs for policy->cpu. Let us say it cpuX.
>
> Now there will be few more CPUs which are going to share clock
> line with it and hence will use the same OPPs. In thermal core,
> you got clip_cpus which is exactly the masks of all these CPUs
> sharing clock line.
>
> If the OPP layer is good enough, then above code can work. But
> because right now the OPPs are mapped to just cpuX, passing
> any other cpu from clip_cpus will fail as it doesn't have any associated
> OPPs.
>
> Now what I asked you is to use the CPU for which
> __cpufreq_cooling_register() is called. Normally we are calling
> __cpufreq_cooling_register() for the CPU for which OPPs are
> registered (but people might call it up for other CPUs as well)..
Sorry but I don't follow. __cpufreq_cooling_register() is passed a
clip_cpus mask, not a single cpu. How do I get "the cpu for which
__cpufreq_cooling_register() is called" if not by looping through all
the cpus in the mask?
> So, using that cpu *might* have worked here.
>
> Now the earlier loop you used was good to get this information,
> but it wasn't consistent and so I objected.
>
> What you should do:
>
> - Create another routine to find the cpu for which OPPs are bound
> to
> - And save the cpu_dev for it in the global struct for cpu_cooling
This I have done, it wasn't part of the snip that I sent.
> - reuse it wherever required.
Same as above.
next prev parent reply other threads:[~2014-12-09 10:32 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-05 19:04 [RFC PATCH v6 0/9] The power allocator thermal governor Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 1/9] tracing: Add array printing helpers Javi Merino
2014-12-08 14:39 ` Dave P Martin
2014-12-08 15:42 ` Steven Rostedt
2014-12-08 16:04 ` Dave P Martin
2014-12-10 10:52 ` Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 2/9] tools lib traceevent: Generalize numeric argument Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 3/9] tools lib traceevent: Add support for __print_u{8,16,32,64}_array() Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 4/9] thermal: let governors have private data for each thermal zone Javi Merino
2014-12-08 4:11 ` Zhang Rui
2015-01-23 14:33 ` Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 5/9] thermal: extend the cooling device API to include power information Javi Merino
2014-12-23 15:14 ` Eduardo Valentin
2015-01-05 15:37 ` Javi Merino
2015-01-05 21:04 ` Eduardo Valentin
2015-01-06 10:34 ` Javi Merino
2015-01-06 13:08 ` Eduardo Valentin
2014-12-05 19:04 ` [RFC PATCH v6 6/9] thermal: cpu_cooling: implement the power cooling device API Javi Merino
2014-12-08 5:49 ` Viresh Kumar
2014-12-08 12:50 ` Javi Merino
2014-12-08 13:31 ` Viresh Kumar
2014-12-08 14:22 ` Javi Merino
2014-12-09 1:59 ` Viresh Kumar
2014-12-09 10:32 ` Javi Merino [this message]
2014-12-09 10:36 ` Viresh Kumar
2014-12-09 11:00 ` Javi Merino
2014-12-09 11:06 ` Viresh Kumar
2014-12-09 11:23 ` Javi Merino
2015-01-02 14:37 ` Eduardo Valentin
2015-01-05 16:53 ` Javi Merino
2015-01-05 20:44 ` Eduardo Valentin
2015-01-06 11:01 ` Javi Merino
2015-01-28 5:23 ` Eduardo Valentin
2015-01-29 11:19 ` Punit Agrawal
2015-01-29 0:15 ` Eduardo Valentin
2015-01-29 19:06 ` Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 7/9] thermal: introduce the Power Allocator governor Javi Merino
2015-01-02 15:46 ` Eduardo Valentin
2015-01-06 13:23 ` Javi Merino
2015-01-06 14:18 ` Eduardo Valentin
2015-01-06 14:50 ` Javi Merino
2015-01-02 15:51 ` Eduardo Valentin
2014-12-05 19:04 ` [RFC PATCH v6 8/9] thermal: add trace events to the power allocator governor Javi Merino
2014-12-05 19:04 ` [RFC PATCH v6 9/9] of: thermal: Introduce sustainable power for a thermal zone Javi Merino
2015-01-02 15:53 ` Eduardo Valentin
2015-01-06 9:42 ` Javi Merino
2015-01-06 13:13 ` Eduardo Valentin
2015-01-06 13:29 ` Javi Merino
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=20141209103249.GB2891@e104805 \
--to=javi.merino@arm.com \
--cc=Punit.Agrawal@arm.com \
--cc=broonie@kernel.org \
--cc=edubezval@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rui.zhang@intel.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.