[PATCH v2] perf/hx_arm_ni: Support uncore ARM NI-700 PMU

Robin Murphy robin.murphy at arm.com
Fri Feb 2 12:11:48 PST 2024


On 2024-02-01 2:40 am, Yang Jialong 杨佳龙 wrote:
> 
> 
> 在 2024/2/1 0:50, Robin Murphy 写道:
>> On 31/01/2024 7:08 am, JiaLong.Yang wrote:
>>> This code is based on uncore PMUs arm_smmuv3_pmu and arm-cmn.
>>> One ni-700 can have many clock domains. Each of them has only one PMU.
>>> Here one PMU corresponds to one 'struct ni_pmu' instance.
>>> PMU name will be ni_pmu_N_M, which N means different NI-700s and M means
>>> different PMU in one NI-700. If only one NI-700 found in NI-700, name 
>>> will
>>> be ni_pmu_N.
>>> Node interface event name will be xxni_N_eventname, such as
>>> asni_0_rdreq_any. There are many kinds of type of nodes in one clock
>>> domain. Also means that there are many kinds of that in one PMU. So we
>>> distinguish them by xxni string. Besides, maybe there are many nodes
>>> have same type. So we have number N in event name.
>>> By ni_pmu_0_0/asni_0_rdreq_any/, we can pinpoint accurate bus traffic.
>>> Example1: perf stat -a -e 
>>> ni_pmu_0_0/asni_0_rdreq_any/,ni_pmu_0_0/cycles/
>>> EXample2: perf stat -a -e ni_pmu_0_0/asni,id=0,event=0x0/
>>
>> Oh! I've had a driver for this thing sat around for ages waiting to 
>> find someone with an interest in testing it. Given that from a quick 
>> skim of this patch I'd also have several concerns with this 
>> implementation, may I ask that you have a look at my branch and see if 
>> it works for you?
> 
> If permission I will test.

Thanks! I see you've also tried to support having the IRQs combined 
together - does your platform need that right away? That's another thing 
I've been anticipating but haven't got round to wiring up yet (it's a 
bit more fiddly than just IRQF_SHARED since perf has some expectations 
around affinity to event->cpu), but I can have a go at getting it done.

>>
>> https://gitlab.arm.com/linux-arm/linux-rm/-/tree/ni-dev?ref_type=heads
>>
>> In particular, after the pain of maintaining event aliases in arm-cmn 
>> I'd really like to get away from doing that again and instead move 
>> over to jevents this time (especially now that system PMU support is a 
>> bit more developed there) - I just haven't yet got round to hooking up 
>> the identifier and writing the JSON files, since it hasn't seemed like 
>> much of a priority before I know whether the code even works.
>>
> 
> It's a useful way.
> Uncore PMU is increasing. Not only CPU event can be writen in jevents.
> I have not considered it when writing code in a low version.
> 
> Finally, I have opened a case in arm suppport for linux ni pmu driver.
> They tell me no driver.

Oh dear, sorry about that - I'd have hoped that a question about a Linux 
PMU driver might have found its way to our team, even if they weren't 
aware that NI-700 has already been a specific item on our roadmap for 
some time :(

Thanks,
Robin.



More information about the linux-arm-kernel mailing list