Commit d7c5429e authored by Qi Liu's avatar Qi Liu Committed by Zheng Zengkai
Browse files

drivers/perf: hisi: Add driver for HiSilicon PCIe PMU

mainline inclusion
from mainline-v5.17-rc1
commit 8404b0fb
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I5AZ87
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8404b0fbc7fb



--------------------------------------------------------------------------

PCIe PMU Root Complex Integrated End Point(RCiEP) device is supported
to sample bandwidth, latency, buffer occupation etc.

Each PMU RCiEP device monitors multiple Root Ports, and each RCiEP is
registered as a PMU in /sys/bus/event_source/devices, so users can
select target PMU, and use filter to do further sets.

Filtering options contains:
event     - select the event.
port      - select target Root Ports. Information of Root Ports are
            shown under sysfs.
bdf       - select requester_id of target EP device.
trig_len  - set trigger condition for starting event statistics.
trig_mode - set trigger mode. 0 means starting to statistic when bigger
            than trigger condition, and 1 means smaller.
thr_len   - set threshold for statistics.
thr_mode  - set threshold mode. 0 means count when bigger than threshold,
            and 1 means smaller.

Acked-by: default avatarKrzysztof Wilczyński <kw@linux.com>
Reviewed-by: default avatarJohn Garry <john.garry@huawei.com>
Signed-off-by: default avatarQi Liu <liuqi115@huawei.com>
Reviewed-by: default avatarShaokun Zhang <zhangshaokun@hisilicon.com>
Link: https://lore.kernel.org/r/20211202080633.2919-3-liuqi115@huawei.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
Signed-off-by: default avatarWangming Shao <shaowangming@h-partners.com>
Reviewed-by: default avatarJunhao He <hejunhao3@huawei.com>
Reviewed-by: default avatarYang Jihong <yangjihong1@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent f18bb5e3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -7976,8 +7976,10 @@ F: Documentation/devicetree/bindings/misc/hisilicon-hikey-usb.yaml
HISILICON PMU DRIVER
M:	Shaokun Zhang <zhangshaokun@hisilicon.com>
M:	Qi Liu <liuqi115@huawei.com>
S:	Supported
W:	http://www.hisilicon.com
F:	Documentation/admin-guide/perf/hisi-pcie-pmu.rst
F:	Documentation/admin-guide/perf/hisi-pmu.rst
F:	drivers/perf/hisilicon
+9 −0
Original line number Diff line number Diff line
@@ -5,3 +5,12 @@ config HISI_PMU
	  help
	  Support for HiSilicon SoC L3 Cache performance monitor, Hydra Home
	  Agent performance monitor and DDR Controller performance monitor.

config HISI_PCIE_PMU
	tristate "HiSilicon PCIE PERF PMU"
	depends on PCI && ARM64
	help
	  Provide support for HiSilicon PCIe performance monitoring unit (PMU)
	  RCiEP devices.
	  Adds the PCIe PMU into perf events system for monitoring latency,
	  bandwidth etc.
+2 −0
Original line number Diff line number Diff line
@@ -4,3 +4,5 @@ obj-$(CONFIG_HISI_PMU) += hisi_uncore_pmu.o hisi_uncore_l3c_pmu.o \
			  hisi_uncore_pa_pmu.o \
			  hisi_uncore_l3t_pmu.o \
			  hisi_uncore_lpddrc_pmu.o

obj-$(CONFIG_HISI_PCIE_PMU) += hisi_pcie_pmu.o
+951 −0

File added.

Preview size limit exceeded, changes collapsed.

+3 −0
Original line number Diff line number Diff line
@@ -178,6 +178,9 @@ enum cpuhp_state {
	CPUHP_AP_PERF_ARM_HISI_L3_ONLINE,
	CPUHP_AP_PERF_ARM_HISI_PA_ONLINE,
	CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE,
	#ifndef __GENKSYMS__
	CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE,
	#endif
	CPUHP_AP_PERF_ARM_L2X0_ONLINE,
	CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE,
	CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE,