Hi All,
A while back I added event support to libpfm and papi for the ARM
Cortex A53 based on the publicly available documentation. However,
I didn't have a means of testing it until recently when I got a
96board dragonboard 410c
(https://www.96boards.org/products/ce/dragonboard410c/) running Ubuntu
15.04 with a custom kernel:
$ uname -a
Linux linaro-alip 4.0.0-linaro-lt-qcom #1 SMP PREEMPT Thu Jun 18 09:43:10 UTC
2015 aarch64 aarch64 aarch64 GNU/Linux
I took a little time to build and run libpfm from libpfm-4.5.0.tar.gz
and the local validate test things loook good:
$ ./validate
Libpfm structure tests:
libpfm ABI version : 0
pfm_pmu_info_t : Passed
pfm_event_info_t : Passed
pfm_event_attr_info_t : Passed
pfm_pmu_encode_arg_t : Passed
pfm_perf_encode_arg_t : Passed
Libpfm internal table tests:
checking perf (80 events): Passed
checking perf_raw (1 events): Passed
Architecture specific tests:
All tests passed
Similarly built papi from the upstream git repository and ran the tests
$ sudo ./run_tests.sh >& papi_git-ac53g.log
Attached are the results of the tests and below are some comments
about the tests.
The cortex a53 doesn't have support for monitoring floating point events so a
number of tests are "SKIPPED" or "PASSED with WARNING":
api.c PASSED with WARNING
Running ctests/calibrate:calibrate.c SKIPPED
Only supported on specific architectures:
Running ctests/data_range:data_range.c SKIPPED
Running ctests/earprofile:earprofile.c SKIPPED
Running ctests/p4_lst_ins:p4_lst_ins.c SKIPPED
Running ctests/zero_smp:zero_smp.c SKIPPED
Missing PAPI_REF_CYC event:
Running ctests/cycle_ratio:cycle_ratio.c SKIPPED
Missing PAPI_L1_TCM event:
Running ctests/tenth:tenth.c SKIPPED
arm using 20MHz for REAL_CYCLES
Running ctests/zero:zero.c FAILED
Don't have openshmem
Running ctests/zero_shmem:zero_shmem.c SKIPPED
Seem to be related to running the run_test.sh with sudo:
Running ctests/exeinfo:exeinfo.c FAILED
Running ctests/profile_pthreads:profile_pthreads.c FAILED
Running ctests/profile_twoevents:profile_twoevents.c FAILED
Looks like need to take a closer look at the domain (kernel/user) control:
Running
components/perf_event/tests/perf_event_system_wide:perf_event_system_wide.c
FAILED
-Will
sudo: unable to resolve host wecac53
Platform:
Linux wecac53 4.0.0-linaro-lt-qcom #1 SMP PREEMPT Thu Jun 18 09:43:10 UTC 2015 aarch64 aarch64 aarch64 GNU/Linux
Date:
Tue Jul 21 14:49:28 EDT 2015
Cpuinfo:
processor : 0
Features : fp asimd evtstrm crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 0
The following test cases will be run:
ctests/all_events ctests/all_native_events ctests/api ctests/attach2 ctests/attach3 ctests/attach_cpu ctests/attach_target ctests/branches ctests/byte_profile ctests/calibrate ctests/case1 ctests/case2 ctests/child_overflow ctests/clockres_pthreads ctests/cmpinfo ctests/code2name ctests/cycle_ratio ctests/data_range ctests/derived ctests/describe ctests/disable_component ctests/dmem_info ctests/earprofile ctests/eventname ctests/exec ctests/exec2 ctests/exec_overflow ctests/exeinfo ctests/first ctests/flops ctests/fork ctests/fork2 ctests/fork_overflow ctests/forkexec ctests/forkexec2 ctests/forkexec3 ctests/forkexec4 ctests/get_event_component ctests/high-level ctests/high-level2 ctests/hl_rates ctests/hwinfo ctests/inherit ctests/ipc ctests/johnmay2 ctests/krentel_pthreads ctests/kufrin ctests/locks_pthreads ctests/low-level ctests/matrix-hl ctests/max_multiplex ctests/memory ctests/mendes-alt ctests/multiattach ctests/multiattach2 ctests/multiplex1 ctests/multiplex1_pthreads ctests/multiplex2 ctests/multiplex3_pthreads ctests/nmi_watchdog ctests/overflow ctests/overflow2 ctests/overflow3_pthreads ctests/overflow_allcounters ctests/overflow_force_software ctests/overflow_index ctests/overflow_one_and_read ctests/overflow_pthreads ctests/overflow_single_event ctests/overflow_twoevents ctests/p4_lst_ins ctests/profile ctests/profile_force_software ctests/profile_pthreads ctests/profile_twoevents ctests/pthrtough ctests/realtime ctests/remove_events ctests/reset ctests/reset_multiplex ctests/sdsc-mpx ctests/sdsc2-mpx ctests/sdsc4-mpx ctests/second ctests/shlib ctests/sprofile ctests/system_child_overflow ctests/system_overflow ctests/tenth ctests/thrspecific ctests/virttime ctests/zero ctests/zero_attach ctests/zero_flip ctests/zero_fork ctests/zero_named ctests/zero_omp ctests/zero_pthreads ctests/zero_shmem ctests/zero_smp ftests/strtest ftests/zero ftests/zeronamed ftests/first ftests/second ftests/tenth ftests/description ftests/fdmemtest ftests/accum ftests/highlevel ftests/cost ftests/case1 ftests/case2 ftests/clockres ftests/eventname ftests/fmatrixlowpapi ftests/fmatrixpapi ftests/fmatrixpapi2 ftests/flops ftests/fmultiplex1 ftests/johnmay2 ftests/fmultiplex2 ftests/avail components/appio/tests/appio_list_events components/appio/tests/appio_values_by_code components/appio/tests/appio_values_by_name components/appio/tests/appio_test_read_write components/appio/tests/appio_test_pthreads components/appio/tests/appio_test_fread_fwrite components/appio/tests/appio_test_seek components/coretemp/tests/coretemp_basic components/coretemp/tests/coretemp_pretty components/example/tests/example_basic components/example/tests/example_multiple_components components/lustre/tests/lustre_basic components/micpower/tests/micpower_basic components/mx/tests/mx_basic components/mx/tests/mx_elapsed components/net/tests/net_list_events components/net/tests/net_values_by_code components/net/tests/net_values_by_name components/perf_event/tests/perf_event_offcore_response components/perf_event/tests/perf_event_system_wide components/perf_event/tests/perf_event_user_kernel components/perf_event_uncore/tests/perf_event_uncore components/perf_event_uncore/tests/perf_event_uncore_multiple components/perf_event_uncore/tests/perf_event_amd_northbridge components/perf_event_uncore/tests/perf_event_uncore_cbox components/rapl/tests/rapl_basic components/rapl/tests/rapl_busy components/rapl/tests/rapl_wraparound components/rapl/tests/rapl_overflow components/stealtime/tests/stealtime_basic
The following test cases will NOT be run:
ftests/Makefile.recipies ftests/Makefile ftests/Makefile.target.in ctests/Makefile.recipies ctests/Makefile ctests/Makefile.target.in ctests/Make-export components/infiniband/tests/Makefile components/cuda/tests/Makefile components/Makefile_comp_tests components/net/tests/Makefile components/lustre/tests/Makefile components/perf_event/tests/Makefile components/nvml/tests/Makefile components/perf_event_uncore/tests/Makefile components/rapl/tests/Makefile components/bcs/tests/Makefile testlib/Makefile testlib/Makefile.target.in ctests/cpi.pbs ctests/burn ctests/pthrtough2 ctests/timer_overflow ctests/omptough components/appio/tests/iozone/Gnuplot.txt components/appio/tests/iozone/Generate_Graphs components/appio/tests/iozone/report.pl components/appio/tests/iozone/iozone_visualizer.pl components/appio/tests/iozone/gengnuplot.sh components/appio/tests/iozone/gnu3d.dem
Running C Tests
Running ctests/all_events:all_events.c PASSED
Running ctests/all_native_events:all_native_events.c PASSED
Running ctests/api:api.c WARNING
Line # 173
Warning in PAPI_flips: Event does not exist
api.c WARNING
Line # 203
Warning in PAPI_flops: Event does not exist
api.c PASSED with WARNING
Running ctests/attach2:attach2.c PASSED
Running ctests/attach3:attach3.c PASSED
Running ctests/attach_cpu:Event: PAPI_TOT_CYC: 2202343 on Cpu: 0
attach_cpu.c PASSED
Running ctests/attach_target:Running ctests/branches:branches.c PASSED
Running ctests/byte_profile:byte_profile.c PASSED
Running ctests/calibrate:calibrate.c SKIPPED
Running ctests/case1:case1.c PASSED
Running ctests/case2:case2.c PASSED
Running ctests/child_overflow:./ctests/child_overflow PASSED
Running ctests/clockres_pthreads:clockres_pthreads.c PASSED
Running ctests/cmpinfo:cmpinfo.c PASSED
Running ctests/code2name:code2name.c PASSED
Running ctests/cycle_ratio:cycle_ratio.c SKIPPED
Running ctests/data_range:data_range.c SKIPPED
Running ctests/derived:derived.c SKIPPED
Running ctests/describe:describe.c PASSED
Running ctests/disable_component:disable_component.c PASSED
Running ctests/dmem_info:dmem_info.c PASSED
Running ctests/earprofile:earprofile.c SKIPPED
Running ctests/eventname:eventname.c PASSED
Running ctests/exec:exec.c PASSED
Running ctests/exec2:exec2.c PASSED
Running ctests/exec_overflow:./ctests/child_overflow PASSED
Running ctests/exeinfo:exeinfo.c FAILED
Line # 51
Error: PAPI_get_executable_info
Running ctests/first:first.c PASSED
Running ctests/flops:flops.c PASSED
Running ctests/fork:fork.c PASSED
Running ctests/fork2:fork2.c PASSED
Running ctests/fork_overflow:./ctests/fork_overflow PASSED
Running ctests/forkexec:forkexec.c PASSED
forkexec.c PASSED
Running ctests/forkexec2:forkexec2.c PASSED
forkexec2.c PASSED
Running ctests/forkexec3:forkexec3.c PASSED
forkexec3.c PASSED
Running ctests/forkexec4:forkexec4.c PASSED
forkexec4.c PASSED
Running ctests/get_event_component:get_event_component.c PASSED
Running ctests/high-level:high-level.c PASSED
Running ctests/high-level2:high-level2.c PASSED
Running ctests/hl_rates:PAPI_flips: Event does not exist
PAPI_flips: Event does not exist
PAPI_flips: Event does not exist
PAPI_stop_counters: Event does not exist
PAPI_flops: Event does not exist
PAPI_flops: Event does not exist
PAPI_flops: Event does not exist
PAPI_stop_counters: Event does not exist
PAPI_event_name_to_code: Event does not exist
Running ctests/hwinfo:hwinfo.c PASSED
Running ctests/inherit:inherit.c PASSED
Running ctests/ipc:ipc.c PASSED
Running ctests/johnmay2:johnmay2.c PASSED
Running ctests/krentel_pthreads:krentel_pthreads.c PASSED
Running ctests/kufrin:kufrin.c PASSED
Running ctests/locks_pthreads:locks_pthreads.c PASSED
Running ctests/low-level:low-level.c PASSED
Running ctests/matrix-hl:matrix-hl.c PASSED
Running ctests/max_multiplex:max_multiplex.c PASSED
Running ctests/memory:memory.c PASSED
Running ctests/mendes-alt:mendes-alt.c PASSED
Running ctests/multiattach:multiattach.c PASSED
Running ctests/multiattach2:multiattach2.c PASSED
Running ctests/multiplex1:multiplex1.c PASSED
Running ctests/multiplex1_pthreads:multiplex1_pthreads.c PASSED
Running ctests/multiplex2:multiplex2.c PASSED
Running ctests/multiplex3_pthreads:multiplex3_pthreads:
multiplex3_pthreads.c PASSED
Running ctests/nmi_watchdog:nmi_watchdog.c WARNING
Line # 67
Warning: NMI Watchdog Active, enabling slow workarounds
nmi_watchdog.c PASSED with WARNING
Running ctests/overflow:overflow.c PASSED
Running ctests/overflow2:overflow2.c PASSED
Running ctests/overflow3_pthreads:overflow3_pthreads.c PASSED
Running ctests/overflow_allcounters:overflow_allcounters.c PASSED
Running ctests/overflow_force_software:overflow_force_software.c PASSED
Running ctests/overflow_index:overflow_index.c PASSED
Running ctests/overflow_one_and_read:overflow_one_and_read.c PASSED
Running ctests/overflow_pthreads:overflow_pthreads.c PASSED
Running ctests/overflow_single_event:overflow_single_event.c PASSED
Running ctests/overflow_twoevents:overflow_twoevents.c PASSED
Running ctests/p4_lst_ins:p4_lst_ins.c SKIPPED
Running ctests/profile:profile.c WARNING
Line # 143
Warning: PAPI_profil PAPI_PROFIL_RANDOM not supported
profile.c PASSED with WARNING
Running ctests/profile_force_software:profile.c PASSED
Running ctests/profile_pthreads:profile_pthreads.c FAILED
Line # 104
Error: No information in buffers
Running ctests/profile_twoevents:profile_twoevents.c FAILED
Line # 107
Error: No information in buffers
Running ctests/pthrtough:pthrtough.c PASSED
Running ctests/realtime:realtime.c PASSED
Running ctests/remove_events:remove_events.c PASSED
Running ctests/reset:reset.c PASSED
Running ctests/reset_multiplex:reset_multiplex.c PASSED
Running ctests/sdsc-mpx:sdsc.c PASSED
Running ctests/sdsc2-mpx:sdsc2.c PASSED
Running ctests/sdsc4-mpx:sdsc4.c PASSED
Running ctests/second:second.c PASSED
Running ctests/shlib:shlib.c PASSED
Running ctests/sprofile:sprofile.c PASSED
Running ctests/system_child_overflow:./ctests/child_overflow PASSED
./ctests/system_child_overflow PASSED
Running ctests/system_overflow:./ctests/system_overflow PASSED
Running ctests/tenth:tenth.c SKIPPED
Running ctests/thrspecific:thrspecific.c PASSED
Running ctests/virttime:virttime.c PASSED
Running ctests/zero:zero.c FAILED
Line # 125
Error: Cycles validation
Running ctests/zero_attach:zero_attach.c PASSED
Running ctests/zero_flip:zero_flip.c PASSED
Running ctests/zero_fork:zero_fork.c PASSED
Running ctests/zero_named:zero_named.c PASSED
Running ctests/zero_omp:zero_omp.c PASSED
Running ctests/zero_pthreads:zero_pthreads.c PASSED
Running ctests/zero_shmem:zero_shmem.c SKIPPED
Running ctests/zero_smp:zero_smp.c SKIPPED
Running Fortran Tests
Running ftests/strtest:strtest.F PASSED
Running ftests/zero:zero.F PASSED
Running ftests/zeronamed:zeronamed.F PASSED
Running ftests/first:first.F PASSED
Running ftests/second:second.F PASSED
Running ftests/tenth:tenth.F SKIPPED
Running ftests/description:description.F PASSED
Running ftests/fdmemtest:fdmemtest.F PASSED
Running ftests/accum:accum.F PASSED
Running ftests/highlevel:highlevel.F PASSED
Running ftests/cost:cost.F PASSED
Running ftests/case1:case1.F PASSED
Running ftests/case2:case2.F PASSED
Running ftests/clockres:clockres.F PASSED
Running ftests/eventname:eventname.F PASSED
Running ftests/fmatrixlowpapi:fmatrixlowpapi.F PASSED
Running ftests/fmatrixpapi:fmatrixpapi.F PASSED
Running ftests/fmatrixpapi2:fmatrixpapi2.F PASSED
Running ftests/flops:flops.F SKIPPED
Running ftests/fmultiplex1:fmultiplex1.F PASSED
Running ftests/johnmay2:johnmay2.F PASSED
Running ftests/fmultiplex2:fmultiplex2.F PASSED
Running ftests/avail:avail.F PASSED
Running Component Tests
Running components/appio/tests/appio_list_events:appio_list_events.c PASSED
Running components/appio/tests/appio_values_by_code:appio_values_by_code.c PASSED
Running components/appio/tests/appio_values_by_name:appio_values_by_name.c PASSED
Running components/appio/tests/appio_test_read_write:appio_test_read_write.c PASSED
Running components/appio/tests/appio_test_pthreads:appio_test_pthreads.c PASSED
Running components/appio/tests/appio_test_fread_fwrite:appio_test_fread_fwrite.c PASSED
Running components/appio/tests/appio_test_seek:root:x:0:
daemon:x:1:
bin:x:2:
ssyslog,linaro
tty:x:5:
disk:x:6:8:
news:x:9:
uucp:x:10:
man:x:12em:x:15:
dialout:x:20:linaro
fax2:
cdrom:x:24:linaro
floppy:x:25o:x:27:
audio:x:29:pulse,linaro
www-data:x:33:
backup:x:34:
operx:38:
irc:x:39:
src:x:40:
gnats:2:
utmp:x:43:
video:x:44:linaro
ev:x:46:linaro
staff:x:50:
games00:
nogroup:x:65534:
input:x:101l:x:102:
systemd-journal-remote:imesync:x:104:
systemd-network:xsolve:x:106:
systemd-bus-proxy:x08:
fuse:x:109:
crontab:x:110:
m
avahi:x:112:
scanner:x:113:
sys:115:
utempter:x:116:
pulse:x:11x:118:linaro
rtkit:x:119:
colordh:x:121:linaro
lightdm:x:122:
no3:
linaro:x:1000:
admin:x:1001:l:124:
pcp:x:999:
ntp:x:125:
appio_test_seek.c PASSED
Running components/coretemp/tests/coretemp_basic:coretemp_basic.c SKIPPED
Running components/coretemp/tests/coretemp_pretty:coretemp_pretty.c SKIPPED
Running components/example/tests/example_basic:example_basic.c PASSED
Running components/example/tests/example_multiple_components:example_multiple_components.c PASSED
Running components/lustre/tests/lustre_basic:lustre_basic.c SKIPPED
Running components/micpower/tests/micpower_basic:micpower_basic.c SKIPPED
Running components/mx/tests/mx_basic:mx_basic.c SKIPPED
Running components/mx/tests/mx_elapsed:mx_elapsed.c SKIPPED
Running components/net/tests/net_list_events:net_list_events.c PASSED
Running components/net/tests/net_values_by_code:net_values_by_code.c PASSED
Running components/net/tests/net_values_by_name:net_values_by_name.c PASSED
Running components/perf_event/tests/perf_event_offcore_response:perf_event_offcore_response.c SKIPPED
Running components/perf_event/tests/perf_event_system_wide:perf_event_system_wide.c FAILED
Line # 722
Error: DOM_USER too high
Running components/perf_event/tests/perf_event_user_kernel:perf_event_user_kernel.c SKIPPED
Running components/perf_event_uncore/tests/perf_event_uncore:perf_event_uncore.c SKIPPED
Running components/perf_event_uncore/tests/perf_event_uncore_multiple:perf_event_uncore_multiple.c SKIPPED
Running components/perf_event_uncore/tests/perf_event_amd_northbridge:perf_event_amd_northbridge.c SKIPPED
Running components/perf_event_uncore/tests/perf_event_uncore_cbox:perf_event_uncore_cbox.c SKIPPED
Running components/rapl/tests/rapl_basic:rapl_basic.c SKIPPED
Running components/rapl/tests/rapl_busy:rapl_basic.c SKIPPED
Running components/rapl/tests/rapl_wraparound:rapl_basic.c SKIPPED
Running components/rapl/tests/rapl_overflow:rapl_overflow.c SKIPPED
Running components/stealtime/tests/stealtime_basic:stealtime_basic.c PASSED
------------------------------------------------------------------------------
_______________________________________________
perfmon2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel