From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Linux PM list <linux-pm@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>, Len Brown <lenb@kernel.org>,
Colin Cross <ccross@android.com>, Kevin Hilman <khilman@ti.com>,
Magnus Damm <magnus.damm@gmail.com>,
Arjan van de Ven <arjan@linux.intel.com>
Subject: Re: [RFC][PATCH 2/2] PM / Domains: Add preliminary cpuidle support
Date: Fri, 11 May 2012 20:59:25 +0200 [thread overview]
Message-ID: <201205112059.25233.rjw@sisk.pl> (raw)
In-Reply-To: <4FACCC79.5000805@ti.com>
On Friday, May 11, 2012, Santosh Shilimkar wrote:
> On Friday 11 May 2012 12:11 AM, Rafael J. Wysocki wrote:
> > On Thursday, May 10, 2012, Santosh Shilimkar wrote:
> >> Rafael,
> >>
> >> On Thursday 10 May 2012 03:13 AM, Rafael J. Wysocki wrote:
> >>> From: Rafael J. Wysocki <rjw@sisk.pl>
> >>>
> >>> On some systems there are CPU cores located in the same power
> >>> domains as I/O devices. Then, power can only be removed from the
> >>> domain if all I/O devices in it are not in use and the CPU core
> >>> is idle. Add preliminary support for that to the generic PM domains
> >>> framework.
> >>>
> >> I am just curious to know, what kind of IO devices, you are
> >> talking here?
> >
> > Nothing specific, really. It can be any kind of I/O devices that happen
> > to be in the same power domain. This includes USB, SDHI, MMCIF controllers
> > on the SoC I have in mind in particular.
> >
> OK.
> These are more of generic devices and actually not related to CPU/CPU
> clusters as such.
>
> >> And also how those devices linked with CPU low power
> >> states apart from being part of same power domain. And is it
> >> the power domain or more of voltage domain, we are talking here.
> >
> > Depending on the definitions I guess. How do you define a power domain and
> > a voltage domain?
> >
>
> A voltage domain can be a section of the device supplied by a dedicated
> voltage rail. A voltage domain can have many power-domains like
> CPU cluster domain, Interconnect domain, peripheral domains.
> And each power domain then can have many sub-modules like UART, SPI,
> USB etc
OK, so this is not the level of detail the code in question is about.
In my terminology a power domain is a set of devices such that it only is
possible to remove power from (and restore power to) all of them together.
[...]
> >
> > The system I have in mind is designed in such a way that there is a power
> > domain with three subdomains, one of which contains the CPU core and the
> > remaining two contain I/O devices of various kinds. General purpose as well
> > as "core".
> >
> I am not sure CPUIDLE is suppose to take care of these kind of general
> purpose IO's. CPUIDLE should take care of CPU and CPU cluster power
> management. Any other peripherals as you mentioned should be already
> have some sort of device drivers and they should be using runtime PM for
> it, no?
Yes.
> And for the constraints, PM-Qos can be used. So far CPUIDLE
> core code has maintained that distinction and all the C-state latencies
> are of the CPU clusters rather than the SOC.
Well, that need not be the case and my patch is about that.
> If you have a voltage rail dependency then that should be handled
> in the voltage layer/regulator layer. If there is a power domain
> dependency then the power domain framework should do the use
> counting yo handle such scenarios.
The power domain framework, though, only covers I/O devices at the moment
and this is an attempt to extend it to cover domains containing CPU cores
as well as I/O devices.
> Please correct me but, IIUC, your proposal wants to use CPUIDLE
> for the SOC level power management.
That depends on what you mean by SoC-level.
> Will you be able to expand your requirements and explain why can't
> you manage PM for the general purpose devices like MMC, USB etc
> in their own device drivers ?
Because it is not possible to remove power from those devices individually.
Say you have a bunch of I/O devices such that you can only remove power from
all of them simultaneously (a power domain, that is). Suppose that there
is a register such that if a specific value is written to it, power is cut
from all of those devices at the same time (and there's an analogous value
for restoring power). Then, you can use the generic PM domains framework
for power management of those devices.
Suppose, however, that if you write the "cut power" value to the register,
your CPU core will lose power too. This case is beyond the scope of the
existing generic PM domains framework, because it has to take the CPU power
management into account, which is cpuidle in this particular case.
Thanks,
Rafael
next prev parent reply other threads:[~2012-05-11 18:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-09 21:40 [RFC][PATCH 0/2] PM / Domains / cpuidle: Preliminary cpuidle support for generic PM domains Rafael J. Wysocki
2012-05-09 21:41 ` [RFC][PATCH 1/2] PM / cpuidle: Add driver reference counter Rafael J. Wysocki
2012-05-09 21:43 ` [RFC][PATCH 2/2] PM / Domains: Add preliminary cpuidle support Rafael J. Wysocki
2012-05-10 10:10 ` Santosh Shilimkar
2012-05-10 18:41 ` Rafael J. Wysocki
2012-05-11 8:23 ` Santosh Shilimkar
2012-05-11 8:35 ` Magnus Damm
2012-05-11 18:59 ` Rafael J. Wysocki [this message]
2012-05-12 6:32 ` Shilimkar, Santosh
2012-05-12 19:33 ` Rafael J. Wysocki
2012-05-14 6:14 ` Shilimkar, Santosh
2012-05-12 19:40 ` [Update][RFC][PATCH " Rafael J. Wysocki
2012-05-16 20:29 ` [Update 2x][RFC][PATCH " Rafael J. Wysocki
2012-05-23 22:23 ` Kevin Hilman
2012-05-24 16:17 ` Rafael J. Wysocki
2012-05-24 23:59 ` Kevin Hilman
2012-05-28 21:50 ` [Update 3x][PATCH 2/2] PM / Domains: Add preliminary support for cpuidle Rafael J. Wysocki
2012-05-30 22:18 ` Kevin Hilman
2012-05-31 19:02 ` Rafael J. Wysocki
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=201205112059.25233.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=arjan@linux.intel.com \
--cc=ccross@android.com \
--cc=khilman@ti.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=santosh.shilimkar@ti.com \
/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
all inboxes | Powered by JetHome®