linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Clark <james.clark@arm.com>
To: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Rob Herring <robh@kernel.org>, Marc Zyngier <maz@kernel.org>,
	Ingo Molnar <mingo@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, peterz@infradead.org,
	acme@kernel.org, mark.rutland@arm.com, will@kernel.org,
	catalin.marinas@arm.com
Subject: Re: [PATCH V2 0/7] arm64/perf: Enable branch stack sampling
Date: Tue, 13 Sep 2022 11:55:05 +0100	[thread overview]
Message-ID: <e44d0bd6-7809-59db-0133-1c6c9ba8cd55@arm.com> (raw)
In-Reply-To: <20220908051046.465307-1-anshuman.khandual@arm.com>



On 08/09/2022 06:10, Anshuman Khandual wrote:
> 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
> 
> This series applies on v6.0-rc4 after the BRBE related perf ABI changes series
> (V7) that was posted earlier, and a branch sample filter helper patch.
> 
> https://lore.kernel.org/all/20220824044822.70230-1-anshuman.khandual@arm.com/
> 
> https://lore.kernel.org/all/20220906084414.396220-1-anshuman.khandual@arm.com/
> 
> Following issues have been resolved
> 
> - Jame's concerns regarding permission inadequacy related to perfmon_capable()
> - Jame's concerns regarding using perf_event_paranoid along with perfmon_capable()

I don't see the resolution to this one. I'm not 100% sure of the code
path used for LBR, but I think you just need to take perf_allow_kernel()
into account somewhere to make this command have the same result with
BRBE. Is there any contention that the permissions shouldn't behave in
the same way across platforms? This is when perf_event_paranoid < 2:

Intel:

  $ perf record -j any -- ls

  [ perf record: Woken up 1 times to write data ]
  [ perf record: Captured and wrote 0.014 MB perf.data (16 samples) ]

Arm:

  $ perf record -j any -- ls

  Error:
  No permission to enable cycles event.

> 
> Following issues remain inconclusive
> 
> - Rob's concerns regarding the series structure, arm_pmu callbacks based framework
> 
> Changes in V2:
> 
> - Dropped branch sample filter helpers consolidation patch from this series 
> - Added new hw_perf_event.flags element ARMPMU_EVT_PRIV to cache perfmon_capable()
> - Use cached perfmon_capable() while configuring BRBE branch record filters
> 
> Changes in V1:
> 
> https://lore.kernel.org/linux-arm-kernel/20220613100119.684673-1-anshuman.khandual@arm.com/
> 
> - Added CONFIG_PERF_EVENTS wrapper for all branch sample filter helpers
> - Process new perf branch types via PERF_BR_EXTEND_ABI
> 
> Changes in RFC V2:
> 
> https://lore.kernel.org/linux-arm-kernel/20220412115455.293119-1-anshuman.khandual@arm.com/
> 
> - Added branch_sample_priv() while consolidating other branch sample filter helpers
> - Changed all SYS_BRBXXXN_EL1 register definition encodings per Marc
> - Changed the BRBE driver as per proposed BRBE related perf ABI changes (V5)
> - Added documentation for struct arm_pmu changes, updated commit message
> - Updated commit message for BRBE detection infrastructure patch
> - PERF_SAMPLE_BRANCH_KERNEL gets checked during arm event init (outside the driver)
> - Branch privilege state capture mechanism has now moved inside the driver
> 
> Changes in RFC V1:
> 
> https://lore.kernel.org/all/1642998653-21377-1-git-send-email-anshuman.khandual@arm.com/
> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> Cc: Will Deacon <will@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: James Clark <james.clark@arm.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-perf-users@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> 
> Anshuman Khandual (7):
>   arm64/perf: Add register definitions for BRBE
>   arm64/perf: Update struct arm_pmu for BRBE
>   arm64/perf: Update struct pmu_hw_events for BRBE
>   driver/perf/arm_pmu_platform: Add support for BRBE attributes detection
>   arm64/perf: Drive BRBE from perf event states
>   arm64/perf: Add BRBE driver
>   arm64/perf: Enable branch stack sampling
> 
>  arch/arm64/include/asm/sysreg.h | 222 ++++++++++++++++
>  arch/arm64/kernel/perf_event.c  |  48 ++++
>  drivers/perf/Kconfig            |  11 +
>  drivers/perf/Makefile           |   1 +
>  drivers/perf/arm_pmu.c          |  82 +++++-
>  drivers/perf/arm_pmu_brbe.c     | 448 ++++++++++++++++++++++++++++++++
>  drivers/perf/arm_pmu_brbe.h     | 259 ++++++++++++++++++
>  drivers/perf/arm_pmu_platform.c |  34 +++
>  include/linux/perf/arm_pmu.h    |  67 +++++
>  9 files changed, 1169 insertions(+), 3 deletions(-)
>  create mode 100644 drivers/perf/arm_pmu_brbe.c
>  create mode 100644 drivers/perf/arm_pmu_brbe.h
> 

  parent reply	other threads:[~2022-09-13 10:55 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-08  5:10 [PATCH V2 0/7] arm64/perf: Enable branch stack sampling Anshuman Khandual
2022-09-08  5:10 ` [PATCH V2 1/7] arm64/perf: Add register definitions for BRBE Anshuman Khandual
2022-09-12  9:57   ` Mark Brown
2022-09-13  6:24     ` Anshuman Khandual
2022-09-13 11:30       ` Mark Brown
2022-09-08  5:10 ` [PATCH V2 2/7] arm64/perf: Update struct arm_pmu " Anshuman Khandual
2022-09-08  5:10 ` [PATCH V2 3/7] arm64/perf: Update struct pmu_hw_events " Anshuman Khandual
     [not found]   ` <202209082022.6BPdyQn8-lkp@intel.com>
2022-09-09  3:11     ` Anshuman Khandual
     [not found]   ` <202209082259.XDCTMY9g-lkp@intel.com>
2022-09-09  3:14     ` Anshuman Khandual
2022-09-12 10:12   ` Mark Brown
2022-09-13  5:33     ` Anshuman Khandual
2022-09-13 11:43       ` Mark Brown
2022-09-14  3:39         ` Anshuman Khandual
2022-09-14  9:35           ` Mark Brown
2022-09-08  5:10 ` [PATCH V2 4/7] driver/perf/arm_pmu_platform: Add support for BRBE attributes detection Anshuman Khandual
2022-09-08  5:10 ` [PATCH V2 5/7] arm64/perf: Drive BRBE from perf event states Anshuman Khandual
2022-09-08 15:31   ` kernel test robot
2022-09-08  5:10 ` [PATCH V2 6/7] arm64/perf: Add BRBE driver Anshuman Khandual
2022-09-08  9:23   ` kernel test robot
2022-09-08 10:16     ` Anshuman Khandual
2022-09-13 10:39   ` James Clark
2022-09-13 11:38     ` Anshuman Khandual
2022-09-08  5:10 ` [PATCH V2 7/7] arm64/perf: Enable branch stack sampling Anshuman Khandual
2022-09-13 10:55 ` James Clark [this message]
2022-09-13 12:12   ` [PATCH V2 0/7] " Anshuman Khandual
2022-09-13 13:12     ` James Clark
2022-09-14  4:43       ` Anshuman Khandual

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e44d0bd6-7809-59db-0133-1c6c9ba8cd55@arm.com \
    --to=james.clark@arm.com \
    --cc=acme@kernel.org \
    --cc=anshuman.khandual@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=robh@kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).