From: Arjan van de Ven <arjan@linux.intel.com>
To: dwalker@mvista.com
Cc: linux-kernel@vger.kernel.org, len.brown@intel.com
Subject: Re: [RFC] maximum latency tracking infrastructure
Date: Thu, 24 Aug 2006 23:57:24 +0200 [thread overview]
Message-ID: <1156456644.3014.95.camel@laptopd505.fenrus.org> (raw)
In-Reply-To: <1156456349.6951.10.camel@dwalker1.mvista.com>
On Thu, 2006-08-24 at 14:52 -0700, Daniel Walker wrote:
> On Thu, 2006-08-24 at 19:41 +0200, Arjan van de Ven wrote:
> > Subject: [RFC] maximum latency tracking infrastructure
> > From: Arjan van de Ven <arjan@linux.intel.com>
> >
> > The patch below adds infrastructure to track "maximum allowable latency" for power
> > saving policies.
> >
> > The reason for adding this infrastructure is that power management in the
> > idle loop needs to make a tradeoff between latency and power savings (deeper
> > power save modes have a longer latency to running code again).
> > The code that today makes this tradeoff just does a rather simple algorithm;
>
> I was just thinking that it might be cleaner to register a structure
> instead of tracking identifiers to usecs. You might get a speed up on
> some of the operations, like unregister.
it makes things a lot more complex for both the user and the
infrastructure though, and I doubt it's going to be a performance gain;
you need to walk all registered items anyway to decide the new minimum
value if you unregister one for example.
> Another thing I was thinking about is that this seems somewhat contrary
> to the idea of using dynamic tick (assuming it was in mainline) to
> heuristically pick a power state. Do you have any thoughts on how you
> would combine the two?
Actually it's designed in part FOR this case!
So how that will work (thought experiment, I don't have the code yet)
In idle, determine the time the next scheduled event is.
Then given that time go over the C-states and pick the deepest C-state
that
1) satisfies the requested latency
2) has a latency that is a small enough fraction of the total time
(2 is needed to not pick a 1 msec-latency C state for a 1ms idle, that
won't save you power most likely, so you need to have enough time in
"real" idle)
so when you know your latency requirements, you now can pick a DEEPER
sleepstate than you could before (or at least the right one)... dynticks
needs this more than anything :)
next prev parent reply other threads:[~2006-08-24 21:57 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-24 17:41 Arjan van de Ven
2006-08-24 19:18 ` Len Brown
2006-08-24 21:08 ` Jesse Barnes
2006-08-24 21:20 ` Arjan van de Ven
2006-08-24 21:29 ` Jesse Barnes
2006-08-24 21:50 ` Andi Kleen
2006-08-25 4:54 ` Nick Piggin
2006-08-25 7:58 ` Arjan van de Ven
2006-08-25 8:26 ` Nick Piggin
2006-08-25 8:30 ` Arjan van de Ven
2006-08-24 21:52 ` Daniel Walker
2006-08-24 21:57 ` Arjan van de Ven [this message]
2006-08-24 22:16 ` Daniel Walker
2006-08-24 22:24 ` Matthew Garrett
2006-08-25 8:19 ` Arjan van de Ven
2006-08-24 22:52 ` Matt Mackall
2006-08-25 7:56 ` Arjan van de Ven
2006-08-25 14:54 ` Matt Mackall
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=1156456644.3014.95.camel@laptopd505.fenrus.org \
--to=arjan@linux.intel.com \
--cc=dwalker@mvista.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.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
all inboxes | Powered by JetHome®