public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: mark gross <markgross@thegnar.org>
To: Jean Pihet <jean.pihet@newoldbits.com>
Cc: linux-pm@lists.linux-foundation.org,
	Antti P Miettinen <amiettinen@nvidia.com>,
	markgross@thegnar.org
Subject: Re: [PATCH 0/6] RFC: CPU frequency min/max as PM QoS params
Date: Wed, 11 Jan 2012 19:06:42 -0800	[thread overview]
Message-ID: <20120112030642.GD14968@mgross-G62> (raw)
In-Reply-To: <CAORVsuUgL=5N1s7j3mHTzVgpq5sFO5nkotAZ1PeC=s0GfkWGwA@mail.gmail.com>

On Tue, Jan 10, 2012 at 10:02:49PM +0100, Jean Pihet wrote:
> Hi Mark, Rafael,
> 
> On Tue, Jan 10, 2012 at 9:46 PM, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Tuesday, January 10, 2012, mark gross wrote:
> >> On Mon, Jan 09, 2012 at 10:27:29PM +0100, Rafael J. Wysocki wrote:
> >> > On Monday, January 09, 2012, mark gross wrote:
> >> > > On Sun, Jan 08, 2012 at 11:59:24PM +0100, Rafael J. Wysocki wrote:
> >> > > > On Friday, January 06, 2012, mark gross wrote:
> >> > > > > On Fri, Jan 06, 2012 at 02:36:20AM +0200, Antti P Miettinen wrote:
> >> > > > > > The inspiration for this patch series is the N9 CPU frequency boost
> >> > > > > > upon input events:
> >> > > > > >
> >> > > > > > http://www.spinics.net/lists/cpufreq/msg00667.html
> >> > > > > >
> >> > > > > > and the related changes in git://codeaurora.org/kernel/msm.git tree.
> >> > > > > > Those patches modify the ondemand cpufreq governor. This patch series
> >> > > > > > adds minimum and maximum CPU frequency as PM QoS parameters and
> >> > > > > > modifies the cpufreq core to enforce the PM QoS limits. There is also
> >> > > > > > an example module for boosting the frequency upon input events.
> >> > > > > >
> >> > > > > > I've been testing these changes against Ubuntu 3.2 kernel on a Dell
> >> > > > > > E6420 with the ACPI cpufreq driver. The patches are against
> >> > > > > > linux-next/master, compile tested against it.
> >> > > > > >
> >> > > > > >     --Antti
> >> > > > > >
> >> > > > > > Alex Frid (1):
> >> > > > > >   PM QoS: Simplify PM QoS expansion/merge
> >> > > > > >
> >> > > > > > Antti P Miettinen (5):
> >> > > > > >   PM QoS: Add CPU frequency min/max as PM QoS params
> >> > > > > >   cpufreq: Export user_policy min/max
> >> > > > > >   cpufreq: Preserve sysfs min/max request
> >> > > > > >   cpufreq: Enforce PM QoS min/max limits
> >> > > > > >   input: CPU frequency booster
> >> > > > > >
> >> > > > > >  drivers/cpufreq/cpufreq.c     |   57 +++++++++++++-
> >> > > > > >  drivers/input/Kconfig         |    9 ++
> >> > > > > >  drivers/input/Makefile        |    1 +
> >> > > > > >  drivers/input/input-cfboost.c |  174 +++++++++++++++++++++++++++++++++++++++++
> >> > > > > >  include/linux/pm_qos.h        |   19 ++++-
> >> > > > > >  kernel/power/qos.c            |   55 ++++++++++----
> >> > > > > >  6 files changed, 293 insertions(+), 22 deletions(-)
> >> > > > > >  create mode 100644 drivers/input/input-cfboost.c
> >> > > > > >
> >> > > > >
> >> > > > > The following is my version of part of this patch set I was tinkering
> >> > > > > with.  Its missing the cpufreq notification this change has and doesn't
> >> > > > > do anything WRT cfboost.
> >> > > > >
> >> > > > > Would it be ok if we could consolidate our two implementations and
> >> > > > > completely separate the cfboost stuff as a separate patch set?
> >> > > > >
> >> > > > > My code below is missing the cpufreq notification logic you have.
> >> > > >
> >> > > > Well, I have one substantial problem with this approach.  Namely, our
> >> > > > current PM QoS infrastructure is not suitable for throughput constraints,
> >> > > > because they should be additive, unlike the latency ones.
> >> > > >
> >> > > > Namely, if sombody requests throughput X and someone else Y, the resulting
> >> > > > combined throughput should be X+Y rather than max(X, Y).
> >> > >
> >> > > That can be done easy enough.  However; in practice I'm not convinced
> >> > > doing and additive aggregation of the requested QoS would be any better
> >> > > than just taking the max.
> >> >
> >> > Well, I'd say it's necessary for correctness, perhaps not for the CPU, but in
> >> > general.  If Y is the max, then the subsystem that requested X may easily
> >> > starve whoever requested the Y by using all of the bandwidth it asked for.
> >>
> >> I was thinking about this from the CPU point of view more over the day.
> >> Given that there are many times more than one make the qos requests
> >> additive will result in quickly requesting more cpu than is available
> >> and waisting a lot of power.   Also additive aggregation falls over a
> >> bit on with multi-core.
> >>
> >> As the consumer of the cpu resources are tasks, and we can only run one
> >> task at a time on a cpu, I'm talking myself into thinking that max
> >> *is* the right way to go for cpu throughput (i.e. frequency).
> There are case where the constraints values should be additive. The
> best example is the main memory throughput and so the memory
> controller frequency (or the L3 frequency on OMAP). The main problem
> is to estimate the overhead of multiple simultaneous transfers.
> 
> What do you think?

I think the number of that get summed in you memory bus example needs to
be tied to the number of DMA engines + CPU cores that can concurrently
transfer on that bus.  To sum all the request I think is too simplistic
and will result in always maxing aggregate request


--mark

> 
> >
> > I agree, but I wonder what units of throughput should be used in that case?
> >
> > Rafael
> 
> Regards,
> Jean
> 
> > _______________________________________________
> > linux-pm mailing list
> > linux-pm@lists.linux-foundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/linux-pm

  parent reply	other threads:[~2012-01-12  3:06 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-06  0:36 [PATCH 0/6] RFC: CPU frequency min/max as PM QoS params Antti P Miettinen
2012-01-06  0:36 ` [PATCH 1/6] PM QoS: Simplify PM QoS expansion/merge Antti P Miettinen
2012-01-06 15:24   ` mark gross
2012-01-08 23:03     ` Rafael J. Wysocki
2012-01-06  0:36 ` [PATCH 2/6] PM QoS: Add CPU frequency min/max as PM QoS params Antti P Miettinen
2012-01-06 15:30   ` mark gross
2012-01-06 19:32     ` Antti P Miettinen
2012-01-07  3:47       ` mark gross
2012-01-07  8:54         ` Antti P Miettinen
2012-01-06  0:36 ` [PATCH 3/6] cpufreq: Export user_policy min/max Antti P Miettinen
2012-01-06 15:33   ` mark gross
2012-01-06 19:29     ` Antti P Miettinen
2012-01-07  3:53       ` mark gross
2012-01-07  8:47         ` Antti P Miettinen
2012-01-09 14:18           ` mark gross
2012-01-06  0:36 ` [PATCH 4/6] cpufreq: Preserve sysfs min/max request Antti P Miettinen
2012-01-06  0:36 ` [PATCH 5/6] cpufreq: Enforce PM QoS min/max limits Antti P Miettinen
2012-01-06 15:38   ` mark gross
2012-01-06  0:36 ` [PATCH 6/6] input: CPU frequency booster Antti P Miettinen
2012-01-06 15:40   ` mark gross
2012-01-06 15:18 ` [PATCH 0/6] RFC: CPU frequency min/max as PM QoS params mark gross
2012-01-06 15:46 ` mark gross
2012-01-06 19:38   ` Antti P Miettinen
2012-01-07  2:57     ` mark gross
2012-01-06 18:27 ` mark gross
2012-01-08 22:59   ` Rafael J. Wysocki
2012-01-09 14:23     ` mark gross
2012-01-09 21:27       ` Rafael J. Wysocki
2012-01-09 21:57         ` Antti P Miettinen
2012-01-10 20:44           ` Rafael J. Wysocki
2012-01-11  7:26             ` Antti P Miettinen
2012-01-11 23:15               ` Rafael J. Wysocki
2012-01-12  8:37                 ` Antti P Miettinen
2012-01-12 23:55                   ` Rafael J. Wysocki
2012-01-10  4:50         ` mark gross
2012-01-10 20:46           ` Rafael J. Wysocki
2012-01-10 21:02             ` Jean Pihet
2012-01-11  7:32               ` Antti P Miettinen
2012-01-11 23:00                 ` Rafael J. Wysocki
2012-01-12  8:43                   ` Antti P Miettinen
2012-01-13  4:37                     ` mark gross
2012-01-12  3:06               ` mark gross [this message]
2012-01-12 23:52                 ` Rafael J. Wysocki
2012-01-12  3:01             ` mark gross

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=20120112030642.GD14968@mgross-G62 \
    --to=markgross@thegnar.org \
    --cc=amiettinen@nvidia.com \
    --cc=jean.pihet@newoldbits.com \
    --cc=linux-pm@lists.linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox