linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Xing Zhengjun <zhengjun.xing@linux.intel.com>
To: "Liang, Kan" <kan.liang@linux.intel.com>,
	Michael Petlan <mpetlan@redhat.com>
Cc: linux-perf-users@vger.kernel.org,
	Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	Andi Kleen <ak@linux.intel.com>
Subject: Re: Fwd: perf :: intel hybrid events (fwd)
Date: Fri, 15 Apr 2022 11:14:02 +0800	[thread overview]
Message-ID: <3ba5609b-2e39-8e22-d72d-e114adea9109@linux.intel.com> (raw)
In-Reply-To: <0dcc7164-bbfe-0ff0-7c84-24eb07017022@linux.intel.com>



On 4/13/2022 9:27 PM, Liang, Kan wrote:
> 
> Hi Michael,
> 
> Thanks for reporting the issues.
>>
>>
>> Forwarding the questions to perf-users...
>>
>> Also, I have found out that mem-stores:p event does not work on
>> Intel Alderlake:
>>
>> # perf record -e mem-stores -- ./examples/dummy > /dev/null
>> [ perf record: Woken up 1 times to write data ]
>> [ perf record: Captured and wrote 0.024 MB perf.data (64 samples) ]
>>
>> While with precise, it records nothing:
>>
>> # perf record -e mem-stores:p -- ./examples/dummy > /dev/null
>> [ perf record: Woken up 1 times to write data ]
>> [ perf record: Captured and wrote 0.021 MB perf.data ]
>>
>> This makes the perf-mem and perf-c2c commands less useful.
>>
>> Again, is this how it is supposed to work or do I miss some fixes?
>> Or does upstream also miss some fixes?
>>
> 
> It looks like a perf tool bug.
> 
> Actually, we did the support for the perf mem record with patch 
> 4a9086adc329 ("perf mem: Support record for hybrid platform").
> It seems we need some extra work for mem-stores:p as well.
> 
> 
>> Thanks.
>> Michael
>>
>> ---------- Forwarded message ----------
>> Date: Tue, 12 Apr 2022 22:59:11
>> From: Michael Petlan <mpetlan@redhat.com <mailto:mpetlan@redhat.com>>
>> To: yao.jin@linux.intel.com <mailto:yao.jin@linux.intel.com>
>> Subject: perf :: intel hybrid events
>>
>> Hello Jin Yao,
>>
>> I have a few questions/ideas about hybrid events on Alderlake...
>>
> 
> Now, Zhengjun focus on the userspace perf tool enabling.
> 
> Zhengjun, could you please take a look all the issues?
> 
Sure. I will fix the issues.
>>
>> 1) L1-{d,i}cache-load{,-misse}s supported partially
>>
>> Interestingly enough, perf offers the following events in the hwcache 
>> set:
>>
>> L1-dcache-load-misses
>> L1-dcache-loads
>> L1-icache-load-misses
>> L1-icache-loads
>>
>> Of course, each expands to its cpu_core and cpu_atom version, as 
>> following:
>>
>> # perf stat -e L1-icache-load-misses
>> ^C
>>   Performance counter stats for 'system wide':
>>             146,566      cpu_core/L1-icache-load-misses/
>>             164,971      cpu_atom/L1-icache-load-misses/
>>
>> On my Alderlake testing box with RHEL-9 I see the following support 
>> pattern:
>>
>>                           |  cpu_core  |  cpu_atom  |
>> L1-dcache-load-misses    |     OK     |     N/A    |
>> L1-dcache-loads          |     OK     |     OK     |
>> L1-icache-load-misses    |     OK     |     OK     |
>> L1-icache-loads          |     N/A    |     OK     |
>>
>> For dcache, loads are supported on both, while misses do not work on 
>> atom.
>> That can be, atom is simpler, thus I can expect it missing some events...
>>
>> For icache, misses are supported on both, while loads do not work on 
>> core.
>> This looks weird, is that really the wanted behavior? Isn't there a 
>> bug in
>> the drivers/event specifications?
> 
> That's expected. We don't have a proper event for the L1-icache-loads on 
> big core and L1-dcache-load-misses on Atom.
> You can see the same behavior on the previous core platform SKL and atom 
> platform GLP and TNT.
> 
>>
>>
>> 2) You added --cputype switch to perf-stat via 
>> e69dc84282fb474cb87097c6c94
>> so one can restrict the expansion and keep only one cpu type used. 
>> Doesn't
>> perf-record need the same?
> 
> Yes, I agree.
> 
>>
>>
>> 3) While perf-stat defaults to "use whatever we can" approach when not 
>> every
>> event is supported, puts "<not supported>" into the results, perf-record
>> fails. This is bad for the cases like above, since it fails when one 
>> of the
>> events aren't supported. That might make sense if the unsupported 
>> event was
>> specified explicitly by the user, e.g. `perf record -e AA -e BB -- 
>> ./load`
>> and perf fails "sorry, I don't support event BB".
>>
>> However, what if the user just wants L1-dcache-load-misses and encounters
>> perf-record failing just because the event is not supported on Atom?
>>
>> Shouldn't this behavior be fixed by some --tolerant switch that would 
>> ignore
>> the problems and record what is going on on the Core at least?
>>
>>
> 
> Yes, I agree. I think we should collect anything we can collect. For the 
> unsupported event, a warning should be printed.
> 
> BTW: Besides the cache events, the topdown events also have some issues 
> (perf stat --topdown and perf stat defaults) on the hybrid platforms. 
> Zhengjun is working on it. Some Topdown related patches for the hybrid 
> platforms will be posted soon.
> 
> 
> Thanks,
> Kan
>> What are your ideas?
>> Thanks...
>>
>> Michael
>>

-- 
Zhengjun Xing

  reply	other threads:[~2022-04-15  3:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-13 11:16 perf :: intel hybrid events (fwd) Michael Petlan
     [not found] ` <CA+JHD92zy1iOkok57goXrhjOmri+fZXRhOoNGzwBW+t_a84etw@mail.gmail.com>
2022-04-13 13:27   ` Fwd: " Liang, Kan
2022-04-15  3:14     ` Xing Zhengjun [this message]
2022-10-09  3:09 ` Xing Zhengjun

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=3ba5609b-2e39-8e22-d72d-e114adea9109@linux.intel.com \
    --to=zhengjun.xing@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mpetlan@redhat.com \
    /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;
as well as URLs for NNTP newsgroup(s).