• Thomas Richter's avatar
    perf list: Add s390 support for detailed/verbose PMU event description · 038586c3
    Thomas Richter authored
    'perf list' with flags -d and -v print a description (-d) or a very
    verbose explanation (-v) of CPU specific counter events.  These
    descriptions are provided with the json files in directory
    pmu-events/arch/s390/*.json.
    
    Display of these descriptions on s390 requires the corresponding json
    files.
    
    On s390 this does not work because function is_pmu_core() does not
    detect the s390 directory name where the CPU specific events are listed.
    On x86 it is:
    
      /sys/bus/event_source/devices/cpu
    
    whereas on s390 it is:
    
      /sys/bus/event_source/devices/cpum_cf
      /sys/bus/event_source/devices/cpum_sf
    
    Fix this by adding s390 directory name testing to function
    is_pmu_core(). This is the same approach as taken for the ARM platform.
    
    Output before:
    
    [root@s35lp76 perf]# ./perf list -d pmu
    List of pre-defined events (to be used in -e):
    
      cpum_cf/AES_BLOCKED_CYCLES/      [Kernel PMU event]
      cpum_cf/AES_BLOCKED_FUNCTIONS/   [Kernel PMU event]
      cpum_cf/AES_CYCLES/              [Kernel PMU event]
      cpum_cf/AES_FUNCTIONS/           [Kernel PMU event]
      ....
      cpum_cf/TX_NC_TEND/              [Kernel PMU event]
      cpum_cf/VX_BCD_EXECUTION_SLOTS/  [Kernel PMU event]
      cpum_sf/SF_CYCLES_BASIC/         [Kernel PMU event]
    
    Output after:
    
    [root@s35lp76 perf]# ./perf list -d pmu
    List of pre-defined events (to be used in -e):
    
      cpum_cf/AES_BLOCKED_CYCLES/      [Kernel PMU event]
      cpum_cf/AES_BLOCKED_FUNCTIONS/   [Kernel PMU event]
      cpum_cf/AES_CYCLES/              [Kernel PMU event]
      cpum_cf/AES_FUNCTIONS/           [Kernel PMU event]
      ....
      cpum_cf/TX_NC_TEND/              [Kernel PMU event]
      cpum_cf/VX_BCD_EXECUTION_SLOTS/  [Kernel PMU event]
      cpum_sf/SF_CYCLES_BASIC/         [Kernel PMU event]
    
    3906:
      bcd_dfp_execution_slots
           [BCD DFP Execution Slots]
      decimal_instructions
           [Decimal Instructions]
      dtlb2_gpage_writes
           [DTLB2 GPAGE Writes]
      dtlb2_hpage_writes
           [DTLB2 HPAGE Writes]
      dtlb2_misses
           [DTLB2 Misses]
      dtlb2_writes
           [DTLB2 Writes]
      itlb2_misses
           [ITLB2 Misses]
      itlb2_writes
           [ITLB2 Writes]
      l1c_tlb2_misses
           [L1C TLB2 Misses]
      .....
    
    cfvn 3:
      cpu_cycles
           [CPU Cycles]
      instructions
           [Instructions]
      l1d_dir_writes
           [L1D Directory Writes]
      l1d_penalty_cycles
           [L1D Penalty Cycles]
      l1i_dir_writes
           [L1I Directory Writes]
      l1i_penalty_cycles
           [L1I Penalty Cycles]
      problem_state_cpu_cycles
           [Problem State CPU Cycles]
      problem_state_instructions
           [Problem State Instructions]
      ....
    
    csvn generic:
      aes_blocked_cycles
           [AES Blocked Cycles]
      aes_blocked_functions
           [AES Blocked Functions]
      aes_cycles
           [AES Cycles]
      aes_functions
           [AES Functions]
      dea_blocked_cycles
           [DEA Blocked Cycles]
      dea_blocked_functions
           [DEA Blocked Functions]
      ....
    Signed-off-by: default avatarThomas Richter <tmricht@linux.vnet.ibm.com>
    Reviewed-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Link: http://lkml.kernel.org/r/20180416132314.33249-1-tmricht@linux.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    038586c3
pmu.c 30.4 KB