lkml.org 
[lkml]   [2006]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC] maximum latency tracking infrastructure
    From
    Date
    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 :)

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-08-25 00:01    [W:0.027 / U:120.488 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site