Re: [PATCH] perf doc: Add AMD IBS usage document
From: Ravi Bangoria
Date: Wed Jun 19 2024 - 11:39:46 EST
> IIRC if one does:
>
> perf record -e cycles:P
>
> on AMD systems it maps it to
>
> ibs_op//
>
> No?
Correct. man perf-list already covers that under event modifier section
but will add brief detail here as well.
> I don't have access right now to my 5950X, so its from memory, about
> "IBS invocation from core PMUs with precise_ip set"
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=78075d947534013b4575687d19ebcbbb6d3addcd
>
> One other thing to mention is 'perf mem record' that will use ibs_op//
> as we can see in the cover letter for this perf-tools merge commit
> upstream:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9d64bf433c53cab2f48a3fff7a1f2a696bc5229a
>
> # perf mem record -a --filter 'mem_op == load || mem_op == store, ip > 0x8000000000000000'
> ^C[ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 2.199 MB perf.data (2913 samples) ]
> #
> # ls -la perf.data
> -rw-------. 1 root root 2346486 Jan 9 18:36 perf.data
> # perf evlist
> ibs_op//
> dummy:u
> # perf evlist -v
> ibs_op//: type: 11, size: 136, config: 0, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|ADDR|CPU|PERIOD|IDENTIFIER|DATA_SRC|WEIGHT, read_format: ID, disabled: 1, inherit: 1, freq: 1, sample_id_all: 1
>
> Another examples available in the merge commit of when ibs_op support
> was added to 'perf c2c' and 'perf mem':
Correct. Will add brief detail about perf mem and c2c here.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d465bff130bf4ca17b6980abe51164ace1e0cba4
>
> Showing how you can use 'perf report -D' to extract info about these
> samples should be interesting as well:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0429796e45ec17eee26d7a59de92271c275d7666
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=291dcb98d7ee5cd719f4c5991d977794b1829c16
Sure. Will add that in the example below.
>> +To go over each sample
>> +
>> + $ sudo perf script
>
> Here I think it would be to have an example of such output.
This would be a normal perf script output but raw dump contains IBS
specific raw values. I'll add a sample output in below command.
>> +Raw dump of IBS registers when profiled with --raw-samples
>> +
>> + $ sudo perf report -D
>> + /* Look for PERF_RECORD_SAMPLE */
>
> Ditto
...
>> +SEE ALSO
>> +--------
>> +
>> +linkperf:perf-record[1], linkperf:perf-script[1], linkperf:perf-report[1]
>
> perf-mem, perf-c2c
Ack.
Thanks for the review,
Ravi