• Kajol Jain's avatar
    powerpc/papr_scm: Add perf interface support · 4c08d4bb
    Kajol Jain authored
    Performance monitoring support for papr-scm nvdimm devices
    via perf interface is added which includes addition of pmu
    functions like add/del/read/event_init for nvdimm_pmu struture.
    
    A new parameter 'priv' in added to the pdev_archdata structure to save
    nvdimm_pmu device pointer, to handle the unregistering of pmu device.
    
    papr_scm_pmu_register function populates the nvdimm_pmu structure
    with name, capabilities, cpumask along with event handling
    functions. Finally the populated nvdimm_pmu structure is passed to
    register the pmu device. Event handling functions internally uses
    hcall to get events and counter data.
    
    Result in power9 machine with 2 nvdimm device:
    
    Ex: List all event by perf list
    
    command:# perf list nmem
    
      nmem0/cache_rh_cnt/                                [Kernel PMU event]
      nmem0/cache_wh_cnt/                                [Kernel PMU event]
      nmem0/cri_res_util/                                [Kernel PMU event]
      nmem0/ctl_res_cnt/                                 [Kernel PMU event]
      nmem0/ctl_res_tm/                                  [Kernel PMU event]
      nmem0/fast_w_cnt/                                  [Kernel PMU event]
      nmem0/host_l_cnt/                                  [Kernel PMU event]
      nmem0/host_l_dur/                                  [Kernel PMU event]
      nmem0/host_s_cnt/                                  [Kernel PMU event]
      nmem0/host_s_dur/                                  [Kernel PMU event]
      nmem0/med_r_cnt/                                   [Kernel PMU event]
      nmem0/med_r_dur/                                   [Kernel PMU event]
      nmem0/med_w_cnt/                                   [Kernel PMU event]
      nmem0/med_w_dur/                                   [Kernel PMU event]
      nmem0/mem_life/                                    [Kernel PMU event]
      nmem0/poweron_secs/                                [Kernel PMU event]
      ...
      nmem1/mem_life/                                    [Kernel PMU event]
      nmem1/poweron_secs/                                [Kernel PMU event]
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Tested-by: default avatarNageswara R Sastry <rnsastry@linux.ibm.com>
    Signed-off-by: default avatarKajol Jain <kjain@linux.ibm.com>
    [Add numa_map_to_online_node function call to get online node id]
    Reported-by: default avatarNageswara R Sastry <rnsastry@linux.ibm.com>
    Reviewed-by: default avatarMadhavan Srinivasan <maddy@in.ibm.com>
    Link: https://lore.kernel.org/r/20220225143024.47947-4-kjain@linux.ibm.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    4c08d4bb
papr_scm.c 39.2 KB