1. 24 Oct, 2016 16 commits
  2. 22 Oct, 2016 1 commit
    • Ingo Molnar's avatar
      Merge tag 'perf-c2c-for-mingo-20161021' of... · e9c84892
      Ingo Molnar authored
      Merge tag 'perf-c2c-for-mingo-20161021' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull new 'perf c2c' tool from Arnaldo Carvalho de Melo:
      
      - The 'perf c2c' tool provides means for Shared Data C2C/HITM analysis.
      
        It allows you to track down cacheline contention. The tool is based
        on x86's load latency and precise store facility events provided by
        Intel CPUs.
      
        It was tested by Joe Mario and has proven to be useful, finding some
        cacheline contentions. Joe also wrote a blog about c2c tool with
        examples:
      
          https://joemario.github.io/blog/2016/09/01/c2c-blog/
      
        Excerpt of the content on this site:
      
        ---
          At a high level, “perf c2c” will show you:
      
          * The cachelines where false sharing was detected.
          * The readers and writers to those cachelines, and the offsets where those accesses occurred.
          * The pid, tid, instruction addr, function name, binary object name for those readers and writers.
          * The source file and line number for each reader and writer.
          * The average load latency for the loads to those cachelines.
          * Which numa nodes the samples a cacheline came from and which CPUs were involved.
      
          Using perf c2c is similar to using the Linux perf tool today.
          First collect data with “perf c2c record” Then generate a report output with “perf c2c report”
        ---
      
        There one finds extensive details on using the tool, with tips on
        reducing the volume of samples while still capturing enough to do
        its job. (Dick Fowles, Joe Mario, Don Zickus, Jiri Olsa)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      e9c84892
  3. 21 Oct, 2016 17 commits
    • Jiri Olsa's avatar
      perf c2c report: Add --show-all option · af09b2d3
      Jiri Olsa authored
      Normally we limit the main list to contain only entries with HITM %
      value > 0.0005, but it might be useful to display all captured entries.
      Adding --show-all option for that.
      Requested-and-Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-nokgjdwikbegec5jzj4mxhqc@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      af09b2d3
    • Jiri Olsa's avatar
      perf c2c report: Add --no-source option · 18f278d2
      Jiri Olsa authored
      Add a possibility to disable source line column with new --no-source
      option. It source line data could take lot of time to retrieve, so it
      could be a performance burden for big data.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-8p6s2727fq8nbsm3it5gix3p@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      18f278d2
    • Jiri Olsa's avatar
      perf c2c: Add man page and credits · 465f27a3
      Jiri Olsa authored
      Add man page for c2c command and credits to builtin-c2c.c file.
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-twbp391v8v9f5idp584hlfov@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      465f27a3
    • Jiri Olsa's avatar
      perf c2c report: Add help windows · 9a406eb6
      Jiri Olsa authored
      Adding help windows to display key/action mappings
      for both browsers.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-zni4apopx6a9eyxsosm1ebh1@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9a406eb6
    • Jiri Olsa's avatar
      perf c2c report: Iterate node display in browser · 1a56a425
      Jiri Olsa authored
      Adding TUI support to switch between Node entry versions
      in real time with 'n' key.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-xqbw4h4dxig54wff7fd14lao@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1a56a425
    • Jiri Olsa's avatar
      perf c2c report: Add support to manage symbol name length · 590b6a3a
      Jiri Olsa authored
      The width of symbol and source line entries could get really long
      and not convenient to display. Adding support to display only
      patrt of such strings and possibility to switch to full length
      by uing --full-symbols option or 's' key in TUI browser.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-yxf5hfteyfaoi8xrgczqtyha@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      590b6a3a
    • Jiri Olsa's avatar
      perf c2c report: Add cacheline index entry · bb342dae
      Jiri Olsa authored
      It's convenient to have an index for each cacheline to help discussions
      about results over the phone.
      
      Add new 'Index' and 'Num' fields in main and single cacheline tables.
      
      $ perf c2c report
        =================================================
                   Shared Data Cache Line Table
        =================================================
        #
        #                              Total      Lcl  ----- LLC Load Hitm -----
        # Index           Cacheline  records     Hitm    Total      Lcl      Rmt  ...
        # .....  ..................  .......  .......  .......  .......  .......
        #
              0  0xffff880036233b40        1   11.11%        1        1        0
              1  0xffff88009ccb2900        1   11.11%        1        1        0
              2  0xffff8800b5b3bc40        7   11.11%        1        1        0
        ...
      
        =================================================
              Shared Cache Line Distribution Pareto
        =================================================
        #
        #        ----- HITM -----  -- Store Refs --        Data address
        #   Num      Rmt      Lcl   L1 Hit  L1 Miss              Offset      Pid  ...
        # .....  .......  .......  .......  .......  ..................  .......
        #
          -------------------------------------------------------------
              0        0        1        0        0  0xffff880036233b40
          -------------------------------------------------------------
                   0.00%  100.00%    0.00%    0.00%                0x30        0
      
          -------------------------------------------------------------
              1        0        1        0        0  0xffff88009ccb2900
          -------------------------------------------------------------
                   0.00%  100.00%    0.00%    0.00%                0x28      549
        ...
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-4dhfagaz57tvrfjbg8nd2h4u@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bb342dae
    • Jiri Olsa's avatar
      perf c2c report: Recalc width of global sort entries · 25aa84e3
      Jiri Olsa authored
      Using resort callbacks to compute the columns' width.
      
      Computing only the global ones, c2c entries have fixed width only.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-zyayvq2u3dzyf3y7i9jza0lw@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      25aa84e3
    • Jiri Olsa's avatar
      perf c2c report: Allow to set cacheline sort fields · fc9c630e
      Jiri Olsa authored
      Allowing user to configure the way the single cacheline
      data are sorted after being sorted by offset.
      
      Adding 'c' option to specify sorting fields for single cacheline:
      
          -c, --coalesce <coalesce fields>
                                coalesce fields: pid,tid,iaddr,dso
      
      It's allowed to use following combination of fields:
        pid   - process pid
        tid   - process tid
        iaddr - code address
        dso   - shared object
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-aka8z31umxoq2gqr5mjd81zr@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      fc9c630e
    • Jiri Olsa's avatar
      perf c2c report: Add support to choose local HITMs · 55b95776
      Jiri Olsa authored
      Currently we sort and limit displayed data based on the remote HITMs
      count. Adding support to switch to local HITMs via --display option:
      
              --display ...     lcl,rmt
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-inykbom2f19difvsu1e18avr@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      55b95776
    • Jiri Olsa's avatar
      perf c2c report: Limit the cachelines table entries · 9857b717
      Jiri Olsa authored
      Add a limit for entries number of the cachelines table entries. By
      default now it's the 0.0005% minimum of remote HITMs.
      
      Also display only cachelines with remote hitm or store data.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-inykbom2f19difvsu1e18avr@git.kernel.org
      [ Disabled for now ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      9857b717
    • Jiri Olsa's avatar
      perf c2c report: Allow to report callchains · dd805768
      Jiri Olsa authored
      Add --call-graph option to properly setup callchain code. Adding default
      settings to display callchains whenever they are stored in the
      perf.data.
      
      Committer Notes:
      
      Testing it:
      
        [root@jouet ~]# perf c2c record -a -g sleep 5
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 5.331 MB perf.data (4263 samples) ]
        [root@jouet ~]# perf evlist -v
        cpu/mem-loads,ldlat=30/P: type: 4, size: 112, config: 0x1cd, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|CALLCHAIN|ID|CPU|PERIOD|DATA_SRC|WEIGHT, read_format: ID, disabled: 1, inherit: 1, mmap: 1, comm: 1, freq: 1, task: 1, precise_ip: 3, mmap_data: 1, sample_id_all: 1, mmap2: 1, comm_exec: 1, { bp_addr, config1 }: 0x1f
        cpu/mem-stores/P: type: 4, size: 112, config: 0x82d0, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|CALLCHAIN|ID|CPU|PERIOD|DATA_SRC|WEIGHT, read_format: ID, disabled: 1, inherit: 1, freq: 1, precise_ip: 3, sample_id_all: 1
        [root@jouet ~]# perf c2c report --stats
        =================================================
                    Trace Event Information
        =================================================
          Total records                     :       4263
          Locked Load/Store Operations      :        220
          Load Operations                   :       2130
          Loads - uncacheable               :          1
          Loads - IO                        :          7
          Loads - Miss                      :         86
          Loads - no mapping                :          5
          Load Fill Buffer Hit              :        609
          Load L1D hit                      :        612
        =================================================
                    Trace Event Information
        =================================================
          Total records                     :       4263
          Locked Load/Store Operations      :        220
          Load Operations                   :       2130
          Loads - uncacheable               :          1
          Loads - IO                        :          7
          Loads - Miss                      :         86
          Loads - no mapping                :          5
          Load Fill Buffer Hit              :        609
          Load L1D hit                      :        612
          Load L2D hit                      :         27
          Load LLC hit                      :        607
          Load Local HITM                   :         15
          Load Remote HITM                  :          0
          Load Remote HIT                   :          0
          Load Local DRAM                   :        176
          Load Remote DRAM                  :          0
          Load MESI State Exclusive         :        176
          Load MESI State Shared            :          0
          Load LLC Misses                   :        176
          LLC Misses to Local DRAM          :      100.0%
          LLC Misses to Remote DRAM         :        0.0%
          LLC Misses to Remote cache (HIT)  :        0.0%
          LLC Misses to Remote cache (HITM) :        0.0%
          Store Operations                  :       2133
          Store - uncacheable               :          0
          Store - no mapping                :          1
          Store L1D Hit                     :       1967
          Store L1D Miss                    :        165
          No Page Map Rejects               :        145
          Unable to parse data source       :          0
      
        =================================================
            Global Shared Cache Line Event Information
        =================================================
          Total Shared Cache Lines          :         15
          Load HITs on shared lines         :         26
          Fill Buffer Hits on shared lines  :          7
          L1D hits on shared lines          :          3
          L2D hits on shared lines          :          0
          LLC hits on shared lines          :         16
          Locked Access on shared lines     :          2
          Store HITs on shared lines        :          8
          Store L1D hits on shared lines    :          7
          Total Merged records              :         23
      
        =================================================
                         c2c details
        =================================================
          Events                            : cpu/mem-loads,ldlat=30/P
                                            : cpu/mem-stores/P
        [root@jouet ~]#
      
        [root@jouet ~]# perf c2c report
      Shared Data Cache Line Table (2378 entries)
                              Total           --- LLC Load Hitm --  -- Store Reference -  - Load Dram -   LLC      Total  - Core Load Hit -
                 Cacheline  records    %hitm  Total   Lcl      Rmt  Total  L1Hit  L1Miss  Lcl  Rmt        Ld Miss  Loads   FB       L1   L2
      - 0xffff880024380c00       10    0.00%      0     0        0      6      6       0    0    0        0            4    1        3    0
         - 0.13% _raw_spin_lock_irqsave
            - 0.07% ep_poll
                 sys_epoll_wait
                 do_syscall_64
                 return_from_SYSCALL_64
               + 0x103573
            - 0.05% ep_poll_callback
                 __wake_up_common
               - __wake_up_sync_key
                  - 0.02% pipe_read
                       __vfs_read
                       vfs_read
                       sys_read
                       do_syscall_64
                       return_from_SYSCALL_64
                       0xfdad
                  + 0.02% sock_def_readable
            + 0.02% ep_scan_ready_list.constprop.12
         + 0.00% mutex_lock
         + 0.00% __wake_up_common
      + 0xffff880024380c40        1    0.00%      0     0        0      1      1       0    0    0        0            0    0        0    0
      + 0xffff880024380c80        1    0.00%      0     0        0      0      0       0    0    0        0            1    0        0    0
      - 0xffff8800243e9f00        1    0.00%      0     0        0      1      1       0    0    0        0            0    0        0    0
           enqueue_entity
           enqueue_task_fair
           activate_task
           ttwu_do_activate
           try_to_wake_up
           wake_up_process
           hrtimer_wakeup
           __hrtimer_run_queues
           hrtimer_interrupt
           local_apic_timer_interrupt
           smp_apic_timer_interrupt
           apic_timer_interrupt
           cpuidle_enter
           call_cpuidle
      help
      
       -------------
      
      And when presing 'd' to see the cacheline details:
      
      Cacheline 0xffff880024380c00
        ----- HITM -----  -- Store Refs --                                       --------- cycles -----  cpu
            Rmt      Lcl   L1 Hit  L1 Miss    Off     Pid                   Tid  rmt hitm lcl hitm load  cnt                      Symbol
      -   0.00%    0.00%  100.00%    0.00%    0x0    1473  1474:Chrome_ChildIOT         0        0   41    2  [k] _raw_spin_lock_irqsave [kernel]
         - _raw_spin_lock_irqsave
            - 51.52% ep_poll
                 sys_epoll_wait
                 do_syscall_64
                 return_from_SYSCALL_64
               - 0x103573
                    47.19% 0
                    4.33% 0xc30bd
            - 35.93% ep_poll_callback
                 __wake_up_common
               - __wake_up_sync_key
                  - 18.20% pipe_read
                       __vfs_read
                       vfs_read
                       sys_read
                       do_syscall_64
                       return_from_SYSCALL_64
                       0xfdad
                  - 17.73% sock_def_readable
                       unix_stream_sendmsg
                       sock_sendmsg
                       ___sys_sendmsg
                       __sys_sendmsg
                       sys_sendmsg
                       do_syscall_64
                       return_from_SYSCALL_64
                       __GI___libc_sendmsg
                       0x12c036af1fc0
                       0x16a4050
                       0x894928ec83485354
            + 12.45% ep_scan_ready_list.constprop.12
      +   0.00%    0.00%    0.00%    0.00%    0x8    1473  1474:Chrome_ChildIOT         0        0  102    1  [k] mutex_lock             [kernel]
      +   0.00%    0.00%    0.00%    0.00%   0x38    1473  1473:chrome                  0        0   88    1  [k] __wake_up_common       [kernel]
      
      help
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-inykbom2f19difvsu1e18avr@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      dd805768
    • Jiri Olsa's avatar
      perf c2c report: Add c2c related stats stdio output · 2709b97d
      Jiri Olsa authored
      Display c2c related configuration options/setup.
      So far it's output of monitored events:
      
        $ perf c2c report --stats
        ...
      
        =================================================
                         c2c details
        =================================================
          Events                            : cpu/mem-loads,ldlat=50/pp
                                            : cpu/mem-stores/pp
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-ypz84f3a9fumyttrxurm458z@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2709b97d
    • Jiri Olsa's avatar
      perf c2c report: Add shared cachelines stats stdio output · 7ef2efaa
      Jiri Olsa authored
      Display global shared cachelines related stats table as part of the
      stdio output or when --stats option is speicified:
      
        $ perf c2c report --stats
        ...
        =================================================
            Global Shared Cache Line Event Information
        =================================================
          Total Shared Cache Lines          :       1384
          Load HITs on shared lines         :       5995
          Fill Buffer Hits on shared lines  :       1726
          L1D hits on shared lines          :       1943
          L2D hits on shared lines          :          0
          LLC hits on shared lines          :       1360
          Locked Access on shared lines     :       1993
          Store HITs on shared lines        :       1504
          Store L1D hits on shared lines    :       1446
          Total Merged records              :       3527
      Original-patch-by: default avatarDick Fowles <rfowles@redhat.com>
      Original-patch-by: default avatarDon Zickus <dzickus@redhat.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-p0gty8ctbdzisrniwqxhqmhq@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      7ef2efaa
    • Jiri Olsa's avatar
      perf c2c report: Add global stats stdio output · 74c63a25
      Jiri Olsa authored
      Display global stats table as part of the stdio output
      or when --stats option is speicified:
      
        $ perf c2c report --stats
        =================================================
                    Trace Event Information
        =================================================
          Total records                     :      41237
          Locked Load/Store Operations      :       4075
          Load Operations                   :      20526
          Loads - uncacheable               :          0
          Loads - IO                        :          0
          Loads - Miss                      :        552
          Loads - no mapping                :         31
          Load Fill Buffer Hit              :       7333
          Load L1D hit                      :       6398
          Load L2D hit                      :        144
          Load LLC hit                      :       4889
          Load Local HITM                   :       1185
          Load Remote HITM                  :        838
          Load Remote HIT                   :         52
          Load Local DRAM                   :        183
          Load Remote DRAM                  :        106
          Load MESI State Exclusive         :        289
          Load MESI State Shared            :          0
          Load LLC Misses                   :       1179
          LLC Misses to Local DRAM          :       15.5%
          LLC Misses to Remote DRAM         :        9.0%
          LLC Misses to Remote cache (HIT)  :        4.4%
          LLC Misses to Remote cache (HITM) :       71.1%
          Store Operations                  :      20711
          Store - uncacheable               :          0
          Store - no mapping                :          1
          Store L1D Hit                     :      20158
          Store L1D Miss                    :        552
          No Page Map Rejects               :          7
          Unable to parse data source       :          0
      Original-patch-by: default avatarDick Fowles <rfowles@redhat.com>
      Original-patch-by: default avatarDon Zickus <dzickus@redhat.com>
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-qkyvao3qsrnwazf0w1jvsh7z@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      74c63a25
    • Jiri Olsa's avatar
      perf c2c report: Add TUI cacheline browser · f1c5fd4d
      Jiri Olsa authored
      Adding simple TUI cacheline browser. It triggers when you press 'd' in
      the main browser on the specific cacheline.
      
      It allows to navigate through cacheline's offsets and display callchains
      (implemented in following patches).
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-fovjwgyusv3rz5qxk3hnahtl@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f1c5fd4d
    • Jiri Olsa's avatar
      perf c2c report: Add main TUI browser · 5a1a99cd
      Jiri Olsa authored
      Add the main cachelines TUI browser. It allows to navigate through
      cachelines and display their details and callchains (implemented in the
      following patches).
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Kim Phillips <kim.phillips@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-pk632k4h1uwc5t0lqc7k61zg@git.kernel.org
      Link: http://lkml.kernel.org/r/20161021001706.GB23970@krava
      [ Handle file with no entries, fixing segfault reported by Kim Phillips ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5a1a99cd
  4. 19 Oct, 2016 6 commits
    • Jiri Olsa's avatar
      perf c2c report: Add stdio output support · 2d388bd0
      Jiri Olsa authored
      Adding the --stdio option output support. The output
      tables are dumped directly to the stdio.
      
      $ perf c2c report
        =================================================
                   Shared Data Cache Line Table
        =================================================
        #
        #                       Total           ----- LLC Load Hitm -----  ---- Store Reference ----  --- Load Dram ----      LLC    Total  ----- Core Load Hit -----  -- LLC Load Hit --
        #          Cacheline  records    %hitm    Total      Lcl      Rmt    Total    L1Hit   L1Miss       Lcl       Rmt  Ld Miss    Loads       FB       L1       L2       Llc       Rmt
        # ..................  .......  .......  .......  .......  .......  .......  .......  .......  ........  ........  .......  .......  .......  .......  .......  ........  ........
        #
          0xffff88000235f840       17    0.00%        0        0        0       17       17        0         0         0        0        0        0        0        0         0         0
        ...
      
        =================================================
              Shared Cache Line Distribution Pareto
        =================================================
        #
        # ----- HITM -----  -- Store Refs --        Data address                                  ---------- cycles ----------       cpu                                   Shared
        #     Rmt      Lcl   L1 Hit  L1 Miss              Offset      Pid                    Tid  rmt hitm  lcl hitm      load       cnt                Symbol             Object  Node
        # .......  .......  .......  .......  ..................  .......  .....................  ........  ........  ........  ........  ....................  .................  ....
        #
          ------------------------------------------------------
                0        0       17        0  0xffff88000235f840
          ------------------------------------------------------
            0.00%    0.00%    5.88%    0.00%                 0x0    11474    11474:kworker/u16:5         0         0         0         1  [k] rmap_walk_file             [kernel.kallsyms]   0
            0.00%    0.00%    5.88%    0.00%                0x10    11474    11474:kworker/u16:5         0         0         0         1  [k] lock_page_memcg            [kernel.kallsyms]   0
            0.00%    0.00%   11.76%    0.00%                0x20    11474    11474:kworker/u16:5         0         0         0         1  [k] page_mapping               [kernel.kallsyms]   0
            0.00%    0.00%   64.71%    0.00%                0x28    11474    11474:kworker/u16:5         0         0         0         1  [k] __test_set_page_writeback  [kernel.kallsyms]   0
            0.00%    0.00%   11.76%    0.00%                0x30    11474    11474:kworker/u16:5         0         0         0         1  [k] page_mapped                [kernel.kallsyms]   0
        ...
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-eorco9r0oeesjve77pkkg43s@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      2d388bd0
    • Jiri Olsa's avatar
      perf c2c report: Set final resort fields · 22dd59d1
      Jiri Olsa authored
      Set resort/display fields for both cachelines and single cacheline
      displays.
      
      Cachelines are sorted on:
      
        rmt_hitm
      
      will be made configurable in following patches.
      
      Following fields are display for cachelines:
      
        dcacheline
        tot_recs
        percent_hitm
        tot_hitm,lcl_hitm,rmt_hitm
        stores,stores_l1hit,stores_l1miss
        dram_lcl,dram_rmt
        ld_llcmiss
        tot_loads
        ld_fbhit,ld_l1hit,ld_l2hit
        ld_lclhit,ld_rmthit
      
      The single cacheline is sort by:
      
        offset,rmt_hitm,lcl_hitm
      
      will be made configurable in following patches.
      
      Following fields are display for each cacheline:
      
        percent_rmt_hitm
        percent_lcl_hitm
        percent_stores_l1hit
        percent_stores_l1miss
        offset
        pid
        tid
        mean_rmt
        mean_lcl
        mean_load
        cpucnt
        symbol
        dso
        node
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-0rclftliywdq9qr2sjbugb6b@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      22dd59d1
    • Jiri Olsa's avatar
      perf c2c report: Setup number of header lines for hists · 1d62fcd6
      Jiri Olsa authored
      Allow to setup number of header lines for c2c hists objects.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-4ilsf0ulubrd4y96g7tnpwzk@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1d62fcd6
    • Jiri Olsa's avatar
      perf c2c report: Add src line sort key · 89d9ba8f
      Jiri Olsa authored
      It is to be displayed in the single cacheline output:
      
        cl_srcline
      
      It displays source line related to the code address that accessed
      cacheline. It's a wrapper to global srcline sort entry.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-cmnzgm37mjz56ozsg4mnbgxq@git.kernel.org
      [ Remove __maybe_unused from now used 'he' parameter in filter_cb() ]
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      89d9ba8f
    • Jiri Olsa's avatar
      perf c2c report: Add 'cpucnt' sort key · b6fe2bbc
      Jiri Olsa authored
      It is to be displayed in the single cacheline output:
      
        cpucnt
      
      It displays number of distinct cpus that hit cacheline.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-ib2kdwam52fby9u2k3ij6lhm@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b6fe2bbc
    • Jiri Olsa's avatar
      perf c2c report: Add stats related sort keys · 92062d54
      Jiri Olsa authored
      It is to be displayed in the single cacheline output:
      
        median, mean_rmt, mean_lcl, mean_load, stddev
      
      It displays statistics hits related to cacheline accesses.
      Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Joe Mario <jmario@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/n/tip-m1r4uc9lcykf1jhpvwk2gkj8@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      92062d54