Re: [PATCH v2 0/4] Add VG register attr test with kernel version and feature detection

From: Arnaldo Carvalho de Melo
Date: Wed Dec 14 2022 - 09:38:40 EST


Em Tue, Dec 13, 2022 at 03:30:37PM +0000, James Clark escreveu:
>
>
> On 13/12/2022 14:51, Arnaldo Carvalho de Melo wrote:
> > Em Tue, Dec 13, 2022 at 11:47:35AM +0000, James Clark escreveu:
> >> I didn't get any feedback on the RFC version of this that I posted a
> >> while back [1]. I'd still like to add the test, especially now that
> >> 6.1 has been released with this new feature, so I've rebased it onto
> >> perf/core and double checked that it's still working.
> >>
> >> Applies to perf/core (0c3852adae83)
> >
> > I'm applying this locally, would this be testable on a Firefly (roc-rk3399-pc):
>
> Thanks Arnaldo. It doesn't look like rk3399 has SVE, so
> test-record-user-regs-no-sve-aarch64 will run to check that the kernel
> won't give you the new register. So I suppose the answer to the question
> is partially.
>
> For test-record-user-regs-sve-aarch64, I've been running it on a
> Graviton 3 on AWS which has SVE:
>
> ubuntu@ip-10-252-130-213:~/linux$ head /proc/cpuinfo
> processor : 0
> BogoMIPS : 2100.00
> Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp
> asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp
> sha512 sve asimdfhm dit uscat ilrcpc flagm ssbs paca pacg dcpodp svei8mm
> svebf16 i8mm bf16 dgh rng
> CPU implementer : 0x41
> CPU architecture: 8
> CPU variant : 0x1
> CPU part : 0xd40
> CPU revision : 1
>
> processor : 1

Indeed:

root@roc-rk3399-pc:~# perf test -v _attr
17: Setup struct perf_event_attr :
--- start ---
test child forked, pid 30139
Using CPUID 0x00000000410fd080
/home/acme/libexec/perf-core/tests/attr.py:155: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in Python 3.12. Use ConfigParser directly instead.
parser = configparser.SafeConfigParser()
running '/home/acme/libexec/perf-core/tests/attr/test-record-C0'
/home/acme/libexec/perf-core/tests/attr.py:250: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in Python 3.12. Use ConfigParser directly instead.
parser_event = configparser.SafeConfigParser()
/home/acme/libexec/perf-core/tests/attr.py:264: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in Python 3.12. Use ConfigParser directly instead.
parser_base = configparser.SafeConfigParser()
running '/home/acme/libexec/perf-core/tests/attr/test-record-basic'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-any'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-any'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-any'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-any'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-any_call'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-any_call'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-any_ret'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-any_ret'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-hv'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-hv'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-ind_call'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-ind_call'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-k'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-k'
running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-u'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-branch-filter-u'
running '/home/acme/libexec/perf-core/tests/attr/test-record-count'
running '/home/acme/libexec/perf-core/tests/attr/test-record-data'
running '/home/acme/libexec/perf-core/tests/attr/test-record-freq'
running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-default'
test limitation '!aarch64'
excluded architecture list ['aarch64']
skipped [aarch64] '/home/acme/libexec/perf-core/tests/attr/test-record-graph-default'
running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-default-aarch64'
test limitation 'aarch64'
running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-dwarf'
running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-fp'
test limitation '!aarch64'
excluded architecture list ['aarch64']
skipped [aarch64] '/home/acme/libexec/perf-core/tests/attr/test-record-graph-fp'
running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-fp-aarch64'
test limitation 'aarch64'
running '/home/acme/libexec/perf-core/tests/attr/test-record-group'
running '/home/acme/libexec/perf-core/tests/attr/test-record-group-sampling'
running '/home/acme/libexec/perf-core/tests/attr/test-record-group1'
running '/home/acme/libexec/perf-core/tests/attr/test-record-group2'
running '/home/acme/libexec/perf-core/tests/attr/test-record-no-buffering'
running '/home/acme/libexec/perf-core/tests/attr/test-record-no-inherit'
running '/home/acme/libexec/perf-core/tests/attr/test-record-no-samples'
running '/home/acme/libexec/perf-core/tests/attr/test-record-period'
running '/home/acme/libexec/perf-core/tests/attr/test-record-pfm-period'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-pfm-period'
running '/home/acme/libexec/perf-core/tests/attr/test-record-raw'
running '/home/acme/libexec/perf-core/tests/attr/test-record-spe-period'
test limitation 'aarch64'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-spe-period'
running '/home/acme/libexec/perf-core/tests/attr/test-record-spe-period-term'
test limitation 'aarch64'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-spe-period-term'
running '/home/acme/libexec/perf-core/tests/attr/test-record-spe-physical-address'
test limitation 'aarch64'
unsupp '/home/acme/libexec/perf-core/tests/attr/test-record-spe-physical-address'
running '/home/acme/libexec/perf-core/tests/attr/test-record-user-regs-no-sve-aarch64'
test limitation 'aarch64'
running '/home/acme/libexec/perf-core/tests/attr/test-record-user-regs-old-sve-aarch64'
test limitation 'aarch64'
skipped [new kernel skip] '/home/acme/libexec/perf-core/tests/attr/test-record-user-regs-old-sve-aarch64'
running '/home/acme/libexec/perf-core/tests/attr/test-record-user-regs-sve-aarch64'
test limitation 'aarch64'
skipped [auxv skip] '/home/acme/libexec/perf-core/tests/attr/test-record-user-regs-sve-aarch64'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-C0'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-basic'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-default'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-detailed-1'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-detailed-2'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-detailed-3'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-group'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-group1'
running '/home/acme/libexec/perf-core/tests/attr/test-stat-no-inherit'
test child finished with 0
---- end ----
Setup struct perf_event_attr: Ok
root@roc-rk3399-pc:~#