From: Anshuman Khandual <anshuman.khandual@arm.com>
To: Suzuki K Poulose <suzuki.poulose@arm.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
Cc: Mark Brown <broonie@kernel.org>,
James Clark <james.clark@arm.com>, Rob Herring <robh@kernel.org>,
Marc Zyngier <maz@kernel.org>, Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH V5 2/7] arm64/perf: Update struct arm_pmu for BRBE
Date: Fri, 18 Nov 2022 12:09:07 +0530 [thread overview]
Message-ID: <4efc0ae1-564e-dd05-842a-46fb1aeb4ad8@arm.com> (raw)
In-Reply-To: <8f6d3424-2650-8e8b-61f7-1431aec4633b@arm.com>
On 11/9/22 17:00, Suzuki K Poulose wrote:
> On 07/11/2022 06:25, Anshuman Khandual wrote:
>> Although BRBE is an armv8 speciifc HW feature, abstracting out its various
>> function callbacks at the struct arm_pmu level is preferred, as it cleaner
>> , easier to follow and maintain.
>>
>> Besides some helpers i.e brbe_supported(), brbe_probe() and brbe_reset()
>> might not fit seamlessly, when tried to be embedded via existing arm_pmu
>> helpers in the armv8 implementation.
>>
>> Updates the struct arm_pmu to include all required helpers that will drive
>> BRBE functionality for a given PMU implementation. These are the following.
>>
>> - brbe_filter : Convert perf event filters into BRBE HW filters
>> - brbe_probe : Probe BRBE HW and capture its attributes
>> - brbe_enable : Enable BRBE HW with a given config
>> - brbe_disable : Disable BRBE HW
>> - brbe_read : Read BRBE buffer for captured branch records
>> - brbe_reset : Reset BRBE buffer
>> - brbe_supported: Whether BRBE is supported or not
>>
>> A BRBE driver implementation needs to provide these functionalities.
>
> Could these not be hidden from the generic arm_pmu and kept in the
> arm64 pmu backend ? It looks like they are quite easy to simply
> move these to the corresponding hooks in arm64 pmu.
We have had this discussion multiple times in the past [1], but I still
believe, keeping BRBE implementation hooks at the PMU level rather than
embedding them with other PMU events handling, is a much better logical
abstraction.
[1] https://lore.kernel.org/all/c3804290-bdb1-d1eb-3526-9b0ce4c8e8b1@arm.com/
--------------------------------------------------------------------------
>
> One thing to answer in the commit msg is why we need the hooks here.
> Have we concluded that adding BRBE hooks to struct arm_pmu for what is
> an armv8 specific feature is the right approach? I don't recall
> reaching that conclusion.
Although it might be possible to have this implementation embedded in
the existing armv8 PMU implementation, I still believe that the BRBE
functionalities abstracted out at the arm_pmu level with a separate
config option is cleaner, easier to follow and to maintain as well.
Besides some helpers i.e brbe_supported(), brbe_probe() and brbe_reset()
might not fit seamlessly, when tried to be embedded via existing arm_pmu
helpers in the armv8 implementation.
Nonetheless if arm_pmu based additional BRBE helpers is absolutely a no
go for folks here in general, will explore arm64 based implementation.
----------------------------------------------------------------------------
I am still waiting for maintainer's take on this issue. I will be happy to
rework this series to move all these implementation inside arm64 callbacks
instead, if that is required or preferred by the maintainers. But according
to me, this current abstraction layout is much better.
- Anshuman
next prev parent reply other threads:[~2022-11-18 6:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-07 6:25 [PATCH V5 0/7] arm64/perf: Enable branch stack sampling Anshuman Khandual
2022-11-07 6:25 ` [PATCH V5 1/7] arm64/perf: Add BRBE registers and fields Anshuman Khandual
2022-11-07 15:15 ` Mark Brown
2022-11-07 6:25 ` [PATCH V5 2/7] arm64/perf: Update struct arm_pmu for BRBE Anshuman Khandual
2022-11-09 11:30 ` Suzuki K Poulose
2022-11-18 6:39 ` Anshuman Khandual [this message]
2022-11-18 17:47 ` Mark Rutland
2022-11-29 6:06 ` Anshuman Khandual
2022-11-07 6:25 ` [PATCH V5 3/7] arm64/perf: Update struct pmu_hw_events " Anshuman Khandual
2022-11-07 6:25 ` [PATCH V5 4/7] driver/perf/arm_pmu_platform: Add support for BRBE attributes detection Anshuman Khandual
2022-11-18 18:01 ` Mark Rutland
2022-11-21 6:36 ` Anshuman Khandual
2022-11-21 11:39 ` Mark Rutland
2022-11-28 8:24 ` Anshuman Khandual
2022-11-07 6:25 ` [PATCH V5 5/7] arm64/perf: Drive BRBE from perf event states Anshuman Khandual
2022-11-18 18:15 ` Mark Rutland
2022-11-29 6:26 ` Anshuman Khandual
2022-11-07 6:25 ` [PATCH V5 6/7] arm64/perf: Add BRBE driver Anshuman Khandual
2022-11-09 3:08 ` Anshuman Khandual
2022-11-16 16:42 ` James Clark
2022-11-17 5:45 ` Anshuman Khandual
2022-11-17 10:09 ` James Clark
2022-11-18 6:14 ` Anshuman Khandual
2022-11-29 15:53 ` James Clark
2022-11-30 4:49 ` Anshuman Khandual
2022-11-30 16:56 ` James Clark
2022-12-06 17:05 ` James Clark
2022-11-07 6:25 ` [PATCH V5 7/7] arm64/perf: Enable branch stack sampling 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=4efc0ae1-564e-dd05-842a-46fb1aeb4ad8@arm.com \
--to=anshuman.khandual@arm.com \
--cc=acme@kernel.org \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=james.clark@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=suzuki.poulose@arm.com \
--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
all inboxes | Powered by JetHome®