RE: [RESEND PATCH v3 1/2] perf: coresight_pmu: Add support for ARM CoreSight PMU driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

> -----Original Message-----
> From: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
> Sent: Thursday, July 21, 2022 10:36 AM
> To: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
> Cc: Besar Wicaksono <bwicaksono@xxxxxxxxxx>; Robin Murphy
> <robin.murphy@xxxxxxx>; catalin.marinas@xxxxxxx; will@xxxxxxxxxx;
> mark.rutland@xxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; linux-tegra@xxxxxxxxxxxxxxx;
> sudeep.holla@xxxxxxx; thanu.rangarajan@xxxxxxx;
> Michael.Williams@xxxxxxx; Thierry Reding <treding@xxxxxxxxxx>; Jonathan
> Hunter <jonathanh@xxxxxxxxxx>; Vikram Sethi <vsethi@xxxxxxxxxx>;
> mike.leach@xxxxxxxxxx; leo.yan@xxxxxxxxxx
> Subject: Re: [RESEND PATCH v3 1/2] perf: coresight_pmu: Add support for
> ARM CoreSight PMU driver
> 
> External email: Use caution opening links or attachments
> 
> 
> On Thu, 21 Jul 2022 at 03:19, Suzuki K Poulose <suzuki.poulose@xxxxxxx>
> wrote:
> >
> > Hi
> >
> > On 14/07/2022 05:47, Besar Wicaksono wrote:
> > >
> > >
> > >> -----Original Message-----
> > >> From: Robin Murphy <robin.murphy@xxxxxxx>
> > >> Sent: Wednesday, July 13, 2022 3:13 AM
> > >> To: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>; Besar Wicaksono
> > >> <bwicaksono@xxxxxxxxxx>
> > >> Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>;
> catalin.marinas@xxxxxxx;
> > >> will@xxxxxxxxxx; mark.rutland@xxxxxxx; linux-arm-
> > >> kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> > >> tegra@xxxxxxxxxxxxxxx; sudeep.holla@xxxxxxx;
> > >> thanu.rangarajan@xxxxxxx; Michael.Williams@xxxxxxx; Thierry
> Reding
> > >> <treding@xxxxxxxxxx>; Jonathan Hunter <jonathanh@xxxxxxxxxx>;
> Vikram
> > >> Sethi <vsethi@xxxxxxxxxx>; mike.leach@xxxxxxxxxx; leo.yan@xxxxxxxxxx
> > >> Subject: Re: [RESEND PATCH v3 1/2] perf: coresight_pmu: Add support
> for
> > >> ARM CoreSight PMU driver
> > >>
> > >> External email: Use caution opening links or attachments
> > >>
> > >>
> > >> On 2022-07-12 17:36, Mathieu Poirier wrote:
> > >> [...]
> > >>>>> If we have decied to call this arm_system_pmu, (which I am
> perfectly
> > >>>>> happy with), could we please stick to that name for functions that
> we
> > >>>>> export ?
> > >>>>>
> > >>>>> e.g,
> > >>>>>
> > >>
> s/coresight_pmu_sysfs_event_show/arm_system_pmu_event_show()/
> > >>>>>
> > >>>>
> > >>>> Just want to confirm, is it just the public functions or do we need to
> > >> replace
> > >>>> all that has "coresight" naming ? Including the static functions, structs,
> > >> filename.
> > >>>
> > >>> I think all references to "coresight" should be changed to
> > >> "arm_system_pmu",
> > >>> including filenames.  That way there is no doubt this IP block is not
> > >>> related, and does not interoperate, with the any of the "coresight" IP
> > >> blocks
> > >>> already supported[1] in the kernel.
> > >>>
> > >>> I have looked at the documentation[2] in the cover letter and I agree
> > >>> with an earlier comment from Sudeep that this IP has very little to do
> with
> > >> any
> > >>> of the other CoreSight IP blocks found in the CoreSight framework[1].
> > >> Using the
> > >>> "coresight" naming convention in this driver would be _extremely_
> > >> confusing,
> > >>> especially when it comes to exported functions.
> > >>
> > >> But conversely, how is it not confusing to make up completely different
> > >> names for things than what they're actually called? The CoreSight
> > >> Performance Monitoring Unit is a part of the Arm CoreSight
> architecture,
> > >> it says it right there on page 1. What if I instinctively associate the
> > >> name Mathieu with someone more familiar to me, so to avoid confusion
> I'd
> > >> prefer to call you Steve? Is that OK?
> > >>
> > >
> > > What is the naming convention for modules under drivers/perf ?
> > > In my observation, the names there correspond to the part monitored by
> > > the PMU. The confusion on using "coresight_pmu" naming could be that
> > > people may think the PMU monitors coresight system, i.e the trace
> system under hwtracing.
> > > However, the driver in this patch is for a new PMU standard that
> monitors uncore
> > > parts. Uncore was considered as terminology from Intel, so "system" was
> picked instead.
> > > Please see this thread for reference:
> > >    https://lore.kernel.org/linux-arm-
> kernel/20220510111318.GD27557@willie-the-truck/
> >
> > I think we all understand the state of affairs.
> >
> > - We have an architecutre specification for PMUs, Arm CoreSight PMU
> > Architecutre, which has absolutely no relationship with :
> >
> >     either CoreSight Self-Hosted Tracing (handled by "coresight"
> > subsystem in the kernel under drivers/hwtracing/coresight/, with a user
> > visible pmu as "cs_etm")
> >
> >     or the CoreSight Architecture (except for the name). This is of less
> > significance in general. But has a significant impact on the "name"
> > users might expect for the driver/Kconfig etc.
> >
> > - We want to be able to make it easier for the users/developers to
> > choose what they want without causing confusion.
> >
> > For an end-user: Having the PMU instance named after the "System IP"
> > (as implememented in the driver solves the problem and falling back to
> > arm_system_pmu is a good enough choice. So let us stick with that)
> >
> > Kconfig: May be we can choose
> > CONFIG_ARM_CORESIGHT_PMU_ARCH_PMU
> > or even
> > CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU
> >
> > with appropriate help text to ensure there is enough stress about what
> > this is and what this is not would be sufficient.
> >

CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU sounds good to me.

> > Now the remaining contention is about the name of the "subsystem" and
> > also the dir/files.  This may sound insignificant. But it is also
> > important to get this right. e.g., helps the reviewers unambiguously
> > identify the change or maintainers accepting pull requests (remember
> > these two PMUs (cs_etm and this one) go via different trees.). Not
> > everyone who deals with this in the community may be aware of how
> > these are different.
> >
> > We could choose arm_cspmu_ or simply cspmu. Given that only the
> > "normal" users care about the "association" with the "architecture"
> > and more advanced users (e.g, developers) can easily map "Kconfig"
> > to driver files, may be we could even stick to the "arm_syspmu"
> > (from "arm system pmu") ?
> >
> 
> +1 on "arm_syspmu"
> 

I am fine too with arm_syspmu.

If there is no objection, I am going to post new update by end of this week
or early next week.

Thanks,
Besar

> > Suzuki
> >
> >
> > >
> > >> As it happens, Steve, I do actually agree with you that "coresight_" is
> > >> a bad prefix here, but only for the reason that it's too general. TBH I
> > >> think that's true of the existing Linux subsystem too, but that damage
> > >> is already done, and I'd concur that there's little value in trying to
> > >> unpick that now, despite the clear existence of products like CoreSight
> > >> DAP and CoreSight ELA which don't have all that much to do with
> program
> > >> trace either.
> > >>
> > >> However, hindsight and inertia are hardly good reasons to double down
> on
> > >> poor decisions, so if I was going to vote for anything here it would be
> > >> "cspmu_", which is about as
> > >> obviously-related-to-the-thing-it-actually-is as we can get while also
> > >> being pleasantly concise.
> > >>
> > >> [ And no, this isn't bikeshedding. Naming things right is *important* ]
> > >>
> > >
> > > I agree having the correct name is important, especially at this early stage.
> > > A direction of what the naming should describe would be very helpful
> here.
> > >
> > >> Cheers,
> > >> Robin.
> > >>
> > >>>
> > >>> Thanks,
> > >>> Steve
> > >>>
> > >>> [1]. drivers/hwtracing/coresight/
> > >>> [2]. https://developer.arm.com/documentation/ihi0091/latest
> >




[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux