linux/arch/powerpc/platforms
Kajol Jain 4c08d4bbc0 powerpc/papr_scm: Add perf interface support
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: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
[Add numa_map_to_online_node function call to get online node id]
Reported-by: Nageswara R Sastry <rnsastry@linux.ibm.com>
Reviewed-by: Madhavan Srinivasan <maddy@in.ibm.com>
Link: https://lore.kernel.org/r/20220225143024.47947-4-kjain@linux.ibm.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2022-03-09 17:50:50 -08:00
..
4xx powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
8xx powerpc: bad_page_fault get registers from regs 2021-02-09 00:02:09 +11:00
40x powerpc/4xx: Complete removal of MSI support 2021-12-09 11:52:20 +01:00
44x powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
52xx powerpc: Rename PPC_NATIVE to PPC_HASH_MMU_NATIVE 2021-12-02 22:57:22 +11:00
82xx powerpc: Bulk conversion to generic_handle_domain_irq() 2021-08-12 11:39:41 +01:00
83xx powerpc/83xx: Add __init attribute to eligible functions 2021-12-23 22:33:18 +11:00
85xx powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
86xx powerpc: retire sbc8641d board support 2021-08-27 00:48:18 +10:00
512x powerpc/512x: Add __init attribute to eligible functions 2021-12-23 22:33:19 +11:00
amigaone powerpc/amigaone: Make amigaone_discover_phbs() static 2021-02-11 23:28:51 +11:00
book3s powerpc/vas: Fix potential NULL pointer dereference 2021-10-22 15:22:04 +11:00
cell powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
chrp powerpc/chrp: Add __init attribute to eligible functions 2021-12-23 22:33:13 +11:00
embedded6xx powerpc/embedded6xx: Add __init attribute to eligible functions 2021-12-23 22:33:17 +11:00
maple powerpc/64s: Make hash MMU support configurable 2021-12-09 22:40:24 +11:00
microwatt powerpc/microwatt: add POWER9_CPU, clear PPC_64S_HASH_MMU 2021-12-09 22:41:16 +11:00
pasemi bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
powermac powerpc/mm: Switch obsolete dssall to .long 2021-12-23 22:35:13 +11:00
powernv powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
ps3 powerpc/ps3: Add __init attribute to eligible functions 2021-12-23 22:33:16 +11:00
pseries powerpc/papr_scm: Add perf interface support 2022-03-09 17:50:50 -08:00
fsl_uli1575.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
Kconfig powerpc: Rename PPC_NATIVE to PPC_HASH_MMU_NATIVE 2021-12-02 22:57:22 +11:00
Kconfig.cputype powerpc: Remove CONFIG_PPC_HAVE_KUAP and CONFIG_PPC_HAVE_KUEP 2021-12-09 22:41:20 +11:00
Makefile powerpc: Add Microwatt platform 2021-06-21 21:15:26 +10:00