lkml.org 
[lkml]   [2012]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [discussion]sched: a rough proposal to enable power saving in scheduler
    From
    On Sat, Aug 18, 2012 at 4:16 AM, Chris Friesen
    <chris.friesen@genband.com> wrote:
    > On 08/17/2012 01:50 PM, Matthew Garrett wrote:
    >>
    >> On Fri, Aug 17, 2012 at 01:45:09PM -0600, Chris Friesen wrote:
    >>>
    >>> On 08/17/2012 12:47 PM, Matthew Garrett wrote:
    >>
    >>
    >>> The datasheet for the Xeon E5 (my variant at least) says it doesn't
    >>> do C7 so never powers down the LLC. However, as you said earlier
    >>> once you can put the socket into C6 which saves about 30W compared
    >>> to C1E.
    >>>
    >>> So as far as I can see with this CPU at least you would benefit from
    >>> shutting down a whole socket when possible.
    >>
    >>
    >> Having any active cores on the system prevents all packages from going
    >> into PC6 or deeper. What I'm not clear on is whether less deep package C
    >> states are also blocked.
    >>
    >
    > Right, we need the memory controller.
    >
    > The E5 datasheet is a bit ambiguous, it reads:
    >
    >
    > A processor enters the package C3 low power state when:
    > -At least one core is in the C3 state.
    > -The other cores are in a C3 or lower power state, and the processor has
    > been granted permission by the platform.
    >
    >
    > Unfortunately it doesn't specify whether that is the other cores in the
    > package, or the other cores on the whole system.
    >

    Hardware limitations is just part of the problem. We could find them
    out from various white papers or data sheets, or test out.To me, the
    key problem in terms of power and performance balancing still lies in
    CPU and memory allocation method. For example, on a system we can
    benefit from shutting down a whole socket when possible, if a workload
    allocates 50% CPU cycles and 50% memory bandwidth and space on a two
    socket system(modern), an ideal allocation method ( I assume it's our
    goal of the discussion) should leave CPU, cache, memory controller and
    memory on one socket ( node) completely idle and in deepest power
    saving mode. But obviously, we need to spread as much as possible
    across all cores in another socket(to race to idle). So from the
    example above, we see a threshold that we need to reference before
    selecting one from two complete different policy: spread or not
    spread... As long as there is hardware limitation, we could always
    need knob like that referenced threshold to adapt on different
    hardware in one kernel....

    /l


    \
     
     \ /
      Last update: 2012-08-18 16:41    [W:2.733 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site