1. 02 2月, 2016 2 次提交
  2. 27 1月, 2016 1 次提交
  3. 26 1月, 2016 7 次提交
  4. 12 1月, 2016 1 次提交
  5. 08 1月, 2016 1 次提交
  6. 07 1月, 2016 1 次提交
    • N
      perf tools: Skip dynamic fields not defined for current event · 361459f1
      Namhyung Kim 提交于
      When there are multiple events, each dynamic sort key is defined just
      for one event.  In this case other events will always show "N/A" for
      those fields.  But they are meaningless and consume precious screen
      width.
      
      Let's skip those undefined dynamic fields.
      
        $ perf record -e kmem:kmalloc,kmem:kfree -a sleep 1
      
        $ perf report -s 'comm,kmalloc.*' --stdio
        # To display the perf.data header info, please use --header/--header-only options.
        #
        #
        # Total Lost Samples: 0
        #
        # Samples: 20K of event 'kmem:kmalloc'
        # Event count (approx.): 20533
        #
        # Overhead  Command           call_site                 ptr  bytes_req  bytes_alloc            gfp_flags
        # ........  .......  ..................  ..................  .........  ...........  ...................
        #
            99.89%  perf       ffffffffa01d4396  0xffff8803ffb79720         96           96    GFP_NOFS|GFP_ZERO
             0.06%  sleep      ffffffff8114e1cd  0xffff8803d228a000       4096         4096           GFP_KERNEL
             0.03%  perf       ffffffff811d6ae6  0xffff8803f7678f00        240          256  GFP_KERNEL|GFP_ZERO
             0.00%  perf       ffffffff812263c1  0xffff880406172380        128          128           GFP_KERNEL
             0.00%  perf       ffffffff812264b9  0xffff8803ffac1600        504          512           GFP_KERNEL
             0.00%  perf       ffffffff81226634  0xffff880401dc5280         28           32           GFP_KERNEL
             0.00%  sleep      ffffffff81226da9  0xffff8803ffac3a00        392          512           GFP_KERNEL
      
        # Samples: 20K of event 'kmem:kfree'
        # Event count (approx.): 20597
        #
        # Overhead  Command
        # ........  ..............
        #
            99.63%  perf
             0.14%  sleep
             0.11%  irq/36-iwlwifi
             0.11%  kworker/u16:0
             0.01%  Xorg
             0.00%  firefox
      Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
      Acked-by: NJiri Olsa <jolsa@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/r/1450804030-29193-12-git-send-email-namhyung@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      361459f1
  7. 10 12月, 2015 1 次提交
    • I
      perf tui: Change default selection background color to yellow · 8d7d377c
      Ingo Molnar 提交于
      Boris reported that 'perf top' is unusable on his default 'black on
      white' terminal, which uses (eye friendly) light-grey as a background
      color.
      
      The reason is that the TUI cursor for the current selection line uses
      HE_COLORSET_SELECTED, and that has a default background color of
      'lightgrey' - which is a common terminal background choice and thus
      the colors conflict.
      
      Use yellow as the background color instead: that should be an uncommon
      terminal background, yet it's still ergonomic on both black and
      white/grey terminals.
      
      [ It would be a better solution to straight out detect color
        collisions and resolve them reasonably by converting them to RGB and
        calculating color space distances, but I was unable to find
        proper documentation for SLtt_get_color_object() to recover the
        current color scheme so I gave up ... Yellow works well enough. ]
      Reported-and-Tested-by: NBorislav Petkov <bp@alien8.de>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: David Binderman <dcb314@hotmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/20150305103213.GA23046@gmail.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      8d7d377c
  8. 07 12月, 2015 3 次提交
  9. 28 11月, 2015 1 次提交
  10. 20 11月, 2015 8 次提交
  11. 13 11月, 2015 2 次提交
  12. 23 10月, 2015 3 次提交
  13. 13 10月, 2015 3 次提交
  14. 07 10月, 2015 1 次提交
    • J
      perf tools: Use hpp_dimension__add_output to register hpp columns · 1178bfd4
      Jiri Olsa 提交于
      The perf_hpp__init currently does not respect sorting dimensions and the
      setup_sorting function could endup queueing same format twice. That
      screwed up the perf_hpp__list and got stuck in loop within
      perf_hpp__setup_output_field function.
      
        $ perf report -F +overhead
      
        0x00000000004c1355 in perf_hpp__is_sort_entry (format=format@entry=0x880440 <perf_hpp.format>) at util/sort.c:1506
        1506    {
      
           #0  0x00000000004c1355 in perf_hpp__is_sort_entry (format=format@entry=0x880440 <perf_hpp.format>) at util/sort.c:1506
           #1  0x00000000004c139d in perf_hpp__same_sort_entry (a=a@entry=0x880440 <perf_hpp.format>, b=b@entry=0x2bb2fe0) at util/sort.c:1380
           #2  0x00000000004f8d3c in perf_hpp__setup_output_field () at ui/hist.c:554
           #3  0x00000000004c1d1e in setup_sorting () at util/sort.c:1984
           #4  0x000000000042efbf in cmd_report (argc=0, argv=0x7ffea5a0e790, prefix=<optimized out>) at builtin-report.c:874
           #5  0x0000000000476f13 in run_builtin (p=p@entry=0x875628 <commands+168>, argc=argc@entry=3, argv=argv@entry=0x7ffea5a0e790) at perf.c:385
           #6  0x000000000047710b in handle_internal_command (argc=3, argv=0x7ffea5a0e790) at perf.c:445
           #7  0x0000000000477176 in run_argv (argcp=argcp@entry=0x7ffea5a0e5fc, argv=argv@entry=0x7ffea5a0e5f0) at perf.c:489
           #8  0x00000000004773e7 in main (argc=3, argv=0x7ffea5a0e790) at perf.c:606
      
      Using hpp_dimension__add_output function to register the output column.
      It will also mark the dimension as taken and omit above stuck.
      Reported-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NNamhyung Kim <namhyung@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1444134312-29136-4-git-send-email-jolsa@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1178bfd4
  15. 06 10月, 2015 2 次提交
    • A
      perf hists browser: Implement horizontal scrolling · c6c3c02d
      Arnaldo Carvalho de Melo 提交于
      Do it using the recently introduced ui_brower scrolling mode, setting
      ui_browser.columns to the number of sort columns and then, when
      rendering each line, skipping as many initial columns as the user
      pressed the right arrow.
      
      As the user presses the left arrow, the ui_browser code will remove the
      scrolling counter and the left scrolling takes place.
      
      The right arrow key was an alias for ENTER, so people used to press it
      may get a bit annoyed at first, sorry! Ditto for ESC and the left key.
      
      Callchains can be left as is or we can, when rendering the Symbol
      column, store the at what position on the screen it is and then
      using ui_browser__gotorc() to print it from there, i.e. the callchain
      would move around with the symbol.
      
      Leaving it as is, i.e. at a fixed position, close to the left, saves
      precious screen real state for it, so I'm inclined to leave it as is
      now.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Chandler Carruth <chandlerc@gmail.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-ccqq9sabgfge5dwbqjwh71ij@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c6c3c02d
    • A
      perf ui browser: Optional horizontal scrolling key binding · faae6f69
      Arnaldo Carvalho de Melo 提交于
      If the classes derived from ui_browser want to do some sort of
      horizontal scrolling, they have just to set ui_browser->columns to
      the number of columns available.
      
      Those columns can be the number of characters on the screen, if what is
      desired is to scroll character by character, or the number of columns in
      a spreadsheet like table.
      
      This is what the hist_browser will do, skipping ui_browser->horiz_scroll
      columns when rendering each of its lines.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-q6a22bpmpgcr1awgzrmd4jrs@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      faae6f69
  16. 29 9月, 2015 1 次提交
  17. 15 9月, 2015 2 次提交