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 perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel