lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <D104B809B4F8CA40+fb75eadf-c029-4da7-bda5-300b7d7f51c1@shingroup.cn>
Date: Thu, 29 Feb 2024 10:22:31 +0800
From: Yang Jialong 杨佳龙 <jialong.yang@...ngroup.cn>
To: Robin Murphy <robin.murphy@....com>, Will Deacon <will@...nel.org>,
 Mark Rutland <mark.rutland@....com>
Cc: shenghui.qu@...ngroup.cn, linux-kernel@...r.kernel.org,
 linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2] perf/hx_arm_ni: Support uncore ARM NI-700 PMU



在 2024/2/3 4:11, Robin Murphy 写道:
> 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.
> 

I have not seen the expectations. I will study it.

>>>
>>> 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.
> 

I have run the code and thanks to the support of shenghui.qu@...ngroup.cn.
It's sorry for the late.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ