• Kan Liang's avatar
    perf script python: Add script to profile and resolve physical mem type · 41013f0c
    Kan Liang authored
    There could be different types of memory in the system. E.g normal
    System Memory, Persistent Memory. To understand how the workload maps to
    those memories, it's important to know the I/O statistics of them.  Perf
    can collect physical addresses, but those are raw data.  It still needs
    extra work to resolve the physical addresses.  Provide a script to
    facilitate the physical addresses resolving and I/O statistics.
    
    Profile with MEM_INST_RETIRED.ALL_LOADS or MEM_UOPS_RETIRED.ALL_LOADS
    event if any of them is available.
    
    Look up the /proc/iomem and resolve the physical address.  Provide
    memory type summary.
    
    Here is an example output:
    
      # perf script report mem-phys-addr
      Event: mem_inst_retired.all_loads:P
      Memory type                                    count   percentage
      ----------------------------------------  -----------  -----------
      System RAM                                        74        53.2%
      Persistent Memory                                 55        39.6%
      N/A
    
      ---
    
    Changes since V2:
     - Apply the new license rules.
     - Add comments for globals
    
    Changes since V1:
     - Do not mix DLA and Load Latency. Do not compare the loads and stores.
       Only profile the loads.
     - Use event name to replace the RAW event
    Signed-off-by: default avatarKan Liang <Kan.liang@intel.com>
    Reviewed-by: default avatarAndi Kleen <ak@linux.intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Philippe Ombredanne <pombredanne@nexb.com>
    Cc: Stephane Eranian <eranian@google.com>
    Link: https://lkml.kernel.org/r/1515099595-34770-1-git-send-email-kan.liang@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    41013f0c
trace-event-python.c 37.8 KB