1. 25 9月, 2012 2 次提交
  2. 23 9月, 2012 4 次提交
  3. 04 6月, 2012 2 次提交
    • L
      tools/power turbostat: fix IVB support · 650a37f3
      Len Brown 提交于
      Initial IVB support went into turbostat in Linux-3.1:
      553575f1
      (tools turbostat: recognize and run properly on IVB)
      
      However, when running on IVB, turbostat would fail
      to report the new couters added with SNB, c7, pc2 and pc7.
      So in scenarios where these counters are non-zero on IVB,
      turbostat would report erroneous residencey results.
      
      In particular c7 time would be added to c1 time,
      since c1 time is calculated as "that which is left over".
      
      Also, turbostat reports MHz capabilities when passed
      the "-v" option, and it would incorrectly report 133MHz
      bclk instead of 100MHz bclk for IVB, which would inflate
      GHz reported with that option.
      
      This patch is a backport of a fix already included in turbostat v2.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      650a37f3
    • L
      tools/power turbostat: fix un-intended affinity of forked program · d15cf7c1
      Len Brown 提交于
      Linux 3.4 included a modification to turbostat to
      lower cross-call overhead by using scheduler affinity:
      
      15aaa346
      (tools turbostat: reduce measurement overhead due to IPIs)
      
      In the use-case where turbostat forks a child program,
      that change had the un-intended side-effect of binding
      the child to the last cpu in the system.
      
      This change removed the binding before forking the child.
      
      This is a back-port of a fix already included in turbostat v2.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d15cf7c1
  4. 17 5月, 2012 1 次提交
    • P
      sched: Remove stale power aware scheduling remnants and dysfunctional knobs · 8e7fbcbc
      Peter Zijlstra 提交于
      It's been broken forever (i.e. it's not scheduling in a power
      aware fashion), as reported by Suresh and others sending
      patches, and nobody cares enough to fix it properly ...
      so remove it to make space free for something better.
      
      There's various problems with the code as it stands today, first
      and foremost the user interface which is bound to topology
      levels and has multiple values per level. This results in a
      state explosion which the administrator or distro needs to
      master and almost nobody does.
      
      Furthermore large configuration state spaces aren't good, it
      means the thing doesn't just work right because it's either
      under so many impossibe to meet constraints, or even if
      there's an achievable state workloads have to be aware of
      it precisely and can never meet it for dynamic workloads.
      
      So pushing this kind of decision to user-space was a bad idea
      even with a single knob - it's exponentially worse with knobs
      on every node of the topology.
      
      There is a proposal to replace the user interface with a single
      3 state knob:
      
       sched_balance_policy := { performance, power, auto }
      
      where 'auto' would be the preferred default which looks at things
      like Battery/AC mode and possible cpufreq state or whatever the hw
      exposes to show us power use expectations - but there's been no
      progress on it in the past many months.
      
      Aside from that, the actual implementation of the various knobs
      is known to be broken. There have been sporadic attempts at
      fixing things but these always stop short of reaching a mergable
      state.
      
      Therefore this wholesale removal with the hopes of spurring
      people who care to come forward once again and work on a
      coherent replacement.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Vincent Guittot <vincent.guittot@linaro.org>
      Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Link: http://lkml.kernel.org/r/1326104915.2442.53.camel@twinsSigned-off-by: NIngo Molnar <mingo@kernel.org>
      8e7fbcbc
  5. 30 3月, 2012 3 次提交
    • L
      tools turbostat: harden against cpu online/offline · 15aaa346
      Len Brown 提交于
      Sometimes users have turbostat running in interval mode
      when they take processors offline/online.
      
      Previously, turbostat would survive, but not gracefully.
      
      Tighten up the error checking so turbostat notices
      changesn sooner, and print just 1 line on change:
      
      turbostat: re-initialized with num_cpus %d
      Signed-off-by: NLen Brown <len.brown@intel.com>
      15aaa346
    • L
      tools turbostat: reduce measurement overhead due to IPIs · 88c3281f
      Len Brown 提交于
      turbostat uses /dev/cpu/*/msr interface to read MSRs.
      For modern systems, it reads 10 MSR/CPU.  This can
      be observed as 10 "Function Call Interrupts"
      per CPU per sample added to /proc/interrupts.
      
      This overhead is measurable on large idle systems,
      and as Yoquan Song pointed out, it can even trick
      cpuidle into thinking the system is busy.
      
      Here turbostat re-schedules itself in-turn to each
      CPU so that its MSR reads will always be local.
      This replaces the 10 "Function Call Interrupts"
      with a single "Rescheduling interrupt" per sample
      per CPU.
      
      On an idle 32-CPU system, this shifts some residency from
      the shallow c1 state to the deeper c7 state:
      
       # ./turbostat.old -s
         %c0  GHz  TSC    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7
        0.27 1.29 2.29   0.95   0.02   0.00  98.77  20.23   0.00  77.41   0.00
        0.25 1.24 2.29   0.98   0.02   0.00  98.75  20.34   0.03  77.74   0.00
        0.27 1.22 2.29   0.54   0.00   0.00  99.18  20.64   0.00  77.70   0.00
        0.26 1.22 2.29   1.22   0.00   0.00  98.52  20.22   0.00  77.74   0.00
        0.26 1.38 2.29   0.78   0.02   0.00  98.95  20.51   0.05  77.56   0.00
      ^C
       i# ./turbostat.new -s
         %c0  GHz  TSC    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7
        0.27 1.20 2.29   0.24   0.01   0.00  99.49  20.58   0.00  78.20   0.00
        0.27 1.22 2.29   0.25   0.00   0.00  99.48  20.79   0.00  77.85   0.00
        0.27 1.20 2.29   0.25   0.02   0.00  99.46  20.71   0.03  77.89   0.00
        0.28 1.26 2.29   0.25   0.01   0.00  99.46  20.89   0.02  77.67   0.00
        0.27 1.20 2.29   0.24   0.01   0.00  99.48  20.65   0.00  78.04   0.00
      
      cc: Youquan Song <youquan.song@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      88c3281f
    • L
      tools turbostat: add summary option · e23da037
      Len Brown 提交于
      turbostat -s
      cuts down on the amount of output, per user request.
      
      also treak some output whitespace and the man page.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      e23da037
  6. 03 3月, 2012 13 次提交
  7. 15 12月, 2011 1 次提交
  8. 18 11月, 2011 1 次提交
  9. 19 8月, 2011 3 次提交
  10. 16 8月, 2011 5 次提交
  11. 03 8月, 2011 1 次提交
  12. 30 7月, 2011 4 次提交