Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753374AbdFWNBs (ORCPT ); Fri, 23 Jun 2017 09:01:48 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:34748 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751496AbdFWNBq (ORCPT ); Fri, 23 Jun 2017 09:01:46 -0400 From: Jan Glauber To: Mark Rutland Cc: Will Deacon , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Borislav Petkov , Jan Glauber Subject: [PATCH v6 0/3] Cavium ARM64 uncore PMU support Date: Fri, 23 Jun 2017 15:01:25 +0200 Message-Id: <20170623130128.11006-1-jglauber@cavium.com> X-Mailer: git-send-email 2.9.0.rc0.21.g7777322 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1685 Lines: 46 Add support for various PMU counters found on the Cavium ThunderX and OcteonTx SoC. The driver provides common "uncore" functions to avoid code duplication and support adding more device PMUs (like L2 cache) in the future. Probe and removal of the PMUs is done by hooking into the ThunderX EDAC driver as this driver owns all the PCI devices containing the PMU counters. Patches are on top of 4.12-rc6. Changes to v5: - Only allow built-in CONFIG_CAVIUM_PMU - Drop unneeded export of perf_event_update_userpage() - Simplify callbacks in edac code, move CONFIG_CAVIUM_PMU check to header file - Fix some sparse static warnings - Add documentation - Fix OCX TLK event_valid check - Add group validation in event_init - Add a guard variable to prevent calling init twice - Use kasprintf and fix pmu name allocation - Remove unneeded check for embedded pmu - Loop around local64_cmpxchg - Simplify cvm_pmu_lmc_event_valid - Fix list_add error case Jan Glauber (3): perf: cavium: Support memory controller PMU counters perf: cavium: Support transmit-link PMU counters perf: cavium: Add Documentation Documentation/perf/cavium-pmu.txt | 74 +++++ drivers/edac/thunderx_edac.c | 13 +- drivers/perf/Kconfig | 9 + drivers/perf/Makefile | 1 + drivers/perf/cavium_pmu.c | 643 ++++++++++++++++++++++++++++++++++++++ include/linux/cpuhotplug.h | 1 + include/linux/perf/cavium_pmu.h | 54 ++++ 7 files changed, 794 insertions(+), 1 deletion(-) create mode 100644 Documentation/perf/cavium-pmu.txt create mode 100644 drivers/perf/cavium_pmu.c create mode 100644 include/linux/perf/cavium_pmu.h -- 2.9.0.rc0.21.g7777322