These are the low hanging fruit following GregKH's feedback that all the devices registered via perf_pmu_register() should have parents. Note that this causes potential ABI breakage. It may fall in the category of it isn't breakage if no one notices but I can't be certain of that. Whilst it is arguable that no one should be been accessing PMUs except via the event_source bus, there was documentation suggesting /sys/devices/ for particular PMUs (because it was a shorter path?) The first patch is pulled out of the series: https://lore.kernel.org/linux-cxl/20230327170247.6968-1-Jonathan.Cameron@xxxxxxxxxx/ [PATCH v3 0/5] CXL 3.0 Performance Monitoring Unit support In that particular case it is very useful to be able to figure out which CXL device the PMU device is associated with and looking at it's parents in the device model as shown with ls -lh /sys/bus/event_sources/devices/ is a very easy way to do this (once it is correctly parented). Addressing all the other instances of struct pmu not covered by this series is likely to be a more complex discussion but unlikely to have an affect on what is proposed here. Documentation updates deliberately 'fixed' in separate patches before changing the path to highlight that using /sys/bus/event_source/devices path is unchanged by this series and that is presumed to be the most common way these files are accessed. Jonathan Cameron (32): perf: Allow a PMU to have a parent perf/hisi-pcie: Assign parent for event_source device Documentation: hisi-pmu: Drop reference to /sys/devices path perf/hisi-uncore: Assign parents for event_source devices Documentation: hns-pmu: Use /sys/bus/event_source/devices paths perf/hisi-hns3: Assign parents for event_source device perf/amlogic: Assign parents for event_source devices perf/arm_cspmu: Assign parents for event_source devices Documentation: xgene-pmu: Use /sys/bus/event_source/devices paths perf/xgene: Assign parents for event_source devices Documentation: thunderx2-pmu: Use /sys/bus/event_source/devices paths perf/thunderx2: Assign parents for event_source devices perf/riscv: Assign parents for event_source devices Documentation: qcom-pmu: Use /sys/bus/event_source/devices paths perf/qcom: Assign parents for event_source devices perf/imx_ddr: Assign parents for event_source devices perf/arm_pmu: Assign parents for event_source devices perf/alibaba_uncore: Assign parents for event_source device perf/arm-cci: Assign parents for event_source device perf/arm-ccn: Assign parents for event_source device perf/arm-cmn: Assign parents for event_source device perf/arm-dmc620: Assign parents for event_source device perf/arm-dsu: Assign parents for event_source device perf/arm-smmuv3: Assign parents for event_source device perf/arm-spe: Assign parents for event_source device arc: Assign parents for event_source devices ARM: imx: Assign parents for mmdc event_source devices dmaengine: idxd: Assign parent for event_source device fpga: dfl: Assign parent for event_source device drivers/nvdimm: Assign parent for event_source device Documentation: ABI + trace: hisi_ptt: update paths to bus/event_source hwtracing: hisi_ptt: Assign parent for event_source device ...i_ptt => sysfs-bus-event_source-devices-hisi_ptt} | 12 ++++++------ Documentation/admin-guide/perf/hisi-pmu.rst | 1 - Documentation/admin-guide/perf/hns3-pmu.rst | 8 ++++---- Documentation/admin-guide/perf/qcom_l2_pmu.rst | 2 +- Documentation/admin-guide/perf/qcom_l3_pmu.rst | 2 +- Documentation/admin-guide/perf/thunderx2-pmu.rst | 2 +- Documentation/admin-guide/perf/xgene-pmu.rst | 2 +- Documentation/trace/hisi-ptt.rst | 4 ++-- MAINTAINERS | 2 +- arch/arc/kernel/perf_event.c | 1 + arch/arm/mach-imx/mmdc.c | 1 + drivers/dma/idxd/perfmon.c | 1 + drivers/fpga/dfl-fme-perf.c | 1 + drivers/hwtracing/ptt/hisi_ptt.c | 1 + drivers/nvdimm/nd_perf.c | 1 + drivers/perf/alibaba_uncore_drw_pmu.c | 1 + drivers/perf/amlogic/meson_ddr_pmu_core.c | 1 + drivers/perf/arm-cci.c | 1 + drivers/perf/arm-ccn.c | 1 + drivers/perf/arm-cmn.c | 1 + drivers/perf/arm_cspmu/arm_cspmu.c | 1 + drivers/perf/arm_dmc620_pmu.c | 1 + drivers/perf/arm_dsu_pmu.c | 1 + drivers/perf/arm_pmu_platform.c | 1 + drivers/perf/arm_smmuv3_pmu.c | 1 + drivers/perf/arm_spe_pmu.c | 1 + drivers/perf/fsl_imx8_ddr_perf.c | 1 + drivers/perf/hisilicon/hisi_pcie_pmu.c | 1 + drivers/perf/hisilicon/hisi_uncore_pmu.c | 1 + drivers/perf/hisilicon/hns3_pmu.c | 1 + drivers/perf/qcom_l2_pmu.c | 1 + drivers/perf/qcom_l3_pmu.c | 1 + drivers/perf/riscv_pmu_legacy.c | 1 + drivers/perf/riscv_pmu_sbi.c | 1 + drivers/perf/thunderx2_pmu.c | 1 + drivers/perf/xgene_pmu.c | 1 + include/linux/perf_event.h | 1 + kernel/events/core.c | 1 + 38 files changed, 46 insertions(+), 18 deletions(-) rename Documentation/ABI/testing/{sysfs-devices-hisi_ptt => sysfs-bus-event_source-devices-hisi_ptt} (83%) -- 2.37.2