1. 16 Dec, 2021 4 commits
    • Nicholas Piggin's avatar
      powerpc/pseries/vas: Don't print an error when VAS is unavailable · 0a006ace
      Nicholas Piggin authored
      KVM does not support VAS so guests always print a useless error on boot
      
          vas: HCALL(398) error -2, query_type 0, result buffer 0x57f2000
      
      Change this to only print the message if the error is not H_FUNCTION.
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20211126052133.1664375-1-npiggin@gmail.com
      0a006ace
    • Kajol Jain's avatar
      powerpc/perf: Add data source encodings for power10 platform · 6ed05a8e
      Kajol Jain authored
      The code represent memory/cache level data based on PERF_MEM_LVL_*
      namespace, which is in the process of deprication in the favour of
      newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_,HOPS_} fields.
      Add data source encodings to represent cache/memory data based on
      newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_,HOPS_} fields.
      
      Add data source encodings to represent data coming from local
      memory/Remote memory/distant memory and remote/distant cache hits.
      
      In order to represent data coming from OpenCAPI cache/memory, we use
      LVLNUM "PMEM" field which is used to present persistent memory accesses.
      
      Result in power10 system with patch changes:
      
      localhost:# ./perf mem report --sort="mem,sym,dso" --stdio
       # Overhead       Samples  Memory access             Symbol                      Shared Object
       # ........  ............  ........................  ..........................  ................
       #
          29.46%          2331  L1 or L1 hit              [.] __random                                     libc-2.28.so
          23.11%          2121  L1 or L1 hit              [.] producer_populate_cache                      producer_consumer
          18.56%          1758  L1 or L1 hit              [.] __random_r                                   libc-2.28.so
          15.64%          1559  L2 or L2 hit              [.] __random                                     libc-2.28.so
          .....
          0.09%              5  Remote socket, same board Any cache hit             [.] __random         libc-2.28.so
          0.07%              4  Remote socket, same board Any cache hit             [.] __random         libc-2.28.so
          .....
      Signed-off-by: default avatarKajol Jain <kjain@linux.ibm.com>
      Reviewed-by: default avatarMadhavan Srinivasan <maddy@linux.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20211206091749.87585-5-kjain@linux.ibm.com
      6ed05a8e
    • Kajol Jain's avatar
      powerpc/perf: Add encodings to represent data based on newer composite PERF_MEM_LVLNUM* fields · 4a20ee10
      Kajol Jain authored
      The code represent data coming from L1/L2/L3 cache hits based on
      PERF_MEM_LVL_* namespace, which is in the process of deprecation in
      the favour of newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_,HOPS_}
      fields.
      
      Add data source encodings to represent L1/L2/L3 cache hits based on
      newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_,HOPS_} fields for
      power10 and older platforms
      
      Result in power9 system without patch changes:
      
      localhost:# ./perf mem report --sort="mem,sym,dso" --stdio
       # Overhead       Samples  Memory access             Symbol                             Shared Object
       # ........  ............  ........................  .................................  ................
       #
          29.51%             1  L2 hit                    [k] perf_event_exec                [kernel.vmlinux]
          27.05%             1  L1 hit                    [k] perf_ctx_unlock                [kernel.vmlinux]
          13.93%             1  L1 hit                    [k] vtime_delta                    [kernel.vmlinux]
          13.11%             1  L1 hit                    [k] prepend_path.isra.11           [kernel.vmlinux]
           8.20%             1  L1 hit                    [.] 00000038.plt_call.__GI_strlen  libc-2.28.so
           8.20%             1  L1 hit                    [k] perf_event_interrupt           [kernel.vmlinux]
      
      Result in power9 system with patch changes:
      
      localhost:# ./perf mem report --sort="mem,sym,dso" --stdio
       # Overhead       Samples  Memory access             Symbol                      Shared Object
       # ........  ............  ........................  ..........................  ................
       #
          36.63%             1  L2 or L2 hit              [k] perf_event_exec         [kernel.vmlinux]
          25.50%             1  L1 or L1 hit              [k] vtime_delta             [kernel.vmlinux]
          13.12%             1  L1 or L1 hit              [k] unmap_region            [kernel.vmlinux]
          12.62%             1  L1 or L1 hit              [k] perf_sample_event_took  [kernel.vmlinux]
           6.93%             1  L1 or L1 hit              [k] perf_ctx_unlock         [kernel.vmlinux]
           5.20%             1  L1 or L1 hit              [.] __memcpy_power7         libc-2.28.so
      Signed-off-by: default avatarKajol Jain <kjain@linux.ibm.com>
      Reviewed-by: default avatarMadhavan Srinivasan <maddy@linux.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20211206091749.87585-4-kjain@linux.ibm.com
      4a20ee10
    • Kajol Jain's avatar
      perf: Add new macros for mem_hops field · cb1c4aba
      Kajol Jain authored
      Add new macros for mem_hops field which can be used to
      represent remote-node, socket and board level details.
      
      Currently the code had macro for HOPS_0, which corresponds
      to data coming from another core but same node.
      Add new macros for HOPS_1 to HOPS_3 to represent
      remote-node, socket and board level data.
      
      For ex: Encodings for mem_hops fields with L2 cache:
      
      L2			- local L2
      L2 | REMOTE | HOPS_0	- remote core, same node L2
      L2 | REMOTE | HOPS_1	- remote node, same socket L2
      L2 | REMOTE | HOPS_2	- remote socket, same board L2
      L2 | REMOTE | HOPS_3	- remote board L2
      Signed-off-by: default avatarKajol Jain <kjain@linux.ibm.com>
      Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20211206091749.87585-2-kjain@linux.ibm.com
      cb1c4aba
  2. 15 Dec, 2021 1 commit
  3. 14 Dec, 2021 1 commit
  4. 09 Dec, 2021 34 commits