Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3416056pxb; Mon, 24 Jan 2022 09:06:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJzHVCKCxP58sqTE873b0MuV5DEgTyMKLzmBZXh0LhFsQvgRStSq2RYL6Xx60mdmnuN2ArZU X-Received: by 2002:a63:3808:: with SMTP id f8mr12256339pga.435.1643043994343; Mon, 24 Jan 2022 09:06:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643043994; cv=none; d=google.com; s=arc-20160816; b=tMvQej4pNOA7gcPMoEQ3msf0aXBMVCCCMBlCNefPiZ7BKHeIqQnPPdzhLEcvBAntul unSdrerqAK+DizftZcObXjl9ow7NewWC0HmHWDU+5fFzyg0gDmCFVGHfFJoN+JLSmqbw o8NrCBxuk16Ucv4wizsCOnDm+ORWskJjNKZRKVBefYKXpvRcYnh2Zn3pnS9/IrrUg5Yb rwVUtZwsOiRpsSi/24Q9lcWtNTy0Gk67AwJJrp1NoNP8iUxDnuJ1zP/qTZsVXNpOaQ8c 3EmNqIfWDzhVxQDlhxvL8BWh0PvSt33EnRYz2kJoQoavTzyEGEooPoFPl5nH2mslP/bQ ZmrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=Z22H07Axa4Z3oQCO7p0q0iprGL9S0YMInMPKehSabZM=; b=V2XQBfWAX2dpYvfcJ0skW53589xgAKlV7uWF42VeH6phIQEE64wihDsd/r4h+VBUUx x3Le882vsy58upZmgT1gEtSfsiFp3TXrC/eQ36xXOxxQI0+C3JMV867r+K69qaWjhIeU qtrLz61EbWSIHjvawejLqE9aoN7IqHww0a4jk2mLZuGQAjXKQQLmivu/L5rt1xLlwk8K g5hNb0HhQo2yYHGcyF2J4hvdZrE0iZPDV9ftdW1a8PJYu3CxC/dduziYNJRjXb30ba7g GZ6H+t9CE3OTXWqB9ruRenJA2HeM2dIcO8R9lmD85zAZWzpvDgwKIgFuOd0K/c8fKgxo 17aQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v7si14675541plp.523.2022.01.24.09.06.19; Mon, 24 Jan 2022 09:06:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241407AbiAXEba (ORCPT + 99 others); Sun, 23 Jan 2022 23:31:30 -0500 Received: from foss.arm.com ([217.140.110.172]:47110 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241400AbiAXEb3 (ORCPT ); Sun, 23 Jan 2022 23:31:29 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5B720ED1; Sun, 23 Jan 2022 20:31:28 -0800 (PST) Received: from p8cg001049571a15.arm.com (unknown [10.119.34.209]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 15E983F73B; Sun, 23 Jan 2022 20:31:19 -0800 (PST) From: Anshuman Khandual To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Anshuman Khandual , Catalin Marinas , Will Deacon , Mark Rutland , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , linux-perf-users@vger.kernel.org Subject: [RFC V1 00/11] arm64/perf: Enable branch stack sampling Date: Mon, 24 Jan 2022 10:00:42 +0530 Message-Id: <1642998653-21377-1-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series enables perf branch stack sampling support on arm64 platform via a new arch feature called Branch Record Buffer Extension (BRBE). All relevant register definitions could be accessed here. https://developer.arm.com/documentation/ddi0601/2021-12/AArch64-Registers The last two patches extend the perf ABI to accommodate additional branch information that can be captured in BRBE. This series applies on v5.17-rc1. Cc: Catalin Marinas Cc: Will Deacon Cc: Mark Rutland Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-perf-users@vger.kernel.org Cc: linux-kernel@vger.kernel.org Anshuman Khandual (11): perf: Consolidate branch sample filter helpers arm64/perf: Add register definitions for BRBE arm64/perf: Update struct arm_pmu for BRBE arm64/perf: Update struct pmu_hw_events for BRBE arm64/perf: Detect support for BRBE arm64/perf: Drive BRBE from perf event states arm64/perf: Add BRBE driver arm64/perf: Enable branch stack sampling perf: Add more generic branch types perf: Expand perf_branch_entry.type perf: Capture branch privilege information arch/arm64/include/asm/sysreg.h | 216 ++++++++++++ arch/arm64/kernel/perf_event.c | 48 +++ arch/x86/events/intel/lbr.c | 4 +- drivers/perf/Kconfig | 11 + drivers/perf/Makefile | 1 + drivers/perf/arm_pmu.c | 65 +++- drivers/perf/arm_pmu_brbe.c | 432 +++++++++++++++++++++++ drivers/perf/arm_pmu_brbe.h | 259 ++++++++++++++ drivers/perf/arm_pmu_platform.c | 34 ++ include/linux/perf/arm_pmu.h | 49 +++ include/linux/perf_event.h | 24 ++ include/uapi/linux/perf_event.h | 26 +- kernel/events/core.c | 9 +- tools/include/uapi/linux/perf_event.h | 26 +- tools/perf/Documentation/perf-record.txt | 1 + tools/perf/util/branch.c | 13 +- tools/perf/util/parse-branch-options.c | 1 + 17 files changed, 1202 insertions(+), 17 deletions(-) create mode 100644 drivers/perf/arm_pmu_brbe.c create mode 100644 drivers/perf/arm_pmu_brbe.h -- 2.25.1