From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751605AbdG0PKq (ORCPT ); Thu, 27 Jul 2017 11:10:46 -0400 Received: from foss.arm.com ([217.140.101.70]:48062 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751452AbdG0PKo (ORCPT ); Thu, 27 Jul 2017 11:10:44 -0400 From: Suzuki K Poulose To: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, will.deacon@arm.com, marc.zyngier@arm.com, mark.rutland@arm.com, sudeep.holla@arm.com, mathieu.poirier@linaro.org, Jonathan.Cameron@huawei.com, Suzuki K Poulose Subject: [PATCH v3 0/6] perf: Support for ARM DynamIQ Shared Unit PMU Date: Thu, 27 Jul 2017 16:10:12 +0100 Message-Id: <1501168218-26741-1-git-send-email-suzuki.poulose@arm.com> X-Mailer: git-send-email 2.7.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series adds support for the PMU in ARM DynamIQ Shared Unit (DSU). The DSU integrates one or more cores with an L3 memory system, control logic, and external interfaces to form a multicore cluster. The PMU allows counting the various events related to L3, SCU etc, using 32bit independent counters along with providing a 64bit cycle counter. The PMU can only be accessed via CPU system registers, which are common to the cores connected to the same DSU. The PMU registers follow the semantics of the ARMv8 PMU, mostly, with the exception that the counters record the cluster wide events. Tested on a Fast model with DSU. The driver only supports ARM64 at the moment. It can be extended to support ARM32 by providing register accessors like we do in arch/arm64/include/arm_dsu_pmu.h. The firmware should setup appropriate bits in the ACTLR_EL3/EL2 to allow EL1 access to the PMU registers. Series applies on v4.13-rc2 and is also available at: git://linux-arm.org/linux-skp.git 4.13/dsu-v3 Changes since V2: - Cleanup dsu_pmu_device_probe error handling. - Fix event validate_group to invert the result check of validate_event - Return errors if we failed to parse CPUs in the DSU. - Add MODULE_DEVICE_TABLE entry - Use hlist_entry_safe for converting cpuhp_node to dsu_pmu. - Added Reviews and Acks. Changes since V1: - Use the new of_device_node_get_cpu() helper for Coresight - Rebased to 4.13-rc2 Suzuki K Poulose (6): perf: Export perf_event_update_userpage of: Add helper for mapping device node to logical CPU number coresight: of: Use of_device_node_get_cpu helper irqchip: gic-v3: Use of_device_node_get_cpu helper dt-bindings: Document devicetree binding for ARM DSU PMU perf: ARM DynamIQ Shared Unit PMU support .../devicetree/bindings/arm/arm-dsu-pmu.txt | 27 + arch/arm64/include/asm/arm_dsu_pmu.h | 124 +++ drivers/hwtracing/coresight/of_coresight.c | 20 +- drivers/irqchip/irq-gic-v3.c | 30 +- drivers/of/base.c | 26 + drivers/perf/Kconfig | 9 + drivers/perf/Makefile | 1 + drivers/perf/arm_dsu_pmu.c | 883 +++++++++++++++++++++ include/linux/of_device.h | 7 + kernel/events/core.c | 1 + 10 files changed, 1087 insertions(+), 41 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/arm-dsu-pmu.txt create mode 100644 arch/arm64/include/asm/arm_dsu_pmu.h create mode 100644 drivers/perf/arm_dsu_pmu.c -- 2.7.5