1. 20 4月, 2012 1 次提交
  2. 19 4月, 2012 6 次提交
  3. 16 4月, 2012 3 次提交
  4. 12 4月, 2012 12 次提交
  5. 11 4月, 2012 1 次提交
  6. 08 4月, 2012 8 次提交
  7. 06 4月, 2012 5 次提交
  8. 04 4月, 2012 1 次提交
  9. 30 3月, 2012 3 次提交
    • I
      perf tools: Remove auto-generated bison/flex files · 65f3e56e
      Ingo Molnar 提交于
      These should not be in the Git history - they are auto-generated.
      
      Extend the Makefile rules of the parser files to include the generation
      run.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/20120327183335.GA27621@gmail.com
      [ committer note: Fixed up O= handling ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      65f3e56e
    • 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