[PATCH v3 1/3] arm64: perf: Add support caps in sysfs

Mark Rutland mark.rutland at arm.com
Mon Jul 20 06:50:19 EDT 2020


On Mon, Jul 20, 2020 at 11:15:19AM +0100, Will Deacon wrote:
> On Thu, Jun 18, 2020 at 09:35:42PM +0800, Shaokun Zhang wrote:

> > +static umode_t
> > +armv8pmu_caps_attr_is_visible(struct kobject *kobj, struct attribute *attr,
> > +			      int unused)
> > +{
> > +	int pmuver = armv8pmu_get_pmu_version();
> > +
> > +	if (pmuver >= ID_AA64DFR0_PMUVER_8_4)
> > +		return attr->mode;
> 
> Is this sufficient? I'm a bit confused by the text in the Arm ARM that says:
> 
>   | If ARMv8.4-PMU is implemented:
>   | * If STALL_SLOT is not implemented, it is IMPLEMENTATION DEFINED whether
>   |   the PMMIR System registers are implemented.
>   | * If STALL_SLOT is implemented, then the PMMIR System registers are
>   |   implemented.
> 
> whereas the register description for PMMIR_EL1 says:
> 
>   | This register is present only when ARMv8.4-PMU is implemented.

I think this is trying to say that when ARMv8.4-PMU is not implemented,
PMMIR definitely isn't implemented (i.e. the the presence of PMMIR_EL1
implies the presence of ARMv8.4-PMU).

> Mark -- please could you clarify whether or not we need to check STALL_SLOT
> as well as the PMUVer?

Given the explciit wording that it's IMP DEF, I suspect that we need to
check both.

I'll go chase this up.

Mark.



More information about the linux-arm-kernel mailing list